[Bug 702840] queue2 does not work with use-buffering=true

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Mar 19 14:26:02 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=702840
  GStreamer | gst-plugins-base | git

Vincent Penquerc'h <vincent.penquerch> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vincent.penquerch at collabora
                   |                            |.co.uk

--- Comment #6 from Vincent Penquerc'h <vincent.penquerch at collabora.co.uk> 2014-03-19 21:50:36 UTC ---
I think this might be not quite enough. I've been tracking down a deadlock in a
situation where I have a souphttpsrc, queue2, then other stuff ending in a
multiudpsink. Not always, I get a deadlock with:
- one thread blocked in preroll, where queue2 has pushed a buffer, and
multiudpsink is then blocked in preroll
- one thread gets a sink query, checks if it's using queue (yes), if the queue
is empty (yes), so enqueues the query and waits.

What seems to be happening is that the qlock is released after dequeuing the
buffer, so the queue will be empty while the buffer is making its way
downstream, so the query can be pushed, and this blocks.

A naive idea would be to only dequeue the buffer (or event, etc) after it's
been pushed.

Does this seem plausible/sane ?

-- 
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