[Bug 734412] multiqueue: The buffering logic can lead to a pipeline stuck in PAUSED forever

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Aug 11 01:06:51 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=734412
  GStreamer | gstreamer (core) | unspecified

--- Comment #4 from Thibault Saunier <tsaunier at gnome.org> 2014-08-11 08:06:45 UTC ---
Review of attachment 282767:
 --> (https://bugzilla.gnome.org/review?bug=734412&attachment=282767)

> Otherwise your patch looks good, just not sure if that's the correct solution as it basically disables buffering completely for such pipelines.

It does not disable buffering completely, it will just not buffer in a quite
rare case where we have one single queued emptied while the other is full. It
will most probably buffer when that full single queue get s a little bit
emptied.

::: plugins/elements/gstmultiqueue.c
@@ +828,3 @@
     gst_single_queue_flush_queue (sq, full);
+
+    GST_MULTI_QUEUE_MUTEX_LOCK (mq);

Because gst_single_queue_flush_queue does not require the lock to be taken, and
now in that function we take the lock right before calling update_buffering()
so it would deadlock to take the lock before calling the method here.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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