mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 14:36:24 +00:00
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>
This commit is contained in:
parent
f136337970
commit
17cb683615
1 changed files with 8 additions and 8 deletions
|
@ -1228,12 +1228,18 @@ gst_gl_download_element_prepare_output_buffer (GstBaseTransform * bt,
|
||||||
{
|
{
|
||||||
GstGLDownloadElement *dl = GST_GL_DOWNLOAD_ELEMENT (bt);
|
GstGLDownloadElement *dl = GST_GL_DOWNLOAD_ELEMENT (bt);
|
||||||
GstBaseTransformClass *bclass = GST_BASE_TRANSFORM_GET_CLASS (bt);
|
GstBaseTransformClass *bclass = GST_BASE_TRANSFORM_GET_CLASS (bt);
|
||||||
|
GstGLContext *context = GST_GL_BASE_FILTER (bt)->context;
|
||||||
|
GstGLSyncMeta *in_sync_meta;
|
||||||
gint i, n;
|
gint i, n;
|
||||||
|
|
||||||
*outbuf = inbuf;
|
*outbuf = inbuf;
|
||||||
|
|
||||||
(void) bclass;
|
(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 GST_GL_HAVE_PLATFORM_EGL && defined(HAVE_NVMM)
|
||||||
if (dl->mode == GST_GL_DOWNLOAD_MODE_NVMM) {
|
if (dl->mode == GST_GL_DOWNLOAD_MODE_NVMM) {
|
||||||
GstNVMMParentMeta *buf_meta = gst_buffer_get_nvmm_parent_meta (inbuf);
|
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);
|
GstBuffer *buffer = _try_export_dmabuf (dl, inbuf);
|
||||||
|
|
||||||
if (buffer) {
|
if (buffer) {
|
||||||
GstGLContext *context = GST_GL_BASE_FILTER (bt)->context;
|
if (GST_BASE_TRANSFORM_GET_CLASS (bt)->copy_metadata) {
|
||||||
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 (bt, inbuf,
|
if (!GST_BASE_TRANSFORM_GET_CLASS (bt)->copy_metadata (bt, inbuf,
|
||||||
buffer)) {
|
buffer)) {
|
||||||
GST_ELEMENT_WARNING (GST_ELEMENT (bt), STREAM, NOT_IMPLEMENTED,
|
GST_ELEMENT_WARNING (GST_ELEMENT (bt), STREAM, NOT_IMPLEMENTED,
|
||||||
("could not copy metadata"), (NULL));
|
("could not copy metadata"), (NULL));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*outbuf = buffer;
|
*outbuf = buffer;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue