After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 120127 - Improve handling of state change events.
Improve handling of state change events.
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal enhancement
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2003-08-18 10:23 UTC by ramon
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description ramon 2003-08-18 10:23:44 UTC
Currently, when a state change event cannot enter an element that is
blocked, for example, a network source element waiting for data. This is
the case even if the element is contained in a dedicated thread.

Let us see the case when the element has a dedicated thread. The thread bin
receives the state change event in gst_thread_change_state. This function
calls gst_catch_thread, and therefore it is blocked until the thread is in
the main event loop.

This means that the element author should refrain from making a plugin
blocking. This goes against the philosophy of GStreamer of putting the
complexity in the infraestructure rather than in each element.

I suggest to remove gst_catch_thread; instead insuring that the action of
changing the state is thread safe.

Ramon.
Comment 1 ramon 2003-09-02 14:48:09 UTC
This was a misunderstanding on my part. The solution is simply that a
blocking element should implement release_locks.

Thanks to information provided by Company.