GNOME Bugzilla – Bug 415801
[asfdemux] Can not play files from http://webtv.idnes.cz/
Last modified: 2009-09-10 08:16:52 UTC
idnes.cz is a very popular Czech news server. They are also serving some video files, which are unfortunately in asf/wmv. It seems that all of their asf files have several audio and video streams according to header. But in fact there is only one audio and one video. Totem does not start playback correctly since it is waiting for video on video_00 pad while only video_03 has any data.
Created attachment 84187 [details] [review] Ugly hack to setup only realy existent streams This is a very ugly hack, that adds a pad only when there is something to push. To maintain ABI compatibility I encode the information whether pad has been added to the largest bit of stream->id. I do not know what is the right solution. May be it is really a problem of selector in playbin
Yeah, this is a known bug. Not entirely sure how to solve it properly yet, the current heuristics are a bit broken. I don't know if we can get this information from the stream headers somehow, or if mmssrc would need to tell us which streams are actually streamed and which not. Maybe just sending update newsegment events on streams for which we have no data will placate playbin too? (I think I quickly tried this once and it didn't work, but I'm not absolutely sure) You can add fields to the various structs to your heart's content by the way, plugin headers aren't installed and hence ABI/API of those structures isn't an issue. I'm also considering just not parsing extended stream objects for conflicting streams, which would reopen bug #343763, but that's a smaller evil than lots of MMS streams not working IMHO. I'd rather not delay pad creation until data flow happens if we can avoid that somehow.
Created attachment 84230 [details] [review] Send newsegmentrs when there are no data in the stream Thanks for the additional info. I have created a patch that sends newsegments when there are no data in the stream. This patch fixes A/V synchronization in the problematic files so that the playbacks starts immediately (but only audio is payed). I am not familiar with asf internals. There is a constant MAX_STREAM_DELAY which says how much timestamps of different streams may differ. May be, this can be readed from the stream itself. The real fix for this problem should be in streamselector in playbin.
*** Bug 418998 has been marked as a duplicate of this bug. ***
Here's another example URL that exhibits this problem: http://winmed.cbsig.net/cbsnews/2007/05/20/video2830221.wmv
Hi Jeff, it seems that this is rather a bug on playbin stream-selector. It should not select streams that have no data so the bug should be probably moved to this element. I have gone through the stream-selector code but I do not see a simple way to fix it without changing its behaviour. The only thing that come in my mind is to switch to different stream whenever there is silence for some time period but still there will some silence at the beginning of the file.
Isn't this a duplicate of #560348
Seems to be the case, yes. *** This bug has been marked as a duplicate of bug 560348 ***
*** Bug 440280 has been marked as a duplicate of this bug. ***