[Bug 733235] decodebin:Handle the multi-queue size flexible

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Aug 10 04:05:24 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=733235

Sebastian Dröge (slomo) <slomo at coaxion.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #308520|none                        |needs-work
             status|                            |

--- Comment #25 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Review of attachment 308520:
 --> (https://bugzilla.gnome.org/review?bug=733235&attachment=308520)

Please describe in the commit message also *what* you do to fix that, and *how*
that is fixing this case and *why* it is the right thing to do :) Additional to
the problem description.

::: gst/playback/gstdecodebin2.c
@@ +3373,3 @@
+        "'playing' buffering mode", group);
+    group->overrun = TRUE;
+    dbin->extra_buffer_required = FALSE;

This doesn't seem 100% correct. Consider the case where you set
extra_buffer_required=TRUE before. It will then buffer a bit more again. And
then at some point might overrun again. You would then set the limits to small
again, without the extra buffer space, making things even worse.

@@ +3391,3 @@
+      dbin->extra_buffer_required = TRUE;
+      decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
+          (group->parent ? group->parent->seekable : TRUE));

Now you have two else cases in multiqueue_overrun_cb() that set the queue size.
It would be good to have the queue size setting all in a single place to keep
code a bit more readable.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list