summaryrefslogtreecommitdiff
path: root/ext/dash/gstmpdparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/dash/gstmpdparser.c')
-rw-r--r--ext/dash/gstmpdparser.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/ext/dash/gstmpdparser.c b/ext/dash/gstmpdparser.c
index c604c458c..ba0aa3388 100644
--- a/ext/dash/gstmpdparser.c
+++ b/ext/dash/gstmpdparser.c
@@ -3975,8 +3975,17 @@ gst_mpd_client_has_next_segment (GstMpdClient * client,
if (forward) {
guint segments_count = gst_mpd_client_get_segments_counts (client, stream);
- if (segments_count > 0 && stream->segment_index + 1 >= segments_count)
+ if (segments_count > 0 && stream->segment_index + 1 == segments_count) {
+ GstMediaSegment *segment;
+
+ segment = g_ptr_array_index (stream->segments, stream->segment_index);
+ if (segment->repeat >= 0
+ && stream->segment_repeat_index >= segment->repeat)
+ return FALSE;
+ } else if (segments_count > 0
+ && stream->segment_index + 1 >= segments_count) {
return FALSE;
+ }
} else {
if (stream->segment_index < 0)
return FALSE;