Opened 5 years ago

Closed 5 years ago

Last modified 3 years ago

#358 closed defect (fixed)

MMS(MMSH) seeking/skipping freezes video

Reported by: arnova Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mms
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

When trying to seek/skip through a streamed video using the MMS/MMSH protocols, FFmpeg/FFPlay freezes. I first encountered this problem in XBMC but FFPlay experiences the same behaviour. I've tested it with several Dutch streams, which all show the problem. It works fine when I use an older version of XBMC which uses libmms so it seems to be a problem FFmpeg's implementation.

The commandline/output from ffplay looks like this:
(1000 ~/ffmpeg)% ./ffplay "mmsh://bolt01.omroep.nl/public/ug-od/wm/50/media/wm50c1/ceres/1/kro/rest/2009/KRO_1336806/bb.20090611.asf?wmt=4e292053&wmhash=15605a15"
ffplay version N-31601-gba99474, Copyright (c) 2003-2011 the FFmpeg developers

built on Jul 22 2011 08:56:44 with gcc 4.4.3
configuration:
libavutil 51. 11. 0 / 51. 11. 0
libavcodec 53. 8. 0 / 53. 8. 0
libavformat 53. 6. 0 / 53. 6. 0
libavdevice 53. 2. 0 / 53. 2. 0
libavfilter 2. 27. 2 / 2. 27. 2
libswscale 2. 0. 0 / 2. 0. 0

Input #0, asf, from 'mmsh://bolt01.omroep.nl/public/ug-od/wm/50/media/wm50c1/ceres/1/kro/rest/2009/KRO_1336806/bb.20090611.asf?wmt=4e292053&wmhash=15605a15':

Metadata:

WMFSDKVersion : 10.00.00.4001
WMFSDKNeeded : 0.0.0.0000
IsVBR : 0

Duration: 00:10:09.14, start: 0.000000, bitrate: N/A

Stream #0.0(eng): Video: wmv3 (Main), yuv420p, 320x180, 452 kb/s, 25 tbr, 1k tbn, 1k tbc
Stream #0.1(eng): Audio: wmav2, 44100 Hz, 2 channels, s16, 48 kb/s

ALSA lib pcm.c:7245:(snd_pcm_recover) underrun occuredB sq= 0B f=0/0
Read data packet header failed! 0KB vq= 0KB sq= 0B f=0/0 f=0/0
Recv other type packet -5
Read data packet header failed!
Recv other type packet -5
[asf @ 0x8f3a120] asf_read_pts failed
mmsh://bolt01.omroep.nl/public/ug-od/wm/50/media/wm50c1/ceres/1/kro/rest/2009/KRO_1336806/bb.20090611.asf?wmt=4e292053&wmhash=15605a15: error while seeking
Read data packet header failed!
Recv other type packet -5

Attachments (3)

asfdec.c (47.4 KB) - added by bwallen 5 years ago.
Commented out line 1316, NOBINSEARCH and NOGENSEARCH. Seems to fix the problem
asfdec.diff (349 bytes) - added by bwallen 5 years ago.
Here's my diff for asfdec.c. I pretty much just disabled NOGENSEARCH and NOBINSEARCH
ffplay-20130516-224646.log (20.8 KB) - added by brtv_viewer 3 years ago.
ffplay report when seek in mms/mmsh stream causes it to crash

Download all attachments as: .zip

Change History (13)

Changed 5 years ago by bwallen

Commented out line 1316, NOBINSEARCH and NOGENSEARCH. Seems to fix the problem

comment:1 Changed 5 years ago by michael

the quoted mmsh URL just gives me a Input/output error, so i dont know how to reproduce this

comment:2 Changed 5 years ago by spiff

you can use e.g. mmsh://straumod.nrk.no/disk11/Supermorgen/2011-03-11/MSUS54000411AA-1Mbit.wmv?UseSilverlight=1

in fact any mmsh url will exhibit it. this one should not be volatile

Changed 5 years ago by bwallen

Here's my diff for asfdec.c. I pretty much just disabled NOGENSEARCH and NOBINSEARCH

comment:4 follow-up: Changed 5 years ago by arnova

Commenting out NOBINSEARCH and NOGENSEARCH. does not fix the problem, unfortunately, which totally makes sense since our older ffmpeg which didn't have them also suffered from this problem.

comment:5 Changed 5 years ago by cehoyos

  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-master

Also reproducible with ffmpeg -ss 5 -i ...

comment:6 in reply to: ↑ 4 Changed 5 years ago by bwallen

Replying to arnova:

Commenting out NOBINSEARCH and NOGENSEARCH. does not fix the problem, unfortunately, which totally makes sense since our older ffmpeg which didn't have them also suffered from this problem.

Yeah, I found that out with some more testing. It seemed to fix the problem with on stream I tried but not any others. I'm not beat yet, though. I'm gonna try to track this bug down since it's preventing me from being able to upgrade XBMC.

Version 0, edited 5 years ago by bwallen (next)

comment:7 Changed 5 years ago by bwallen

I've been trying to figure this out but so far I haven't had any luck. I've traced the problem as far back as retry_transfer_wrapper() in avio.c. When the error occurs, retry_transfer_wrapper() returns a negative number due to transfer_func(). This negative number makes it's way to line 83 in mmsh.c where it fails. I guess I don't understand what exactly transfer_func() is supposed to be doing. I think it's the key to the problem, but I could be wrong.

comment:8 Changed 5 years ago by cehoyos

  • Component changed from undetermined to avformat
  • Resolution set to fixed
  • Status changed from open to closed

Seeking with ffmpeg -ss works fine now afaict, seeking with ffplay mmsh:// is supported to a certain degree.

Changed 3 years ago by brtv_viewer

ffplay report when seek in mms/mmsh stream causes it to crash

comment:9 follow-up: Changed 3 years ago by brtv_viewer

I am trying to seek/skip the mmsh stream referenced above using the latest development branch build. It still causes ffplay/ffmpeg to crash. The command line is below.

ffplay -report "mmsh://straumod.nrk.no/disk11/Supermorgen/2011-03-11/MSUS54000411AA-1Mbit.wmv?UseSilverlight=1"

The ffplay report is attached.
Is it a regression?

comment:10 in reply to: ↑ 9 Changed 3 years ago by cehoyos

Replying to brtv_viewer:

I am trying to seek/skip the mmsh stream referenced above using the latest development branch build. It still causes ffplay/ffmpeg to crash.

I opened ticket #2581, thank you for testing and the report!

Note: See TracTickets for help on using tickets.