qtdemux: Don't reset output timestamps when no tfdt
authorJan Schmidt <jan@centricular.com>
Sat, 7 Jan 2017 12:55:42 +0000 (23:55 +1100)
committerJan Schmidt <jan@centricular.com>
Sat, 7 Jan 2017 12:57:35 +0000 (23:57 +1100)
If a fragmented stream doesn't have a tfdt, don't
reset the output timestamps at each fragment boundary
by erroneously using the default value of 0. Introduced
by commit 69fc48

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

gst/isomp4/qtdemux.c

index 854ef3a..f178301 100644 (file)
@@ -3178,7 +3178,7 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun,
       /* If this is a GST_FORMAT_BYTES stream and there's a significant
        * difference (1 sec.) between decode_ts and timestamp, prefer the
        * former */
-      if (!qtdemux->upstream_format_is_time
+      if (decode_ts != 0 && !qtdemux->upstream_format_is_time
           && ABSDIFF (decode_ts, timestamp) >
           MAX (stream->duration_last_moof / 2,
               GSTTIME_TO_QTSTREAMTIME (stream, GST_SECOND))) {