GNOME Bugzilla – Bug 329890
gst_element_set_state blocks
Last modified: 2006-02-14 09:07:40 UTC
Please describe the problem: When calling gst_element_set_state(GST_STATE_NULL) from an event probe callback the function blocks the application, if the bin contains a queue element. Steps to reproduce: 1. create a bin with a ghost src pad which contains a filesrc and decodebin 2. add the bin together with an adder element and a audiosink to the pipeline 3. install an event probe callback on the requested sink pad of the adder 4. in the event probe callback call gst_element_set_state(GST_STATE_NULL) on the bin Actual results: the application blocks in gst_element_set_state. timers are run Expected results: gst_element_set_state does not block Does this happen every time? yes Other information: Backtrace:
+ Trace 65909
I don't think there's much we can do to avoid this - the queue can't shut down if the state change is being called from the streaming thread. Pad probe callbacks happen from the streaming thread, so that's always going to be true. It's not a queue specific problem, it will happen with any element that runs its own pad task, it just happens that queue is the most common one that does that.
*** This bug has been marked as a duplicate of 320340 ***