Browse Source

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@gentoo.org>
tags/n0.9
Kostya Shishkov Luca Barbato 13 years ago
parent
commit
5561fe487f
1 changed files with 3 additions and 1 deletions
  1. +3
    -1
      libavformat/wv.c

+ 3
- 1
libavformat/wv.c View File

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



Loading…
Cancel
Save