GNOME Bugzilla – Bug 120046
Run the pipeline in its own thread.
Last modified: 2006-03-29 16:10:25 UTC
Currently, gst-editor blocks if any element of the pipeline does a blocking operation. Unfortunately, this cannot be workarounded by placing the blocking elements in its own thread bin. Please run the user interface and the pipeline in a different thread.
*** Bug 120047 has been marked as a duplicate of this bug. ***
Well, the problem is not well explained in this bug. I placed in gst-editor a pipeline with a dedicated thread. After I issued the command "Play", the editor was still responsive. But, when in the playing state, I issued the command "Stop", then the editor froze completely. I tested several pipelines, like: { udpsrc ! queue } ! fakesink { udpsrc | fakesink } This report is in part wrong. I assumed that a state change takes place in the thread context of the application, and so even if the plugin is blocked it happens if the app is in a different thread. But experimenting with gst-launch (because it is easier to hack, see bug #120065), this seems to be wrong. State change events cannot arrive to a blocked element, even if the element has a dedicated thread. The code of gst_thread_change_state issues a call to gst_threaded_catch, and thus blocks until the thread is in the main event loop. Thus applying the suggestion of this bug would solve only part of the problem. The user interface would not freeze when a blocking plugin is used, but Gstreamer would still freeze. Thus, I am opening a new bug.
This will be fixed when gst-editor is ported to GStreamer 0.9.
closing, this is irrelevant and automatic when porting to 0.10 happens. No need to keep this bug around.