tagdemux: preserve duration when skipping a tag at the beginning of a buffer

gst_buffer_copy_region() does not copy the duration if it doesn't start
with the first byte. We just skip the tag here, so the duration is still
valid.

https://bugzilla.gnome.org/show_bug.cgi?id=767791
This commit is contained in:
Michael Olbrich 2016-06-17 15:11:20 +02:00 committed by Sebastian Dröge
parent 26f63db498
commit 72879c3639

View file

@ -468,6 +468,8 @@ gst_tag_demux_trim_buffer (GstTagDemux * tagdemux, GstBuffer ** buf_ref,
g_return_val_if_fail (sub != NULL, FALSE); g_return_val_if_fail (sub != NULL, FALSE);
if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) if (GST_BUFFER_TIMESTAMP_IS_VALID (buf))
GST_BUFFER_TIMESTAMP (sub) = GST_BUFFER_TIMESTAMP (buf); GST_BUFFER_TIMESTAMP (sub) = GST_BUFFER_TIMESTAMP (buf);
if (GST_BUFFER_DURATION_IS_VALID (buf))
GST_BUFFER_DURATION (sub) = GST_BUFFER_DURATION (buf);
gst_buffer_unref (buf); gst_buffer_unref (buf);
*buf_ref = buf = sub; *buf_ref = buf = sub;
*buf_size = out_size; *buf_size = out_size;