GNOME Bugzilla – Bug 575588
decodebin2 deadlock
Last modified: 2009-03-17 18:11:35 UTC
When playing a file with the pipeline: gst-launch -v filesrc location=osvaldo.mpg ! decodebin2 name=decoder ! queue ! autoaudiosink decoder. ! queue ! autovideosink gstreamer sometime play the file and sometime just deadlock. The same pipeline just works fine with the classic decodebin. I'll attach the level 5 log when the deadlock occur, and I'll try to attached the media file (7255529 B).
Created attachment 130773 [details] GST_DEBUG=5 log when the deadlock occure
Created attachment 130774 [details] Media file to trigger the deadlock. Note that the file has been truncated to 1000000 B to be able to upload it, so errors after 18 seconds are expected.
bah, very hard to fix, need to rewrite some very racy parts of decodebin2.
commit 563db0fdca22ff36f66f3db92f2a54f208226d01 Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Tue Mar 17 19:09:02 2009 +0100 decodebin2: add extra dynamic ref for demuxers When we make a group connected to a demuxer, keep an extra dynamic refcount for the group which is only decremented when no_more_pads or a multiqueue overrun is detected. This way we avoid a race between exposing the group while more dynamic refs are added from new pads. Fixes #575588.