summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2021-07-27 13:30:56 +1000
committerMatthew Waters <matthew@centricular.com>2021-07-27 13:30:56 +1000
commit17cb6836158cc7e496c466482221d04a54db392e (patch)
tree2ac543a602c0620d564738f81517a6aec56885f6
parentf13633797076dab6d42faf2c4078278850089c19 (diff)
downloadgstreamer-plugins-base-17cb6836158cc7e496c466482221d04a54db392e.tar.gz
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.c16
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 {