gstreamer/gst-libs/gst
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
..
allocators fdmemory: Allow for change of protection mode 2020-10-28 17:11:05 +00:00
app appsrc: fix signal documentation 2020-12-31 17:01:40 +00:00
audio audio: add GstAudioLevelMeta 2021-02-04 10:25:24 +01:00
fft Meson: Use pkg-config generator 2020-10-23 11:19:11 -04:00
gl gl/dispmanx: fix deadlock triggered by set_render_rectangle 2021-02-10 09:30:27 +01:00
pbutils gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
riff Meson: Use pkg-config generator 2020-10-23 11:19:11 -04:00
rtp rtpbasedepayload: add auto-header-extension property 2021-02-03 11:23:40 +01:00
rtsp Meson: Use pkg-config generator 2020-10-23 11:19:11 -04:00
sdp Meson: Use pkg-config generator 2020-10-23 11:19:11 -04:00
tag tagdemux: resize and trim buffer in place to fix interaction with oggdemux 2021-01-04 14:21:43 +00:00
video videoconvert: Support for alternate-field interlacing 2021-02-04 18:22:07 +02:00
gettext.h Fix FSF address 2012-11-03 23:05:09 +00:00
glib-compat-private.h Fix FSF address 2012-11-03 23:05:09 +00:00
gst-i18n-app.h tools: add simple command-line gst-play utility for testing purposes 2013-08-16 15:45:23 +01:00
gst-i18n-plugin.h Fix FSF address 2012-11-03 23:05:09 +00:00
meson.build meson: Add feature options for all plugins 2018-07-27 18:42:11 +05:30