gstreamer/gst-libs/gst/gl
Vasilis Liaskovitis f803a9e746 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)
2017-12-09 19:31:46 +00:00
..
android gl/android: Notify the window's resize callback about surface dimension changes 2017-12-09 19:31:37 +00:00
cocoa glcocoa: initalize NSApp asap when using gst-launch 2017-12-09 19:31:44 +00:00
dispmanx gl/rpi: do not scale to full screen 2017-12-09 19:31:37 +00:00
eagl gl/eagl: Fix compilation 2017-12-09 19:31:37 +00:00
egl egl: Wrap KHR_create_context flags in an ifdef 2017-12-09 19:31:45 +00:00
glprototypes gl: add prototype definition for KHR_debug 2017-12-09 19:31:45 +00:00
wayland gl: fix out-of-source builds. 2017-12-09 19:31:35 +00:00
win32 gl/win32: make send_message reentrant 2017-12-09 19:31:41 +00:00
x11 GstGLWindow: Introduce navigation thread 2017-12-09 19:31:46 +00:00
.gitignore [644/906] update .gitignore for some new files 2017-12-09 19:31:27 +00:00
gl.h gl: Move GstGLMixer to the plugin for now 2017-12-09 19:31:44 +00:00
gstgl_fwd.h gl/upload: add GstGLUploadMeta object 2017-12-09 19:31:41 +00:00
gstglapi.c glfeature: remove GST_GL_API_GLES3 2017-12-09 19:31:42 +00:00
gstglapi.h gl: add prototypes for KHR_debug/ARB_debug_output 2017-12-09 19:31:45 +00:00
gstglbufferpool.c glbufferpool: fix allocator leak in some cases 2017-12-09 19:31:45 +00:00
gstglbufferpool.h glbufferpool: provide a consistent API regardless of platform 2017-12-09 19:31:43 +00:00
gstglcolorconvert.c glmemory: use GstVideoInfo everywhere 2017-12-09 19:31:45 +00:00
gstglcolorconvert.h gl/colorconvert: use GstObject's lock instead of our own 2017-12-09 19:31:42 +00:00
gstglcontext.c gl: Add GSTGLAPI macro to the debug callback function 2017-12-09 19:31:46 +00:00
gstglcontext.h glcontext: add a destroy function 2017-12-09 19:31:45 +00:00
gstgldisplay.c gl/docs: remove superflous 'the' 2017-12-09 19:31:45 +00:00
gstgldisplay.h gl/display: clean up pre gstglcontext api and struct fields 2017-12-09 19:31:39 +00:00
gstgldownload.c glmemory: use GstVideoInfo everywhere 2017-12-09 19:31:45 +00:00
gstgldownload.h gl/download: use GstObject's lock instead of out own 2017-12-09 19:31:42 +00:00
gstglfeature.c glfeature: remove GST_GL_API_GLES3 2017-12-09 19:31:42 +00:00
gstglfeature.h glfeature: remove GST_GL_API_GLES3 2017-12-09 19:31:42 +00:00
gstglfilter.c gl: fix multi gl object leaks 2017-12-09 19:31:44 +00:00
gstglfilter.h [874/906] filter: implement draw_texture for GLES2 2017-12-09 19:31:33 +00:00
gstglframebuffer.c gl: fix multi gl object leaks 2017-12-09 19:31:44 +00:00
gstglframebuffer.h [812/906] move the GL vtable from GstGLDisplay to GstGLContext 2017-12-09 19:31:31 +00:00
gstglmemory.c glmemory: use the plane offsets to compute the size of the data pointer 2017-12-09 19:31:45 +00:00
gstglmemory.h glmemory: use GstVideoInfo everywhere 2017-12-09 19:31:45 +00:00
gstglshader.c glshader: expose opengl handle in getter 2017-12-09 19:31:45 +00:00
gstglshader.h glshader: expose opengl handle in getter 2017-12-09 19:31:45 +00:00
gstglshadervariables.c gl: Fix memory leak 2017-12-09 19:31:40 +00:00
gstglshadervariables.h [733/906] gl: Major header and include cleanup 2017-12-09 19:31:29 +00:00
gstglupload.c glupload: don't determine if frame needs upload by pointer compare 2017-12-09 19:31:45 +00:00
gstglupload.h gl/upload: use GstObject's lock instead of our own 2017-12-09 19:31:42 +00:00
gstgluploadmeta.c glmemory: use GstVideoInfo everywhere 2017-12-09 19:31:45 +00:00
gstgluploadmeta.h gl/upload: add GstGLUploadMeta object 2017-12-09 19:31:41 +00:00
gstglutils.c gl: check null before unref GstGLDisplay 2017-12-09 19:31:45 +00:00
gstglutils.h glfilterapp: remove the reshape/draw properties 2017-12-09 19:31:42 +00:00
gstglwindow.c GstGLWindow: Introduce navigation thread 2017-12-09 19:31:46 +00:00
gstglwindow.h GstGLWindow: Introduce navigation thread 2017-12-09 19:31:46 +00:00
Makefile.am gstopengl: add introspection support 2017-12-09 19:31:45 +00:00