From 2f2eef88cb2c1740721c1eea83cd0988156194ea Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Wed, 7 Jun 2023 13:46:39 +1000 Subject: [PATCH] gldownload: handle passthrough without a critical With passthrough mode, gldownload/glbasefilter may not ever retrieve a relevant GstGLContext as it doesn't actually query the surrounding elements. Guard against that. Part-of: --- subprojects/gst-plugins-base/ext/gl/gstgldownloadelement.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/subprojects/gst-plugins-base/ext/gl/gstgldownloadelement.c b/subprojects/gst-plugins-base/ext/gl/gstgldownloadelement.c index 1951827..8d8f864 100644 --- a/subprojects/gst-plugins-base/ext/gl/gstgldownloadelement.c +++ b/subprojects/gst-plugins-base/ext/gl/gstgldownloadelement.c @@ -1237,9 +1237,14 @@ gst_gl_download_element_prepare_output_buffer (GstBaseTransform * bt, (void) bclass; in_sync_meta = gst_buffer_get_gl_sync_meta (inbuf); - if (in_sync_meta) - gst_gl_sync_meta_wait (in_sync_meta, context); - + if (in_sync_meta) { + if (context) { + gst_gl_sync_meta_wait (in_sync_meta, context); + } else if (dl->mode != GST_GL_DOWNLOAD_MODE_PASSTHROUGH) { + GST_WARNING_OBJECT (dl, "No configured GL context in non-passthrough " + "mode. Cannot wait on incoming `GstGLSyncMeta`"); + } + } #if GST_GL_HAVE_PLATFORM_EGL && defined(HAVE_NVMM) if (dl->mode == GST_GL_DOWNLOAD_MODE_NVMM) { GstNVMMParentMeta *buf_meta = gst_buffer_get_nvmm_parent_meta (inbuf); -- 2.7.4