Mercurial > libavcodec.hg
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 /** |