splitmuxpartreader: ignore sparse streams when calculating the end offset of a part
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>
Wed, 22 Feb 2017 09:23:19 +0000 (11:23 +0200)
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>
Mon, 27 Feb 2017 10:58:21 +0000 (12:58 +0200)
A sparse stream's ending timestamp can be considerably smaller
than the ending timestamps of the other streams, which can lead
to skipping considerable time from the next part.

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

gst/multifile/gstsplitmuxpartreader.c

index 59ecb36f666e1d95a6bf21381f3b8e3c06a82fc7..784c4bbdff6d7432789e10329a8424da61c46029 100644 (file)
@@ -1244,7 +1244,7 @@ gst_splitmux_part_reader_get_end_offset (GstSplitMuxPartReader * reader)
   SPLITMUX_PART_LOCK (reader);
   for (cur = g_list_first (reader->pads); cur != NULL; cur = g_list_next (cur)) {
     GstSplitMuxPartPad *part_pad = SPLITMUX_PART_PAD_CAST (cur->data);
-    if (part_pad->max_ts < ret)
+    if (!part_pad->is_sparse && part_pad->max_ts < ret)
       ret = part_pad->max_ts;
   }