mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 20:51:13 +00:00
glupload: move meta-data copy into gst-gl library
In some upload implementations the out buffer has more than one references, turning the buffer not writable, so it won't be possible to modify its meta-data. This patch moves the meta-data copy before increasing the reference of the out buffer. https://bugzilla.gnome.org/show_bug.cgi?id=746173
This commit is contained in:
parent
420cdf9cf6
commit
55dbb25dcc
2 changed files with 5 additions and 4 deletions
|
@ -239,9 +239,6 @@ gst_gl_upload_element_prepare_output_buffer (GstBaseTransform * bt,
|
||||||
/* basetransform doesn't unref if they're the same */
|
/* basetransform doesn't unref if they're the same */
|
||||||
if (buffer == *outbuf)
|
if (buffer == *outbuf)
|
||||||
gst_buffer_unref (*outbuf);
|
gst_buffer_unref (*outbuf);
|
||||||
else if (*outbuf)
|
|
||||||
gst_buffer_copy_into (*outbuf, buffer,
|
|
||||||
GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
|
|
||||||
|
|
||||||
return ret == GST_GL_UPLOAD_DONE ? GST_FLOW_OK : GST_FLOW_ERROR;
|
return ret == GST_GL_UPLOAD_DONE ? GST_FLOW_OK : GST_FLOW_ERROR;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1109,8 +1109,12 @@ restart:
|
||||||
NEXT_METHOD;
|
NEXT_METHOD;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (outbuf_ptr)
|
if (outbuf_ptr) {
|
||||||
|
if (buffer != upload->priv->outbuf)
|
||||||
|
gst_buffer_copy_into (upload->priv->outbuf, buffer,
|
||||||
|
GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
|
||||||
*outbuf_ptr = gst_buffer_ref (upload->priv->outbuf);
|
*outbuf_ptr = gst_buffer_ref (upload->priv->outbuf);
|
||||||
|
}
|
||||||
|
|
||||||
GST_OBJECT_UNLOCK (upload);
|
GST_OBJECT_UNLOCK (upload);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue