From 31184aac87ba9d55cd36924f094c479d1bf50022 Mon Sep 17 00:00:00 2001 From: Alex Converse Date: Fri, 14 May 2010 16:49:11 +0000 Subject: [PATCH] aacenc: Fix psy logic. Set band info before determining scalefactors. Use the look ahead for windowing decision. Originally committed as revision 23132 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/aacenc.c | 2 +- libavcodec/aacpsy.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 938df344b..d979be5de 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -562,6 +562,7 @@ static int aac_encode_frame(AVCodecContext *avctx, cpe = &s->cpe[i]; for (j = 0; j < chans; j++) { s->cur_channel = start_ch + j; + ff_psy_set_band_info(&s->psy, s->cur_channel, cpe->ch[j].coeffs, &wi[j]); s->coder->search_for_quantizers(avctx, s, &cpe->ch[j], s->lambda); } cpe->common_window = 0; @@ -592,7 +593,6 @@ static int aac_encode_frame(AVCodecContext *avctx, } for (j = 0; j < chans; j++) { s->cur_channel = start_ch + j; - ff_psy_set_band_info(&s->psy, s->cur_channel, cpe->ch[j].coeffs, &wi[j]); encode_individual_channel(avctx, s, &cpe->ch[j], cpe->common_window); } start_ch += chans; diff --git a/libavcodec/aacpsy.c b/libavcodec/aacpsy.c index 53dac3dbf..4d0c73876 100644 --- a/libavcodec/aacpsy.c +++ b/libavcodec/aacpsy.c @@ -195,7 +195,7 @@ static FFPsyWindowInfo psy_3gpp_window(FFPsyContext *ctx, int attack_n = 0; for (i = 0; i < 8; i++) { for (j = 0; j < 128; j++) { - v = iir_filter(audio[(i*128+j)*ctx->avctx->channels], pch->iir_state); + v = iir_filter(la[(i*128+j)*ctx->avctx->channels], pch->iir_state); sum += v*v; } s[i] = sum; -- 2.11.0