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
cocoa gl/cocoa: Store a weak reference to the GstGLWindow instead of the GstGLContext 2023-01-17 22:35:29 +05:30
dispmanx
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
glprototypes
utils
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
win32
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
gl_mkenum.py
gstgl_enums.h
gstgl_fwd.h
gstglapi.c
gstglapi.h
gstglbasefilter.c glbasefilter: Copy metas when they only contain they "video" tag 2023-01-12 14:41:24 -03:00
gstglbasefilter.h
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
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
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
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
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
gstglcontextquirks.c gl/context: disable timer queries for ARM Mali-G52 2022-05-12 00:22:21 +00:00
gstgldebug.c
gstgldebug.h
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
gstglfeature.h
gstglfeature_private.h
gstglfilter.c
gstglfilter.h
gstglformat.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglformat.h
gstglframebuffer.c
gstglframebuffer.h
gstglfuncs.h
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
gstgloverlaycompositor.h
gstglpixelformat.c
gstglquery.c
gstglquery.h
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
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
gstglsl_private.h
gstglslstage.c
gstglslstage.h
gstglsyncmeta.c
gstglsyncmeta.h
gstglupload.c glupload: add CAN_ACCEPT_RAW to all dma-buf uploaders 2022-12-14 23:45:56 +00:00
gstglupload.h
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
gstglwindow.c
gstglwindow.h
gstglwindow_private.h
meson.build plugins-base/tests/check/meson.build: add omitted Wayland dependence 2022-12-28 20:04:49 -05:00