GNOME Bugzilla – Bug 645016
multiqueue: During switching of streams it can happen that all pads returned not-linked last
Last modified: 2013-07-17 11:04:38 UTC
+++ This bug was initially created as a clone of Bug #644935 +++ Switching streams if they're of the only stream type of the demuxer fails with not-linked. For example when trying to switch between two audio streams of an audio only file this happens. Reason for this is, that in the beginning the second stream will always report not-linked to the demuxer and after the switch the first stream will report not-linked to the demuxer (unless a buffer of the second, selected stream was pushed first). This combined makes the demuxer error out. This was fixed in input-selector but unfortunately this fix is not enough. If queues are used upstream it can still happen that the last flow return of all demuxer streams is not-linked although input-selector already returned OK for one stream.
I'm going to fix this with a stream-activate event that can be used to tell upstream that a stream is not going to be used. This can then prevent multiqueue from pushing further data through that pad until the stream is activated again and do the same throttling logic as done with not-linked. The event can also be used by decoders and everything to disable expensive processing until the stream is activated again. The event will contain a boolean to specify if the stream is active or not
With these two 0.11 branches it works for Ogg files. http://cgit.collabora.com/git/user/slomo/gstreamer.git/log/?h=activate-stream http://cgit.collabora.com/git/user/slomo/gst-plugins-base.git/log/?h=activate-stream
Should still be a problem, but marking as a duplicate of the stream-activation bug #646638 *** This bug has been marked as a duplicate of bug 646638 ***