yading@10: /* yading@10: * This file is part of FFmpeg. yading@10: * yading@10: * FFmpeg is free software; you can redistribute it and/or yading@10: * modify it under the terms of the GNU Lesser General Public yading@10: * License as published by the Free Software Foundation; either yading@10: * version 2.1 of the License, or (at your option) any later version. yading@10: * yading@10: * FFmpeg is distributed in the hope that it will be useful, yading@10: * but WITHOUT ANY WARRANTY; without even the implied warranty of yading@10: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU yading@10: * Lesser General Public License for more details. yading@10: * yading@10: * You should have received a copy of the GNU Lesser General Public yading@10: * License along with FFmpeg; if not, write to the Free Software yading@10: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA yading@10: */ yading@10: yading@10: #define CONFIG_FFT_FLOAT 0 yading@10: #include "mdct.c" yading@10: yading@10: /* same as ff_mdct_calcw_c with double-width unscaled output */ yading@10: void ff_mdct_calcw_c(FFTContext *s, FFTDouble *out, const FFTSample *input) yading@10: { yading@10: int i, j, n, n8, n4, n2, n3; yading@10: FFTDouble re, im; yading@10: const uint16_t *revtab = s->revtab; yading@10: const FFTSample *tcos = s->tcos; yading@10: const FFTSample *tsin = s->tsin; yading@10: FFTComplex *x = s->tmp_buf; yading@10: FFTDComplex *o = (FFTDComplex *)out; yading@10: yading@10: n = 1 << s->mdct_bits; yading@10: n2 = n >> 1; yading@10: n4 = n >> 2; yading@10: n8 = n >> 3; yading@10: n3 = 3 * n4; yading@10: yading@10: /* pre rotation */ yading@10: for(i=0;ifft_calc(s, x); yading@10: yading@10: /* post rotation */ yading@10: for(i=0;i