1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

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
This commit is contained in:
Aurelien Jacobs 2008-08-25 00:15:49 +00:00
parent ffc2b3412c
commit 0f646a2233

View File

@ -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);