GNOME Bugzilla – Bug 767169
adaptivedemux: avoid possible deadlock while destroying old sources
Last modified: 2016-07-17 18:42:47 UTC
Created attachment 328977 [details] [review]
gst_element_set_state() will lock the stream lock for the source pad of the
element. If the element pushes data at the same time, it may wait for the
manifest lock while holding the stream lock. So calling
gst_element_set_state() while the manifest lock is locked can cause
Thanks for the patch. I believe this was also fixed as part of:
Author: Jan Schmidt <email@example.com>
Date: Wed Jul 13 23:02:10 2016 +1000
adaptivedemux: Drop the manifest lock during outbound actions
Drop the manifest lock when performing actions that might
call back into adaptivedemux and trigger deadlocks, such
as adding/removing pads or sending in-band events (EOS).
Unlock the manifest lock when changing the child bin state to
NULL, as it might call back to acquire the manifest lock when
shutting down pads.
Drop the manifest lock while pushing events.