[FFmpeg-devel] [PATCH] avformat/matroskadec: Fix cluster parsing loop which gathers seek information
Michael Niedermayer
michaelni at gmx.at
Wed Oct 22 04:38:12 CEST 2014
Fixes Ticket2263
Fixes Ticket3934
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
---
libavformat/matroskadec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index b742319..2ef3222 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -2921,11 +2921,11 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
goto err;
timestamp = FFMAX(timestamp, st->index_entries[0].timestamp);
- if ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
+ if ((index = av_index_search_timestamp(st, timestamp, flags)) < 0 || index == st->nb_index_entries - 1) {
avio_seek(s->pb, st->index_entries[st->nb_index_entries - 1].pos,
SEEK_SET);
matroska->current_id = 0;
- while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
+ while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0 || index == st->nb_index_entries - 1) {
matroska_clear_queue(matroska);
if (matroska_parse_cluster(matroska) < 0)
break;
--
1.7.9.5
More information about the ffmpeg-devel
mailing list