[gstreamer-bugs] [Bug 547352] race condition with GstPadBufferAllocFunction
GStreamer (bugzilla.gnome.org)
bugzilla-daemon at bugzilla.gnome.org
Mon Nov 17 08:27:17 PST 2008
If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
http://bugzilla.gnome.org/show_bug.cgi?id=547352
GStreamer | gstreamer (core) | Ver: HEAD CVS
Antoine Tremblay changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hexa00 at gmail.com
------- Comment #6 from Antoine Tremblay 2008-11-17 16:27 UTC -------
By adding in gstpad.c:gst_pad_alloc_buffer_full (GstPad
GST_PAD_STREAM_LOCK (peer);
ret = bufferallocfunc (peer, offset, size, caps, buf);
GST_PAD_STREAM_UNLOCK (peer);
When basetransform calls pad_bufferalloc on the queue srcpad
the queue tries to call it on it's src pad too and thus it calls
gst_pad_alloc_buffer_full with the queue src pad this blocks
since it requires the src pad lock and it's busy doing a push...
This in turn causes the queue not to work properly since it will
always wait for the current element to return from it's push
before the preceding element can allocate a buffer and send it to the queue.
So the queue blocks as if there was no queue.
We need a better fix...
--
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.
You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=547352.
More information about the Gstreamer-bugs
mailing list