tagdemux: preserve timestamp when skipping a tag at the beginning of a buffer
authorMichael Olbrich <m.olbrich@pengutronix.de>
Wed, 1 Jun 2016 09:02:12 +0000 (11:02 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 4 Jun 2016 11:40:24 +0000 (12:40 +0100)
gst_buffer_copy_region() does not copy the timestamp if it doesn't start
with the first byte. We just skip the tag here, so the timestamp is still
valid.

https://bugzilla.gnome.org/show_bug.cgi?id=767173

gst-libs/gst/tag/gsttagdemux.c

index 41fdec3..e9e7aa2 100644 (file)
@@ -466,6 +466,8 @@ gst_tag_demux_trim_buffer (GstTagDemux * tagdemux, GstBuffer ** buf_ref,
           gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, trim_start,
           out_size);
       g_return_val_if_fail (sub != NULL, FALSE);
+      if (GST_BUFFER_TIMESTAMP_IS_VALID (buf))
+        GST_BUFFER_TIMESTAMP (sub) = GST_BUFFER_TIMESTAMP (buf);
       gst_buffer_unref (buf);
       *buf_ref = buf = sub;
       *buf_size = out_size;