gstreamer/subprojects/gst-plugins-base/gst-libs/gst/gl
Nirbheek Chauhan ed1bdf9b1a gl: Fix crash in cocoa due to race in gst_gl_context_activate()
We create a new context in `gst_gl_context_create_thread()` and then
activate it on the current thread. Thereafter we assume that the
current thread continues to be the active thread for that context and
call `gst_gl_context_fill_info()` which asserts that the current
thread is the active thread.

However, if at the same time a different thread calls
`send_message_async()`, it will call into
`gst_gl_window_cocoa_send_message_async()` which will schedule the
message to be invoked using GCD. That anonymous function will also
call `gst_gl_context_activate()`, which creates a race, which can lead
to:

```
gst_gl_context_fill_info: assertion 'context->priv->active_thread == g_thread_self ()' failed
```

Fix it by using `gst_gl_context_thread_add()` to invoke `fill_info()`
on the context.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3732>
2023-01-17 21:56:41 +00:00
..
android Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
cocoa gl/cocoa: Store a weak reference to the GstGLWindow instead of the GstGLContext 2023-01-17 22:35:29 +05:30
dispmanx Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
eagl gl/eagl: fix eagl display creation 2021-10-19 09:34:43 +00:00
egl video: Add arbitrary tile dimensions support 2022-11-18 22:59:29 +00:00
gbm Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
glprototypes Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
utils Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
viv-fb gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
wayland gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
wgl Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
win32 Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
winrt meson: Do hard build error for some MSVC warnings 2022-02-16 17:03:29 +00:00
x11 gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gl-prelude.h gl: Add GST_GL_DEPRECATED 2022-02-21 21:26:43 +00:00
gl.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gl_mkenum.py Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstgl_enums.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstgl_fwd.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglapi.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglapi.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglbasefilter.c glbasefilter: Copy metas when they only contain they "video" tag 2023-01-12 14:41:24 -03:00
gstglbasefilter.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglbasememory.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglbasememory.h gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglbasesrc.c Replace gst-i18n-*.h with gi18n-lib.h 2022-04-19 18:01:06 +00:00
gstglbasesrc.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglbuffer.c gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglbuffer.h gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglbufferpool.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglbufferpool.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglcolorconvert.c video: Add arbitrary tile dimensions support 2022-11-18 22:59:29 +00:00
gstglcolorconvert.h opengl: Add NV12_4L4 conversion support 2022-05-02 19:10:43 +00:00
gstglconfig.h.meson Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglcontext.c gl: Fix crash in cocoa due to race in gst_gl_context_activate() 2023-01-17 21:56:41 +00:00
gstglcontext.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglcontext_private.h gl/context: disable timer queries for ARM Mali-G52 2022-05-12 00:22:21 +00:00
gstglcontextconfig.c docs/glcontextconfig: rename title to not be GstGLContext 2022-10-19 13:01:06 +00:00
gstglcontextconfig.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglcontextquirks.c gl/context: disable timer queries for ARM Mali-G52 2022-05-12 00:22:21 +00:00
gstgldebug.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstgldebug.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstgldisplay.c Fix various warnings from gobject-introspection 2022-10-25 09:45:25 +03:00
gstgldisplay.h gl: Replace existing G_DEPRECATED_FOR usage with GST_GL_DEPRECATED_FOR 2022-02-21 21:26:43 +00:00
gstglfeature.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglfeature.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglfeature_private.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglfilter.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglfilter.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglformat.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglformat.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglframebuffer.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglframebuffer.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglfuncs.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglmemory.c video: Add arbitrary tile dimensions support 2022-11-18 22:59:29 +00:00
gstglmemory.h opengl: Add NV12_4L4 conversion support 2022-05-02 19:10:43 +00:00
gstglmemorypbo.c gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglmemorypbo.h gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstgloverlaycompositor.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstgloverlaycompositor.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglpixelformat.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglquery.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglquery.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglrenderbuffer.c gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglrenderbuffer.h gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglshader.c Fix various warnings from gobject-introspection 2022-10-25 09:45:25 +03:00
gstglshader.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglshaderstrings.c gl: Add #ifndef GST_REMOVE_DEPRECATED for existing deprecated API 2022-02-21 21:26:43 +00:00
gstglshaderstrings.h gl: Replace existing G_DEPRECATED_FOR usage with GST_GL_DEPRECATED_FOR 2022-02-21 21:26:43 +00:00
gstglsl.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglsl.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglsl_private.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglslstage.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglslstage.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglsyncmeta.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglsyncmeta.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglupload.c glupload: add CAN_ACCEPT_RAW to all dma-buf uploaders 2022-12-14 23:45:56 +00:00
gstglupload.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglutils.c video: Add arbitrary tile dimensions support 2022-11-18 22:59:29 +00:00
gstglutils.h glutils: Export affine transformation functions for gtkglsink 2021-10-12 20:27:34 +00:00
gstglutils_private.h glutils: Export affine transformation functions for gtkglsink 2021-10-12 20:27:34 +00:00
gstglviewconvert.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglviewconvert.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglwindow.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglwindow.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstglwindow_private.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
meson.build plugins-base/tests/check/meson.build: add omitted Wayland dependence 2022-12-28 20:04:49 -05:00