summaryrefslogtreecommitdiff
path: root/libavcodec/imc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-11-25 22:48:18 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-11-25 22:48:18 +0100
commitb5b9686615e225e2f0c4f3309ea0e0ed64333959 (patch)
tree6c12ef41f100c9777aafb7d9e589baf177c2834e /libavcodec/imc.c
parent579d21f777ea1cb51a47f38b4429742837b05404 (diff)
downloadffmpeg-b5b9686615e225e2f0c4f3309ea0e0ed64333959.tar.gz
imc: flush decoder
Fixes Ticket1899 Based on code by ami_stuff Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/imc.c')
-rw-r--r--libavcodec/imc.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index fdf8e2cb28..feca07c603 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -986,6 +986,14 @@ static av_cold int imc_decode_close(AVCodecContext * avctx)
return 0;
}
+static av_cold void flush(AVCodecContext *avctx)
+{
+ IMCContext *q = avctx->priv_data;
+
+ q->chctx[0].decoder_reset =
+ q->chctx[1].decoder_reset = 1;
+}
+
#if CONFIG_IMC_DECODER
AVCodec ff_imc_decoder = {
.name = "imc",
@@ -995,6 +1003,7 @@ AVCodec ff_imc_decoder = {
.init = imc_decode_init,
.close = imc_decode_close,
.decode = imc_decode_frame,
+ .flush = flush,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("IMC (Intel Music Coder)"),
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
@@ -1010,6 +1019,7 @@ AVCodec ff_iac_decoder = {
.init = imc_decode_init,
.close = imc_decode_close,
.decode = imc_decode_frame,
+ .flush = flush,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("IAC (Indeo Audio Coder)"),
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,