gst_element_set_state deadlock

Sebastian Dröge sebastian at centricular.com
Wed Apr 5 08:14:18 UTC 2017


On Mon, 2017-04-03 at 02:01 -0700, tobatrance wrote:
> hi.
> 
> i'm using ubuntu 16.04 and gstreamer 1.8.3. i'm using the pipeline filesrc
> -> decodebin -> appsink. i'm creating and destroying  multiple of these
> pipelines within short time and playing different videos concurrently.
> before destroying the pipeline I pause them and afterwards set them to
> GST_STATE_NULL. somewhen it happens that gst_element_set_state(pipeline,
> GST_STATE_NULL) does not return. in this log i'm running two 4k videos.
> first comes the backtrace of the mainloop thread. the mutex in frame 1 is a
> p_thread_mutex.

The backtrace is a bit hard to read in the mail (better attach as a
text file in the future), but the problem looks like you're setting the
state from (one of) the streaming threads. This is generally not
possible and you have to do it from another thread.

-- 
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170405/0f8e4a73/attachment.sig>


More information about the gstreamer-devel mailing list