mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-06-30 21:08:59 +08: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:
@ -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);
|
||||
|
Reference in New Issue
Block a user