diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-05-20 04:00:30 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-09-27 00:35:00 +0200 |
commit | 5230f1529ae6e5b4a0fa029930570b1961cf5e73 (patch) | |
tree | 186727f617482d5089eccaa2a52ddac5bb4d3e50 | |
parent | 1a311ad99a57ec3cd4f821f8a4c22973e2b4d740 (diff) | |
download | ffmpeg-5230f1529ae6e5b4a0fa029930570b1961cf5e73.tar.gz |
matroska_read_seek: Fix used streams for subtitle index compensation
Might fix Ticket1907 (I have no testcase so i cant test)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4758e32a6c48044f77102a49110c79b4f338f648)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/matroskadec.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 32c6af1d81..5e52f86e81 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2075,10 +2075,11 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index, if (tracks[i].type == MATROSKA_TRACK_TYPE_SUBTITLE && !tracks[i].stream->discard != AVDISCARD_ALL) { index_sub = av_index_search_timestamp(tracks[i].stream, st->index_entries[index].timestamp, AVSEEK_FLAG_BACKWARD); - if (index_sub >= 0 - && st->index_entries[index_sub].pos < st->index_entries[index_min].pos - && st->index_entries[index].timestamp - st->index_entries[index_sub].timestamp < 30000000000/matroska->time_scale) - index_min = index_sub; + while(index_sub >= 0 + && index_min >= 0 + && tracks[i].stream->index_entries[index_sub].pos < st->index_entries[index_min].pos + && st->index_entries[index].timestamp - tracks[i].stream->index_entries[index_sub].timestamp < 30000000000/matroska->time_scale) + index_min--; } } |