[FFmpeg-devel] [PATCH 1/3] lavf/matroskadec: resync if cluster parsing fails while seeking
Rodger Combs
rodger.combs at gmail.com
Fri Dec 8 14:45:34 EET 2017
---
libavformat/matroskadec.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 496499b553..93a3ec4a07 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -3528,9 +3528,12 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
SEEK_SET);
matroska->current_id = 0;
while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0 || index == st->nb_index_entries - 1) {
+ int64_t pos = avio_tell(matroska->ctx->pb);
matroska_clear_queue(matroska);
- if (matroska_parse_cluster(matroska) < 0)
- break;
+ if (matroska_parse_cluster(matroska) < 0) {
+ if (matroska_resync(matroska, pos) < 0)
+ break;
+ }
}
}
--
2.15.1
More information about the ffmpeg-devel
mailing list