GNOME Bugzilla – Bug 785799
urisourcebin: Buffering broken for adaptive streams with inactive streams
Last modified: 2017-08-11 08:06:38 UTC
Problem here is that urisourcebin adds a buffering queue2 after each adaptivedemux stream. But adaptivedemux is pausing streams that return not-linked (e.g. if you have 2 audio streams, one won't be linked) to keep bandwidth usage low. These unlinked streams will obviously never reach 100% buffering unless they accidentially did before the first time not-linked was returned. Maybe queue2 should post buffering 100% on not-linked, maybe something else should be done.
Indeed, for unlinked streams it should mark it as "full", same as streams that are EOS (either from upstream or downstream). Question is ... is an incoming stream is marked as sparse, should we also always consider it full ? multiqueue does, but not 100% sure if there's a use-case for queue2 where we would want to consider it non-full.
Created attachment 357098 [details] [review] queue2: Handle buffering levels on NOT_LINKED When downstream returns NOT_LINKED, we return the buffering level as being 100%. Since the queue is no longer being consumed/used downstream, we want applications to essentially "ignore" this queue for buffering purposes. If other streams are still being used, those stream buffering levels will be used. If none are used, upstream will post an error message on the bus indicating no streams are used.
Comment on attachment 357098 [details] [review] queue2: Handle buffering levels on NOT_LINKED Actually I'm still seeing some issues with validate adaptive content testsuite, will investigate
Hello all I have encountered identical problem, and reported it on bug #775945. It seems to duplication of this bug :)
*** Bug 775945 has been marked as a duplicate of this bug. ***
Comment on attachment 357098 [details] [review] queue2: Handle buffering levels on NOT_LINKED Good to go, the remaining problems are bug #785951 which is independent of this here
commit 4312119d167405f726c39ec5517d7124e1e99444 Author: Edward Hervey <edward@centricular.com> Date: Mon Aug 7 12:24:37 2017 +0200 queue2: Handle buffering levels on NOT_LINKED When downstream returns NOT_LINKED, we return the buffering level as being 100%. Since the queue is no longer being consumed/used downstream, we want applications to essentially "ignore" this queue for buffering purposes. If other streams are still being used, those stream buffering levels will be used. If none are used, upstream will post an error message on the bus indicating no streams are used. https://bugzilla.gnome.org/show_bug.cgi?id=785799