splitmuxpartreader: ignore sparse streams when calculating the end offset of a part

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
This commit is contained in:
George Kiagiadakis 2017-02-22 11:23:19 +02:00
parent 99728792cd
commit 9b84513337

View file

@ -1244,7 +1244,7 @@ gst_splitmux_part_reader_get_end_offset (GstSplitMuxPartReader * reader)
SPLITMUX_PART_LOCK (reader); SPLITMUX_PART_LOCK (reader);
for (cur = g_list_first (reader->pads); cur != NULL; cur = g_list_next (cur)) { for (cur = g_list_first (reader->pads); cur != NULL; cur = g_list_next (cur)) {
GstSplitMuxPartPad *part_pad = SPLITMUX_PART_PAD_CAST (cur->data); 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; ret = part_pad->max_ts;
} }