mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-17 22:06:41 +00:00
hlsdemux2: Always check DSN if required
We don't want to consider the candidate as being before the playlist if the DSN don't match Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
This commit is contained in:
parent
5d0b112c0c
commit
6934362817
1 changed files with 6 additions and 3 deletions
|
@ -1045,6 +1045,11 @@ find_segment_in_playlist (GstHLSMediaPlaylist * playlist,
|
||||||
for (idx = 0; idx < playlist->segments->len; idx++) {
|
for (idx = 0; idx < playlist->segments->len; idx++) {
|
||||||
GstM3U8MediaSegment *cand = g_ptr_array_index (playlist->segments, idx);
|
GstM3U8MediaSegment *cand = g_ptr_array_index (playlist->segments, idx);
|
||||||
|
|
||||||
|
/* Ignore non-matching DSN if needed */
|
||||||
|
if ((segment->discont_sequence != cand->discont_sequence)
|
||||||
|
&& playlist->has_ext_x_dsn)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (idx == 0 && cand->sequence == segment->sequence + 1) {
|
if (idx == 0 && cand->sequence == segment->sequence + 1) {
|
||||||
/* Special case for segments just before the 1st one. We add another
|
/* Special case for segments just before the 1st one. We add another
|
||||||
* reference because it now also belongs to the current playlist */
|
* reference because it now also belongs to the current playlist */
|
||||||
|
@ -1055,9 +1060,7 @@ find_segment_in_playlist (GstHLSMediaPlaylist * playlist,
|
||||||
return segment;
|
return segment;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((segment->discont_sequence == cand->discont_sequence
|
if (cand->sequence == segment->sequence) {
|
||||||
|| !playlist->has_ext_x_dsn)
|
|
||||||
&& (cand->sequence == segment->sequence)) {
|
|
||||||
return cand;
|
return cand;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue