diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-11-25 22:48:18 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-11-25 22:48:18 +0100 |
commit | b5b9686615e225e2f0c4f3309ea0e0ed64333959 (patch) | |
tree | 6c12ef41f100c9777aafb7d9e589baf177c2834e /libavcodec/imc.c | |
parent | 579d21f777ea1cb51a47f38b4429742837b05404 (diff) | |
download | ffmpeg-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.c | 10 |
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, |