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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4791>
This commit is contained in:
Matthew Waters 2023-06-07 13:46:39 +10:00 committed by GStreamer Marge Bot
parent fd1d208446
commit b291efe44b

View file

@ -1237,8 +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) {