Commit ccb919e3 authored by Kostya Shishkov's avatar Kostya Shishkov Committed by Luca Barbato

WavPack demuxer: do not rely on index when timestamp is not in indexed range.

This fixes the situation when there are not enough entries in the index
(e.g. on initial seek there's only one index entry in the index) and index
search returns just the last known entry. That causes seeking function just to
seek there instead of trying harder to get at the requested position.
Signed-off-by: 's avatarLuca Barbato <lu_zero@gentoo.org>
parent 5561fe48
...@@ -330,7 +330,8 @@ static int wv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, ...@@ -330,7 +330,8 @@ static int wv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp,
int64_t pos, pts; int64_t pos, pts;
/* if found, seek there */ /* if found, seek there */
if (index >= 0){ if (index >= 0 &&
timestamp <= st->index_entries[st->nb_index_entries - 1].timestamp) {
wc->block_parsed = 1; wc->block_parsed = 1;
avio_seek(s->pb, st->index_entries[index].pos, SEEK_SET); avio_seek(s->pb, st->index_entries[index].pos, SEEK_SET);
return 0; return 0;
......
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