dashdemux: Just reset SIDX parser if the index is invalid for the current segment
https://bugzilla.gnome.org/show_bug.cgi?id=780108
diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c
index 1cc51f2..d28a3e2 100644
--- a/ext/dash/gstdashdemux.c
+++ b/ext/dash/gstdashdemux.c
@@ -1347,8 +1347,8 @@
final_ts);
if (SIDX (dashstream)->entry_index >= SIDX (dashstream)->entries_count) {
GST_ERROR_OBJECT (stream->pad, "Couldn't find position in sidx");
- dashstream->sidx_parser.status = GST_ISOFF_PARSER_UNEXPECTED;
dashstream->sidx_position = GST_CLOCK_TIME_NONE;
+ gst_isoff_sidx_parser_clear (&dashstream->sidx_parser);
}
} else {
/* no index yet, seek when we have it */
@@ -2287,8 +2287,8 @@
if (SIDX (dash_stream)->entry_index >=
SIDX (dash_stream)->entries_count) {
GST_ERROR_OBJECT (stream->pad, "Couldn't find position in sidx");
- dash_stream->sidx_parser.status = GST_ISOFF_PARSER_UNEXPECTED;
dash_stream->sidx_position = GST_CLOCK_TIME_NONE;
+ gst_isoff_sidx_parser_clear (&dash_stream->sidx_parser);
}
/* push buffer up to sidx box, and do pending stream seek */
break;
@@ -2771,8 +2771,8 @@
if (SIDX (dash_stream)->entry_index >=
SIDX (dash_stream)->entries_count) {
GST_ERROR_OBJECT (stream->pad, "Couldn't find position in sidx");
- dash_stream->sidx_parser.status = GST_ISOFF_PARSER_UNEXPECTED;
dash_stream->sidx_position = GST_CLOCK_TIME_NONE;
+ gst_isoff_sidx_parser_clear (&dash_stream->sidx_parser);
}
} else {
gint idx = 0;