aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2011-08-20 13:11:14 +0200
committerLuca Barbato <lu_zero@gentoo.org>2011-08-21 12:55:17 +0200
commitccb919e34b1276db5cfcd903e405e47ccb932d58 (patch)
treebaed13c60802198dd09588a1dc2cdc5be2e25a23
parent5561fe487f0a2d522fd5655c129acf99b0d59490 (diff)
downloadffmpeg-ccb919e34b1276db5cfcd903e405e47ccb932d58.tar.gz
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: Luca Barbato <lu_zero@gentoo.org>
-rw-r--r--libavformat/wv.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavformat/wv.c b/libavformat/wv.c
index 5c9c31c72a..d057262029 100644
--- a/libavformat/wv.c
+++ b/libavformat/wv.c
@@ -330,7 +330,8 @@ static int wv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp,
int64_t pos, pts;
/* if found, seek there */
- if (index >= 0){
+ if (index >= 0 &&
+ timestamp <= st->index_entries[st->nb_index_entries - 1].timestamp) {
wc->block_parsed = 1;
avio_seek(s->pb, st->index_entries[index].pos, SEEK_SET);
return 0;