summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-08-21 15:27:02 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-08-21 15:27:02 +0200
commitff96098084542c3ef98b360f70583999433d13a7 (patch)
tree620b6e7702ddbc0fb1ccc3525299feb0781abfca /libavcodec
parent34c997599e14b4ef5f84aa324fdea7ae03d7a2ba (diff)
parentccb919e34b1276db5cfcd903e405e47ccb932d58 (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: WavPack demuxer: do not rely on index when timestamp is not in indexed range. WavPack demuxer: store position of the first block in index. WavPack decoder: implement flush function avconv: Separate initialization from the main transcode loop. Conflicts: avconv.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/wavpack.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
index ba974bd089..ca52d0ac74 100644
--- a/libavcodec/wavpack.c
+++ b/libavcodec/wavpack.c
@@ -1189,6 +1189,15 @@ static int wavpack_decode_frame(AVCodecContext *avctx,
return s->samples_left > 0 ? 0 : avpkt->size;
}
+static void wavpack_decode_flush(AVCodecContext *avctx)
+{
+ WavpackContext *s = avctx->priv_data;
+ int i;
+
+ for (i = 0; i < s->fdec_num; i++)
+ s->fdec[i]->samples_left = 0;
+}
+
AVCodec ff_wavpack_decoder = {
.name = "wavpack",
.type = AVMEDIA_TYPE_AUDIO,
@@ -1197,6 +1206,7 @@ AVCodec ff_wavpack_decoder = {
.init = wavpack_decode_init,
.close = wavpack_decode_end,
.decode = wavpack_decode_frame,
+ .flush = wavpack_decode_flush,
.capabilities = CODEC_CAP_SUBFRAMES,
.long_name = NULL_IF_CONFIG_SMALL("WavPack"),
};