[FFmpeg-cvslog] WavPack demuxer: store position of the first block in index.
Kostya Shishkov
git at videolan.org
Sun Aug 21 15:31:22 CEST 2011
ffmpeg | branch: master | Kostya Shishkov <kostya.shishkov at gmail.com> | Sat Aug 20 18:14:58 2011 +0200| [5561fe487f0a2d522fd5655c129acf99b0d59490] | committer: Luca Barbato
WavPack demuxer: store position of the first block in index.
Currently for multichannel audio position for the last block position is
stored in index (and used for seeking), which is obviously not correct.
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5561fe487f0a2d522fd5655c129acf99b0d59490
---
libavformat/wv.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/libavformat/wv.c b/libavformat/wv.c
index 7cace17..5c9c31c 100644
--- a/libavformat/wv.c
+++ b/libavformat/wv.c
@@ -250,6 +250,7 @@ static int wv_read_packet(AVFormatContext *s,
WVContext *wc = s->priv_data;
int ret;
int size, ver, off;
+ int64_t pos;
if (s->pb->eof_reached)
return AVERROR(EIO);
@@ -258,6 +259,7 @@ static int wv_read_packet(AVFormatContext *s,
return -1;
}
+ pos = wc->pos;
off = wc->multichannel ? 4 : 0;
if(av_new_packet(pkt, wc->blksize + WV_EXTRA_SIZE + off) < 0)
return AVERROR(ENOMEM);
@@ -314,7 +316,7 @@ static int wv_read_packet(AVFormatContext *s,
pkt->stream_index = 0;
wc->block_parsed = 1;
pkt->pts = wc->soff;
- av_add_index_entry(s->streams[0], wc->pos, pkt->pts, 0, 0, AVINDEX_KEYFRAME);
+ av_add_index_entry(s->streams[0], pos, pkt->pts, 0, 0, AVINDEX_KEYFRAME);
return 0;
}
More information about the ffmpeg-cvslog
mailing list