diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index b7f21e0c11..5a2b230d24 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -262,6 +262,23 @@ static av_cold int output_configure(AACContext *ac, return 0; } +static void flush(AVCodecContext *avctx) +{ + AACContext *ac= avctx->priv_data; + int type, i, j; + + for (type = 3; type >= 0; type--) { + for (i = 0; i < MAX_ELEM_ID; i++) { + ChannelElement *che = ac->che[type][i]; + if (che) { + for (j = 0; j <= 1; j++) { + memset(che->ch[j].saved, 0, sizeof(che->ch[j].saved)); + } + } + } + } +} + /** * Decode an array of 4 bit element IDs, optionally interleaved with a stereo/mono switching bit. * @@ -2589,4 +2606,5 @@ AVCodec ff_aac_latm_decoder = { }, .capabilities = CODEC_CAP_CHANNEL_CONF, .channel_layouts = aac_channel_layout, + .flush = flush, };