GNOME Bugzilla – Bug 353116
[asfdemux] hangs playing some mms stations
Last modified: 2007-02-15 19:58:59 UTC
That bug has been described on https://launchpad.net/distros/ubuntu/+source/gst-plugins-ugly0.10/+bug/57566 "Rhythmbox seems to have problem when playing this radio station mms://wmscr1.dr.dk/e02ch01m , it does all the usual things with buffering and such, but there is just no sound! ... http://librarian.launchpad.net/3996217/rhythmbox.log Rhythmbox log ... This appears to be a problem with the gstreamer MMS plugins." "gst-launch playbin uri="mms://wmscr1.dr.dk/e02ch01m"" doesn't play it neither, mplayer works fine on the same URI. That could be a gst-ffmpeg issue too since the station seems to be a wma one
This stream has multiple audio streams. libmms (library used by mmssrc) transparently selects some ASF streams. decodebin waits for data on all streams before starting playback, which takes forever since some streams are disabled on the server. Somehow the demuxer or decodebin should be made smarter about the fact that only part of the stream will be played.
There seems to be a regression here. The streams play fine on my dapper box which has gstreamer0.10-plugins-bad 0.10.3-0ubuntu3 installed but not on edgy with 0.10.3+cvs20060918-0ubuntu1.
*** Bug 361571 has been marked as a duplicate of this bug. ***
This should fix it: 2007-02-15 Tim-Philipp Müller <tim at centricular dot net> * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_file), (gst_asf_demux_process_advanced_mutual_exclusion), (gst_asf_demux_process_queued_extended_stream_objects), (gst_asf_demux_process_object), (gst_asf_demux_change_state): * gst/asfdemux/gstasfdemux.h: Parse advanced mutual exclusion object and only add pads for 'hidden' streams (those in an extended stream header) that are mutually exclusive with an already existing 'main stream' if the broadcasting flag is not set. If the broadcasting flag is set, assume that data for this stream isn't sent. (This should ideally be solved better by making playbin more robust against this and/or by making mmssrc send some information downstream about which streams will be streamed). Fixes #353116.