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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4800>
(void) bclass;
in_sync_meta = gst_buffer_get_gl_sync_meta (inbuf);
(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);
#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);