comparison aacenc.c @ 11837:bba34e33081d libavcodec

Cleanup apply_window_and_mdct().
author alexc
date Sat, 05 Jun 2010 19:41:52 +0000
parents 442a0af656db
children ebe049799f6d
comparison
equal deleted inserted replaced
11836:f71c3558f3f5 11837:bba34e33081d
232 s->output[i] = sce->saved[i] * pwindow[i - 448]; 232 s->output[i] = sce->saved[i] * pwindow[i - 448];
233 for (i = 576; i < 704; i++) 233 for (i = 576; i < 704; i++)
234 s->output[i] = sce->saved[i]; 234 s->output[i] = sce->saved[i];
235 } 235 }
236 if (sce->ics.window_sequence[0] != LONG_START_SEQUENCE) { 236 if (sce->ics.window_sequence[0] != LONG_START_SEQUENCE) {
237 j = channel; 237 for (i = 0, j = channel; i < 1024; i++, j += avctx->channels) {
238 for (i = 0; i < 1024; i++, j += avctx->channels) {
239 s->output[i+1024] = audio[j] * lwindow[1024 - i - 1]; 238 s->output[i+1024] = audio[j] * lwindow[1024 - i - 1];
240 sce->saved[i] = audio[j] * lwindow[i]; 239 sce->saved[i] = audio[j] * lwindow[i];
241 } 240 }
242 } else { 241 } else {
243 j = channel; 242 for (i = 0, j = channel; i < 448; i++, j += avctx->channels)
244 for (i = 0; i < 448; i++, j += avctx->channels)
245 s->output[i+1024] = audio[j]; 243 s->output[i+1024] = audio[j];
246 for (i = 448; i < 576; i++, j += avctx->channels) 244 for (; i < 576; i++, j += avctx->channels)
247 s->output[i+1024] = audio[j] * swindow[576 - i - 1]; 245 s->output[i+1024] = audio[j] * swindow[576 - i - 1];
248 memset(s->output+1024+576, 0, sizeof(s->output[0]) * 448); 246 memset(s->output+1024+576, 0, sizeof(s->output[0]) * 448);
249 j = channel; 247 for (i = 0, j = channel; i < 1024; i++, j += avctx->channels)
250 for (i = 0; i < 1024; i++, j += avctx->channels)
251 sce->saved[i] = audio[j]; 248 sce->saved[i] = audio[j];
252 } 249 }
253 ff_mdct_calc(&s->mdct1024, sce->coeffs, s->output); 250 ff_mdct_calc(&s->mdct1024, sce->coeffs, s->output);
254 } else { 251 } else {
255 j = channel;
256 for (k = 0; k < 1024; k += 128) { 252 for (k = 0; k < 1024; k += 128) {
257 for (i = 448 + k; i < 448 + k + 256; i++) 253 for (i = 448 + k; i < 448 + k + 256; i++)
258 s->output[i - 448 - k] = (i < 1024) 254 s->output[i - 448 - k] = (i < 1024)
259 ? sce->saved[i] 255 ? sce->saved[i]
260 : audio[channel + (i-1024)*avctx->channels]; 256 : audio[channel + (i-1024)*avctx->channels];
261 s->dsp.vector_fmul (s->output, k ? swindow : pwindow, 128); 257 s->dsp.vector_fmul (s->output, k ? swindow : pwindow, 128);
262 s->dsp.vector_fmul_reverse(s->output+128, s->output+128, swindow, 128); 258 s->dsp.vector_fmul_reverse(s->output+128, s->output+128, swindow, 128);
263 ff_mdct_calc(&s->mdct128, sce->coeffs + k, s->output); 259 ff_mdct_calc(&s->mdct128, sce->coeffs + k, s->output);
264 } 260 }
265 j = channel; 261 for (i = 0, j = channel; i < 1024; i++, j += avctx->channels)
266 for (i = 0; i < 1024; i++, j += avctx->channels)
267 sce->saved[i] = audio[j]; 262 sce->saved[i] = audio[j];
268 } 263 }
269 } 264 }
270 265
271 /** 266 /**