[Bug 733661] glimagesink navigation interface causes hangs with X11/GMainLoop event thread
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Sep 9 04:55:31 PDT 2014
https://bugzilla.gnome.org/show_bug.cgi?id=733661
GStreamer | gst-plugins-bad | git
Matthew Waters <ystreet00> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #8 from Matthew Waters <ystreet00 at gmail.com> 2014-09-09 11:55:26 UTC ---
commit 3c3b78508fb7f283606db661c4e838daa4b3d865
Author: Vasilis Liaskovitis <vliaskov at gmail.com>
Date: Tue Sep 9 12:01:47 2014 +0200
GstGLWindow: Introduce navigation thread
This thread dispatches navigation events. It is needed to avoid deadlocks
between window backend threads that emit navigation events (e.g.
X11/GMainLoop
thread) and consumers of navigation events such as glimagesink, see
https://bugzilla.gnome.org/show_bug.cgi?id=733661
GstGlWindow_x11 thread is changed to invoke the navigation thread for
navigation
dispatching, instead of emiting the event itself. Othe backends beside X11
do
not dispatch navigation events yet, but should use this thread when
dispatching
these events in the future.
The navigation thread is currently part of GstGLWindow and not implemented
in
separate subclasses / backends. This will be needed in the future.
gst_gl_window_x11_get_surface_dimensions is also changed to use a cached
value
of the window's width, height. These values are now retrieved in the X11
thread, function gst_gl_window_x11_handle_event. This change is needed
because
otherwise the XGetWindowAttributes gets called from the navigation thread,
leading to xlib aborting due to multithreaded access (if XInitThreads is
not
called before, as is the case for gst-launch)
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list