1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00

Cleanup apply_window_and_mdct().

Originally committed as revision 23495 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Alex Converse 2010-06-05 19:41:52 +00:00
parent b8c2c41d66
commit 614842a93d

View File

@ -234,25 +234,21 @@ static void apply_window_and_mdct(AVCodecContext *avctx, AACEncContext *s,
s->output[i] = sce->saved[i]; s->output[i] = sce->saved[i];
} }
if (sce->ics.window_sequence[0] != LONG_START_SEQUENCE) { if (sce->ics.window_sequence[0] != LONG_START_SEQUENCE) {
j = channel; for (i = 0, j = channel; i < 1024; i++, j += avctx->channels) {
for (i = 0; i < 1024; i++, j += avctx->channels) {
s->output[i+1024] = audio[j] * lwindow[1024 - i - 1]; s->output[i+1024] = audio[j] * lwindow[1024 - i - 1];
sce->saved[i] = audio[j] * lwindow[i]; sce->saved[i] = audio[j] * lwindow[i];
} }
} else { } else {
j = channel; for (i = 0, j = channel; i < 448; i++, j += avctx->channels)
for (i = 0; i < 448; i++, j += avctx->channels)
s->output[i+1024] = audio[j]; s->output[i+1024] = audio[j];
for (i = 448; i < 576; i++, j += avctx->channels) for (; i < 576; i++, j += avctx->channels)
s->output[i+1024] = audio[j] * swindow[576 - i - 1]; s->output[i+1024] = audio[j] * swindow[576 - i - 1];
memset(s->output+1024+576, 0, sizeof(s->output[0]) * 448); memset(s->output+1024+576, 0, sizeof(s->output[0]) * 448);
j = channel; for (i = 0, j = channel; i < 1024; i++, j += avctx->channels)
for (i = 0; i < 1024; i++, j += avctx->channels)
sce->saved[i] = audio[j]; sce->saved[i] = audio[j];
} }
ff_mdct_calc(&s->mdct1024, sce->coeffs, s->output); ff_mdct_calc(&s->mdct1024, sce->coeffs, s->output);
} else { } else {
j = channel;
for (k = 0; k < 1024; k += 128) { for (k = 0; k < 1024; k += 128) {
for (i = 448 + k; i < 448 + k + 256; i++) for (i = 448 + k; i < 448 + k + 256; i++)
s->output[i - 448 - k] = (i < 1024) s->output[i - 448 - k] = (i < 1024)
@ -262,8 +258,7 @@ static void apply_window_and_mdct(AVCodecContext *avctx, AACEncContext *s,
s->dsp.vector_fmul_reverse(s->output+128, s->output+128, swindow, 128); s->dsp.vector_fmul_reverse(s->output+128, s->output+128, swindow, 128);
ff_mdct_calc(&s->mdct128, sce->coeffs + k, s->output); ff_mdct_calc(&s->mdct128, sce->coeffs + k, s->output);
} }
j = channel; for (i = 0, j = channel; i < 1024; i++, j += avctx->channels)
for (i = 0; i < 1024; i++, j += avctx->channels)
sce->saved[i] = audio[j]; sce->saved[i] = audio[j];
} }
} }