GNOME Bugzilla – Bug 672751
Error messages after removing object from track [pitivi]
Last modified: 2013-09-24 16:03:31 UTC
Created attachment 210515 [details] [review] Patch that solves the issue To reproduce in PiTiVi: 1. insert a clip in a blank timeline 2. remove clip from the timeline. After it there will be error messages: GStreamer-CRITICAL **: Trying to dispose element typefind, but it is in PAUSED instead of the NULL state. You need to explicitly set elements to the NULL state before dropping the final reference, to allow them to clean up. This problem may also be caused by a refcounting bug in the application or some element. GStreamer-CRITICAL **: Trying to dispose element decodebin210, but it is in PAUSED instead of the NULL state. [blah blah blah] GStreamer-CRITICAL **: Trying to dispose element source, but it is in PAUSED instead of the NULL state. GStreamer-CRITICAL **: Trying to dispose element internal-uridecodebin, but it is in PAUSED instead of the NULL state. GStreamer-CRITICAL **: gst_element_set_state: assertion `GST_IS_ELEMENT (element)' failed GStreamer-CRITICAL **: gst_bin_remove: assertion `GST_IS_ELEMENT (element)' failed GStreamer-CRITICAL **: Trying to dispose element gnlurisource1, but it is in PAUSED (locked) instead of the NULL state. GStreamer-CRITICAL **: Trying to dispose element typefind, but it is in PAUSED instead of the NULL state. GStreamer-CRITICAL **: Trying to dispose element decodebin29, but it is in PAUSED instead of the NULL state. GStreamer-CRITICAL **: Trying to dispose element source, but it is in PAUSED instead of the NULL state. GStreamer-CRITICAL **: Trying to dispose element internal-uridecodebin, but it is in PAUSED instead of the NULL state. GStreamer-CRITICAL **: gst_element_set_state: assertion `GST_IS_ELEMENT (element)' failed GStreamer-CRITICAL **: gst_bin_remove: assertion `GST_IS_ELEMENT (element)' failed GStreamer-CRITICAL **: Trying to dispose element gnlurisource0, but it is in PAUSED (locked) instead of the NULL state.
Reading the patch doesn't explain why you don't just set the gnlobject state before removing it from the composition. You should make comments in both the commit message (which means making a proper patch using $git formatted-patch), and in the code to explain why you are doing it the way you do it.
Created attachment 210747 [details] [review] Reworked patch
Pushed with a few changes Author: Volodymyr Rudyi <vladimir.rudoy@gmail.com> Date: Wed Mar 28 02:53:50 2012 +0300 ges-track: Set gnlobject state to NULL before disposing it Work around a deadlock if setting state to NULL right before removing the gnlobject from the composition.