[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