gstreamer/gst-libs/gst/gl
Alexander Vandenbulcke 57029ba098 gl/dispmanx: fix deadlock triggered by set_render_rectangle
When the gstglimagesink is started with the option `glimagesink
render-rectangle="<0,0,1920,1080>"`, the pipeline reaches a deadlock.
The reason the deadlock occurs is that the
`gst_gl_window_set_render_rectangle` takes locks on the window, in
addition it calls `window_class->set_render_rectangle(...)` which
executes the `_on_resize` function. Since the `_on_resize` function also
takes locks on the window the deadlock is achieved.

By scheduling the adjustment of the render rectangle through an async
message for `gst_gl_window_dispmanx_set_render_rectangle`, the actual
resize happens in another context and therefore doesn't suffers from the
lock taken in `gst_gl_window_set_render_rectangle`.

This solution follows the same approach as gl/wayland. The problem was
introduced by b887db1. For the full discussion check #849.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1030>
2021-02-10 09:30:27 +01:00
..
android Remove autotools build system 2019-10-13 14:15:43 +01:00
cocoa glcontext/cocoa: handle sending one message during shutdown 2020-03-26 11:25:44 +00:00
dispmanx gl/dispmanx: fix deadlock triggered by set_render_rectangle 2021-02-10 09:30:27 +01:00
eagl gl/eagl: Fix automatic resize behaviour 2020-12-03 08:18:29 +00:00
egl gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gbm gl/gbm: ensure we call the resize callback before attempting to draw 2019-11-05 07:27:29 +11:00
glprototypes gl: Fix prototype of glGetSynciv() 2020-11-03 16:40:38 +02:00
utils gl: Fix compiler warning about unused const variable with gcc 6 2017-12-09 19:32:17 +00:00
viv-fb Remove autotools build system 2019-10-13 14:15:43 +01:00
wayland build/gl: add top-level include files for sub-libraries 2020-08-11 07:11:30 +00:00
wgl glcontext: wgl: Implement check_feature vfunc 2020-11-28 08:00:11 +00:00
win32 glwindow/win32: Fix possible deadlock around key/mouse event handling 2020-07-08 13:41:07 +00:00
winrt glwindow/winrt: Increase timeout value to 15 seconds 2020-07-30 21:05:54 +09:00
x11 build/gl: add top-level include files for sub-libraries 2020-08-11 07:11:30 +00:00
gl-prelude.h libs: fix API export/import and 'inconsistent linkage' on MSVC 2018-09-24 08:45:34 +01:00
gl.h gl: New pushsrc-based glbasesrc base class 2019-08-20 09:51:05 +01:00
gl_mkenum.py gl/build: build with implicit_include_directories : false 2020-08-27 00:08:08 +00:00
gstgl_enums.h gl: document some GL caps specifics 2021-01-05 15:03:54 +00:00
gstgl_fwd.h gl: move each gl platform specific API to its own gir 2020-08-06 04:09:09 +00:00
gstglapi.c Pass the code through codespell 2019-08-30 13:05:36 +00:00
gstglapi.h gl: GstGLAPI should be gst_gl_api_ in lower-case 2018-10-04 14:50:43 +03:00
gstglbasefilter.c glbasefilter: Need to check the display before lock it. 2020-12-04 00:23:38 +08:00
gstglbasefilter.h glbasefilter: add support for changing the display 2020-03-03 02:11:52 +00:00
gstglbasememory.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglbasememory.h gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglbasesrc.c gl: Add since tags for new glbasesrc base class 2020-04-30 18:00:19 +01:00
gstglbasesrc.h gl: Add since tags for new glbasesrc base class 2020-04-30 18:00:19 +01:00
gstglbuffer.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglbuffer.h gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglbufferpool.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglbufferpool.h gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglcolorconvert.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglcolorconvert.h gl: add support for GBR and GBRA 2020-09-09 12:04:52 +00:00
gstglconfig.h.meson gstgl: Add a new window type for WinRT 2019-08-28 02:25:11 +05:30
gstglcontext.c glcontext: add context is valid precondition to get_thread() 2020-03-26 11:25:44 +00:00
gstglcontext.h gl: GST_EXPORT -> GST_GL_API 2018-03-13 12:10:29 +00:00
gstglcontext_private.h glframebuffer: Don't do expensive checks with low gst debug levels 2019-03-12 03:21:57 +00:00
gstgldebug.c gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstgldebug.h gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstgldisplay.c Revert "gstgldisplay: Add public foreign_display property" 2020-07-20 05:59:14 +00:00
gstgldisplay.h Revert "gstgldisplay: Add public foreign_display property" 2020-07-20 05:59:14 +00:00
gstglfeature.c Pass the code through codespell 2019-08-30 13:05:36 +00:00
gstglfeature.h gl: GST_EXPORT -> GST_GL_API 2018-03-13 12:10:29 +00:00
gstglfeature_private.h glfeature: move internal functions into a private header 2017-12-09 19:32:23 +00:00
gstglfilter.c gl: workaround gir warning 2020-05-19 10:37:59 +02:00
gstglfilter.h gl: workaround gir warning 2020-05-19 10:37:59 +02:00
gstglformat.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglformat.h gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglframebuffer.c Pass the code through codespell 2019-08-30 13:05:36 +00:00
gstglframebuffer.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 20:31:09 -04:00
gstglfuncs.h gst-gl: Remove duplicate declarations 2018-11-28 11:59:25 +00:00
gstglmemory.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglmemory.h gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglmemorypbo.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglmemorypbo.h gl: add get_type() implementations for all of our memory types 2021-01-13 13:40:58 +00:00
gstgloverlaycompositor.c gloverlaycompositor: fix crash if buffer doesn't have video meta 2019-05-14 17:12:06 +00:00
gstgloverlaycompositor.h gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstglpixelformat.c glfilter: rewrite subclasses for filter_texture() occuring on GL thread 2017-12-09 19:32:21 +00:00
gstglquery.c glquery: fix a possible unintialized value 2020-03-02 19:36:50 +11:00
gstglquery.h gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstglrenderbuffer.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglrenderbuffer.h gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglshader.c remove various useless linefeed in logs 2019-12-11 10:07:12 +01:00
gstglshader.h gl: GST_EXPORT -> GST_GL_API 2018-03-13 12:10:29 +00:00
gstglshaderstrings.c glshader: fix default external-oes shaders 2019-05-07 18:43:49 +10:00
gstglshaderstrings.h gl: try to use highp precision where supported 2019-02-28 17:26:32 +11:00
gstglsl.c build: fix debug output werror build with newer gcc 2019-09-23 17:59:12 +10:00
gstglsl.h Pass the code through codespell 2019-08-30 13:05:36 +00:00
gstglsl_private.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglslstage.c glslstage: delete shader on finalize of stage 2020-10-21 15:28:09 +02:00
gstglslstage.h gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstglsyncmeta.c gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglsyncmeta.h gl: GST_EXPORT -> GST_GL_API 2018-03-13 12:10:29 +00:00
gstglupload.c glupload: fix segfault 2020-03-26 14:06:13 +08:00
gstglupload.h libs: gl: silence gir compiler 2020-05-29 13:35:56 +02:00
gstglutils.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglutils.h gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglutils_private.h glutils: fix matrix operations everywhere 2017-12-09 19:32:30 +00:00
gstglviewconvert.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglviewconvert.h gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstglwindow.c gst/gl: Add documentation for new scroll API 2020-04-30 18:00:19 +01:00
gstglwindow.h gl/navigation: Scroll events dispatch support 2020-03-19 09:59:47 +00:00
gstglwindow_private.h gl: add missing new header files 2017-12-09 19:32:29 +00:00
meson.build gl/build: use the brcm GL libraries on the rpi 2020-10-28 19:18:10 +00:00