# HG changeset patch # User alexc # Date 1273855751 0 # Node ID 907ac02ef561afa3c89a4dc7b4f36cfcde47f651 # Parent 0c98bdb71f48cd44f3bc6cc167efe0293849eecf aacenc: Fix psy logic. Set band info before determining scalefactors. Use the look ahead for windowing decision. diff -r 0c98bdb71f48 -r 907ac02ef561 aacenc.c --- a/aacenc.c Thu May 13 20:41:36 2010 +0000 +++ b/aacenc.c Fri May 14 16:49:11 2010 +0000 @@ -562,6 +562,7 @@ 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 @@ } 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 -r 0c98bdb71f48 -r 907ac02ef561 aacpsy.c --- a/aacpsy.c Thu May 13 20:41:36 2010 +0000 +++ b/aacpsy.c Fri May 14 16:49:11 2010 +0000 @@ -195,7 +195,7 @@ 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;