[Bug 656751] deadlock in decodebin2

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Aug 17 15:25:10 PDT 2011


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

Youness Alaoui <youness.alaoui> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID

--- Comment #1 from Youness Alaoui <youness.alaoui at collabora.co.uk> 2011-08-17 22:25:04 UTC ---
Found the issue. The deadlock situation was caused by decodebin2 draining the
decode group before it was completely drained. This is why it locked trying to
remove the pad which itself was sending an EOS.
This is caused by this commit :
http://cgit.freedesktop.org/~bilboed/gst-plugins-base/commit/?id=f65fede141f85924071dacccac92e0ee8a628a1e
which, apparently, is not in the master git repository yet, so I'm marking this
bug as invalid.
I'll contact bilboed with the fix to this bug, which is actually quite simple :
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index 180c170..6d0c7e6 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -2944,7 +2944,7 @@ drain_and_switch_group (GstDecodeGroup * group,
GstDecodePad * drainpad,
    * new information */
   for (tmp = group->children; tmp; tmp = tmp->next) {
     GstDecodeChain *chain = (GstDecodeChain *) tmp->data;
-    gboolean subdrained;
+    gboolean subdrained = FALSE;

     handled |=
         drain_and_switch_chains (chain, drainpad, last_group, &subdrained,

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