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
/* 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;
}
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);