You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-11-23 21:54:53 +02:00
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
This commit is contained in:
@@ -562,6 +562,7 @@ static int aac_encode_frame(AVCodecContext *avctx,
|
|||||||
cpe = &s->cpe[i];
|
cpe = &s->cpe[i];
|
||||||
for (j = 0; j < chans; j++) {
|
for (j = 0; j < chans; j++) {
|
||||||
s->cur_channel = start_ch + 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);
|
s->coder->search_for_quantizers(avctx, s, &cpe->ch[j], s->lambda);
|
||||||
}
|
}
|
||||||
cpe->common_window = 0;
|
cpe->common_window = 0;
|
||||||
@@ -592,7 +593,6 @@ static int aac_encode_frame(AVCodecContext *avctx,
|
|||||||
}
|
}
|
||||||
for (j = 0; j < chans; j++) {
|
for (j = 0; j < chans; j++) {
|
||||||
s->cur_channel = start_ch + 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);
|
encode_individual_channel(avctx, s, &cpe->ch[j], cpe->common_window);
|
||||||
}
|
}
|
||||||
start_ch += chans;
|
start_ch += chans;
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ static FFPsyWindowInfo psy_3gpp_window(FFPsyContext *ctx,
|
|||||||
int attack_n = 0;
|
int attack_n = 0;
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
for (j = 0; j < 128; j++) {
|
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;
|
sum += v*v;
|
||||||
}
|
}
|
||||||
s[i] = sum;
|
s[i] = sum;
|
||||||
|
|||||||
Reference in New Issue
Block a user