gstreamer/subprojects/gst-plugins-base/gst-libs/gst/gl
Sebastian Dröge fc026fcfbe glupload: Don't skip all other methods than the currently selected one when transforming caps
This leads to spurious negotiation failures because the configured method can
change over time and caps queries (and thus transform_caps) are happening
independently from configuring caps. Instead prefer the transformed caps of the
current method, but always also return the transformed caps for all other
methods. Previously all other methods would've only been used if the current
method returned empty caps. If a different method is needed later when
configuring the caps, it will be and was selected regardless.

Later during caps fixation, prefer the caps of the current method too for the
fixated caps if possible in any way.

This should preserve the desired behaviour of preferring the current method if
possible but to change to a different method if nothing else is possible, while
also returning consistent (and not too narrow) caps every time.

The way how the current method was checked was also racy as the current method
might change at any moment during caps query handling, and apart from
inconsistent results also a NULL pointer dereference was possible here. Use the
GST_OBJECT_LOCK to protect access to the current method like in other places.

This part of the code was introduced in f349cdccf5
and tried to be fixed multiple times over the years without addressing the root
cause of caps queries and caps configuration happening independently from each
other, e.g. in !2687 and !2699.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8431>
2025-02-14 18:44:34 +00:00
..
android
cocoa cocoa: fix rendering artefacts in retina displays 2024-11-05 13:40:23 +00:00
dispmanx
eagl gl/eagl: ignore OpenGLES deprecation on ios 2023-07-27 13:05:37 +00:00
egl gl: Add missing Since marker 2024-11-29 08:44:30 +00:00
gbm gl: raise WARNING instead of ERROR when no connector is connected 2024-12-12 10:43:26 +01:00
glprototypes qmlgloverlay: make depth buffer optional 2024-11-01 02:37:57 +00:00
utils
viv-fb viv-fb: fix build warning of [-Wunused-variable] 2024-01-15 07:24:47 +00:00
wayland gst-launch: accept option to set program name 2024-01-12 17:11:11 +00:00
wgl glcontext_wgl: fix missing unref 2023-04-11 20:05:17 +00:00
win32 vulkan: gl: change symbols to static 2023-03-23 00:56:04 +00:00
winrt meson: Do hard build error for some MSVC warnings 2022-02-16 17:03:29 +00:00
x11 gl/x11: fix memory leak when retrieiving a foreign context's info 2024-02-22 10:24:24 +00:00
gl-prelude.h gl: Add GST_GL_DEPRECATED 2022-02-21 21:26:43 +00:00
gl.h gl/mixer: make fbo instance field private and provide accessor function 2023-05-18 19:34:14 +00:00
gl_mkenum.py
gstgl_enums.h
gstgl_fwd.h
gstglapi.c
gstglapi.h
gstglbasefilter.c gl: basefilter: Ensure we have a context before running allocation query 2024-01-13 10:36:51 +00: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
gstglbasemixer.c gl: update docs for mixer move 2023-05-18 19:34:15 +00:00
gstglbasemixer.h gl: update docs for mixer move 2023-05-18 19:34:15 +00:00
gstglbasesrc.c glbasesrc: Reverse order of error/debug messages 2023-04-11 12:28:27 +01: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 glbufferpool: protect release_buffer from multiple concurrent access 2024-04-02 23:50:41 +00:00
gstglbufferpool.h gl/bufferpool: add configuration to extend buffer lifetime before reuse 2023-08-31 01:24:38 +00:00
gstglcolorconvert.c gl: colorconvert: Add support for I422_10XX and I422_12XX 2024-11-19 12:39:01 +00:00
gstglcolorconvert.h gl: colorconvert: Add support for I422_10XX and I422_12XX 2024-11-19 12:39:01 +00:00
gstglconfig.h.meson
gstglcontext.c glcontext: add trace log when scheduling function in GL thread 2025-01-06 06:56:50 +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 all: Fix closure annotations 2024-10-25 08:58:29 +00:00
gstgldisplay.h gl: add support for surfaceless display in GstGL 2023-10-20 12:46:48 +00:00
gstglfeature.c
gstglfeature.h
gstglfeature_private.h
gstglfilter.c glfiter: Protect GstGLContext access 2023-10-18 11:22:31 +00:00
gstglfilter.h
gstglformat.c gl: colorconvert: Add support for I422_10XX and I422_12XX 2024-11-19 12:39:01 +00:00
gstglformat.h gl: expose calculating swizzle indices to/from RGBA/YUVA 2023-07-28 03:29:09 +00:00
gstglframebuffer.c glframebuffer: Improve error tracing 2024-08-02 13:03:51 +00:00
gstglframebuffer.h
gstglfuncs.h qmlgloverlay: make depth buffer optional 2024-11-01 02:37:57 +00:00
gstglmemory.c glcolorconvert: add support for converting to/from v210 2024-05-23 04:42:06 +00:00
gstglmemory.h gl: colorconvert: Add support for I422_10XX and I422_12XX 2024-11-19 12:39:01 +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
gstglmixer.c glmixer: Add GL_SYNC_META option to bufferpool 2024-04-29 19:15:39 +00:00
gstglmixer.h gl: update docs for mixer move 2023-05-18 19:34:15 +00:00
gstgloverlaycompositor.c gloverlaycompositor: Add GL sync point when uploading overlays 2023-11-07 00:32:39 +01:00
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: Don't skip all other methods than the currently selected one when transforming caps 2025-02-14 18:44:34 +00:00
gstglupload.h gl: upload: Implement the fixate_caps virtual function 2023-10-18 19:56:30 +00:00
gstglutils.c gldownload: enumerate emulated video formats 2024-11-28 15:25:28 -05:00
gstglutils.h gldownload: enumerate emulated video formats 2024-11-28 15:25:28 -05:00
gstglutils_private.h
gstglviewconvert.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglviewconvert.h
gstglwindow.c all: Fix closure annotations 2024-10-25 08:58:29 +00:00
gstglwindow.h
gstglwindow_private.h
meson.build docs: generate hotdoc configs for libraries with our helper script 2025-01-17 20:36:06 +01:00