From 9f4f5787046dd1430ebb5b58e49af32e304852af Mon Sep 17 00:00:00 2001 From: Rostislav Pehlivanov <atomnuker@gmail.com> Date: Thu, 2 Jul 2015 19:13:03 +0100 Subject: [PATCH] aacenc: reset marked IS and M/S bands upon frame encoding This commit resets any bands marked as M/S or IS upon encoding a frame. This is needed because the arrays may contain some residual information upon allocation on startup and because there isn't any mechanism to reset the arrays once the frame has been encoded. Reviewed-by: Claudio Freire <klaussfreire@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at> --- libavcodec/aacenc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 3a512ffeeee..05a81623947 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -617,6 +617,8 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, tag = s->chan_map[i+1]; chans = tag == TYPE_CPE ? 2 : 1; cpe = &s->cpe[i]; + memset(cpe->is_mask, 0, sizeof(cpe->is_mask)); + memset(cpe->ms_mask, 0, sizeof(cpe->ms_mask)); put_bits(&s->pb, 3, tag); put_bits(&s->pb, 4, chan_el_counter[tag]++); for (ch = 0; ch < chans; ch++) -- GitLab