[Bug 733661] glimagesink navigation interface causes hangs with X11/GMainLoop event thread

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Aug 27 10:09:45 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=733661
  GStreamer | gst-plugins-bad | git

--- Comment #1 from Vasilis Liaskovitis <vliaskov at gmail.com> 2014-08-27 17:09:39 UTC ---
Created an attachment (id=284623)
 View: https://bugzilla.gnome.org/attachment.cgi?id=284623
 Review: https://bugzilla.gnome.org/review?bug=733661&attachment=284623

[PATCH] GstGlWindow: Introduce navigation thread

This RFC patch introduces a navigation thread in GstGLWindow to dispatch
navigation events. GstGlWindow_x11 thread is changed to invoke the navigation
thread for navigation dispatching, instead of emiting the events itself. The
deadlock should be avoided this way.

The navigation thread is currently part of GstGLWindow and not implemented in
separate subclasses / backends yet. Perhaps this is needed?

Also commit 4dacc4ba introduced get_surface_dimensions method. The problem for
the X11 backend, is that now this function is called from the navigation
thread, resulting in xlib aborting due to multithreaded access:

[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been
called
[xcb] Aborting, sorry about that. 

The call to gst_gl_window_get_surface_dimensions has been commented for now. I
am not sure if this is considered a gst-launch problem (gst-launch not calling
XInitThreads), or a design problem of this navigation thread solution. Also the
commit that introduced get_surface_dimensions (4dacc4ba) could also be reverted
for now if needed.

-- 
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