diff options
author | Matthew Waters <matthew@centricular.com> | 2021-07-27 13:30:56 +1000 |
---|---|---|
committer | Matthew Waters <matthew@centricular.com> | 2021-07-27 13:30:56 +1000 |
commit | 17cb6836158cc7e496c466482221d04a54db392e (patch) | |
tree | 2ac543a602c0620d564738f81517a6aec56885f6 | |
parent | f13633797076dab6d42faf2c4078278850089c19 (diff) |
gldownload: use the GstGLSyncMeta in all cases
fixes qmlglsrc ! gldownload ! videoconvert in some cases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1232>
-rw-r--r-- | ext/gl/gstgldownloadelement.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/ext/gl/gstgldownloadelement.c b/ext/gl/gstgldownloadelement.c index 4e16d1f98..19518277a 100644 --- a/ext/gl/gstgldownloadelement.c +++ b/ext/gl/gstgldownloadelement.c @@ -1228,12 +1228,18 @@ gst_gl_download_element_prepare_output_buffer (GstBaseTransform * bt, { GstGLDownloadElement *dl = GST_GL_DOWNLOAD_ELEMENT (bt); GstBaseTransformClass *bclass = GST_BASE_TRANSFORM_GET_CLASS (bt); + GstGLContext *context = GST_GL_BASE_FILTER (bt)->context; + GstGLSyncMeta *in_sync_meta; gint i, n; *outbuf = 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 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); @@ -1283,19 +1289,13 @@ gst_gl_download_element_prepare_output_buffer (GstBaseTransform * bt, GstBuffer *buffer = _try_export_dmabuf (dl, inbuf); if (buffer) { - GstGLContext *context = GST_GL_BASE_FILTER (bt)->context; - GstGLSyncMeta *in_sync_meta; - - in_sync_meta = gst_buffer_get_gl_sync_meta (inbuf); - if (in_sync_meta) - gst_gl_sync_meta_wait (in_sync_meta, context); - - if (GST_BASE_TRANSFORM_GET_CLASS (bt)->copy_metadata) + if (GST_BASE_TRANSFORM_GET_CLASS (bt)->copy_metadata) { if (!GST_BASE_TRANSFORM_GET_CLASS (bt)->copy_metadata (bt, inbuf, buffer)) { GST_ELEMENT_WARNING (GST_ELEMENT (bt), STREAM, NOT_IMPLEMENTED, ("could not copy metadata"), (NULL)); } + } *outbuf = buffer; } else { |