Commit 0f646a22 authored by Aurelien Jacobs's avatar Aurelien Jacobs

matroskadec: full seeking support in index-less files

when trying to seek past the last index entry, just parse more clusters to add them to the index, until an index entry match the desired position

Originally committed as revision 14959 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent ffc2b341
......@@ -1657,11 +1657,15 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
if (timestamp < 0)
timestamp = 0;
index = av_index_search_timestamp(st, timestamp, flags);
if (index < 0)
return 0;
while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
matroska_clear_queue(matroska);
if (matroska_parse_cluster(matroska) < 0)
break;
}
matroska_clear_queue(matroska);
if (index < 0)
return 0;
url_fseek(s->pb, st->index_entries[index].pos, SEEK_SET);
matroska->skip_to_keyframe = !(flags & AVSEEK_FLAG_ANY);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment