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:
Víctor Manuel Jáquez Leal 2015-03-14 19:48:21 +01:00 committed by Tim-Philipp Müller
parent 420cdf9cf6
commit 55dbb25dcc
2 changed files with 5 additions and 4 deletions

View file

@ -239,9 +239,6 @@ gst_gl_upload_element_prepare_output_buffer (GstBaseTransform * bt,
/* basetransform doesn't unref if they're the same */
if (buffer == *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;
}

View file

@ -1109,8 +1109,12 @@ restart:
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);
}
GST_OBJECT_UNLOCK (upload);