# HG changeset patch # User mru # Date 1267886086 0 # Node ID 4b3da727d832074ec88de05bbb19a85b9ab6c1e6 # Parent 98970e51365a9856faa1f0acaef64eae4fde3c4e Move FFT parts from dsputil.h to fft.h diff -r 98970e51365a -r 4b3da727d832 aac.c --- a/aac.c Sat Mar 06 14:24:59 2010 +0000 +++ b/aac.c Sat Mar 06 14:34:46 2010 +0000 @@ -80,6 +80,7 @@ #include "internal.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "lpc.h" #include "aac.h" diff -r 98970e51365a -r 4b3da727d832 aac.h --- a/aac.h Sat Mar 06 14:24:59 2010 +0000 +++ b/aac.h Sat Mar 06 14:34:46 2010 +0000 @@ -32,6 +32,7 @@ #include "avcodec.h" #include "dsputil.h" +#include "fft.h" #include "mpeg4audio.h" #include diff -r 98970e51365a -r 4b3da727d832 ac3dec.h --- a/ac3dec.h Sat Mar 06 14:24:59 2010 +0000 +++ b/ac3dec.h Sat Mar 06 14:34:46 2010 +0000 @@ -31,6 +31,7 @@ #include "ac3.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" /* override ac3.h to include coupling channel */ #undef AC3_MAX_CHANNELS diff -r 98970e51365a -r 4b3da727d832 arm/fft_init_arm.c --- a/arm/fft_init_arm.c Sat Mar 06 14:24:59 2010 +0000 +++ b/arm/fft_init_arm.c Sat Mar 06 14:34:46 2010 +0000 @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavcodec/dsputil.h" +#include "libavcodec/fft.h" void ff_fft_permute_neon(FFTContext *s, FFTComplex *z); void ff_fft_calc_neon(FFTContext *s, FFTComplex *z); diff -r 98970e51365a -r 4b3da727d832 atrac1.c --- a/atrac1.c Sat Mar 06 14:24:59 2010 +0000 +++ b/atrac1.c Sat Mar 06 14:34:46 2010 +0000 @@ -35,6 +35,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "atrac.h" #include "atrac1data.h" diff -r 98970e51365a -r 4b3da727d832 atrac3.c --- a/atrac3.c Sat Mar 06 14:24:59 2010 +0000 +++ b/atrac3.c Sat Mar 06 14:34:46 2010 +0000 @@ -40,6 +40,7 @@ #include "get_bits.h" #include "dsputil.h" #include "bytestream.h" +#include "fft.h" #include "atrac.h" #include "atrac3data.h" diff -r 98970e51365a -r 4b3da727d832 binkaudio.c --- a/binkaudio.c Sat Mar 06 14:24:59 2010 +0000 +++ b/binkaudio.c Sat Mar 06 14:34:46 2010 +0000 @@ -32,6 +32,8 @@ #define ALT_BITSTREAM_READER_LE #include "get_bits.h" #include "dsputil.h" +#include "fft.h" + extern const uint16_t ff_wma_critical_freqs[25]; #define MAX_CHANNELS 2 diff -r 98970e51365a -r 4b3da727d832 cook.c --- a/cook.c Sat Mar 06 14:24:59 2010 +0000 +++ b/cook.c Sat Mar 06 14:34:46 2010 +0000 @@ -52,6 +52,7 @@ #include "get_bits.h" #include "dsputil.h" #include "bytestream.h" +#include "fft.h" #include "cookdata.h" diff -r 98970e51365a -r 4b3da727d832 dca.c --- a/dca.c Sat Mar 06 14:24:59 2010 +0000 +++ b/dca.c Sat Mar 06 14:34:46 2010 +0000 @@ -32,6 +32,7 @@ #include "avcodec.h" #include "dsputil.h" +#include "fft.h" #include "get_bits.h" #include "put_bits.h" #include "dcadata.h" diff -r 98970e51365a -r 4b3da727d832 dct.c --- a/dct.c Sat Mar 06 14:24:59 2010 +0000 +++ b/dct.c Sat Mar 06 14:34:46 2010 +0000 @@ -28,7 +28,8 @@ */ #include -#include "dsputil.h" +#include "libavutil/mathematics.h" +#include "fft.h" av_cold int ff_dct_init(DCTContext *s, int nbits, int inverse) { diff -r 98970e51365a -r 4b3da727d832 dsputil.h --- a/dsputil.h Sat Mar 06 14:24:59 2010 +0000 +++ b/dsputil.h Sat Mar 06 14:34:46 2010 +0000 @@ -725,220 +725,6 @@ int orig_linesize[3], int coded_linesize, AVCodecContext *avctx); -/* FFT computation */ - -/* NOTE: soon integer code will be added, so you must use the - FFTSample type */ -typedef float FFTSample; - -typedef struct FFTComplex { - FFTSample re, im; -} FFTComplex; - -typedef struct FFTContext { - int nbits; - int inverse; - uint16_t *revtab; - FFTComplex *exptab; - FFTComplex *exptab1; /* only used by SSE code */ - FFTComplex *tmp_buf; - int mdct_size; /* size of MDCT (i.e. number of input data * 2) */ - int mdct_bits; /* n = 2^nbits */ - /* pre/post rotation tables */ - FFTSample *tcos; - FFTSample *tsin; - void (*fft_permute)(struct FFTContext *s, FFTComplex *z); - void (*fft_calc)(struct FFTContext *s, FFTComplex *z); - void (*imdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input); - void (*imdct_half)(struct FFTContext *s, FFTSample *output, const FFTSample *input); - void (*mdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input); - int split_radix; - int permutation; -#define FF_MDCT_PERM_NONE 0 -#define FF_MDCT_PERM_INTERLEAVE 1 -} FFTContext; - -#if CONFIG_HARDCODED_TABLES -#define COSTABLE_CONST const -#define SINTABLE_CONST const -#define SINETABLE_CONST const -#else -#define COSTABLE_CONST -#define SINTABLE_CONST -#define SINETABLE_CONST -#endif - -#define COSTABLE(size) \ - COSTABLE_CONST DECLARE_ALIGNED(16, FFTSample, ff_cos_##size)[size/2] -#define SINTABLE(size) \ - SINTABLE_CONST DECLARE_ALIGNED(16, FFTSample, ff_sin_##size)[size/2] -#define SINETABLE(size) \ - SINETABLE_CONST DECLARE_ALIGNED(16, float, ff_sine_##size)[size] -extern COSTABLE(16); -extern COSTABLE(32); -extern COSTABLE(64); -extern COSTABLE(128); -extern COSTABLE(256); -extern COSTABLE(512); -extern COSTABLE(1024); -extern COSTABLE(2048); -extern COSTABLE(4096); -extern COSTABLE(8192); -extern COSTABLE(16384); -extern COSTABLE(32768); -extern COSTABLE(65536); -extern COSTABLE_CONST FFTSample* const ff_cos_tabs[17]; - -/** - * Initializes the cosine table in ff_cos_tabs[index] - * \param index index in ff_cos_tabs array of the table to initialize - */ -void ff_init_ff_cos_tabs(int index); - -extern SINTABLE(16); -extern SINTABLE(32); -extern SINTABLE(64); -extern SINTABLE(128); -extern SINTABLE(256); -extern SINTABLE(512); -extern SINTABLE(1024); -extern SINTABLE(2048); -extern SINTABLE(4096); -extern SINTABLE(8192); -extern SINTABLE(16384); -extern SINTABLE(32768); -extern SINTABLE(65536); - -/** - * Sets up a complex FFT. - * @param nbits log2 of the length of the input array - * @param inverse if 0 perform the forward transform, if 1 perform the inverse - */ -int ff_fft_init(FFTContext *s, int nbits, int inverse); -void ff_fft_permute_c(FFTContext *s, FFTComplex *z); -void ff_fft_calc_c(FFTContext *s, FFTComplex *z); - -void ff_fft_init_altivec(FFTContext *s); -void ff_fft_init_mmx(FFTContext *s); -void ff_fft_init_arm(FFTContext *s); - -/** - * Do the permutation needed BEFORE calling ff_fft_calc(). - */ -static inline void ff_fft_permute(FFTContext *s, FFTComplex *z) -{ - s->fft_permute(s, z); -} -/** - * Do a complex FFT with the parameters defined in ff_fft_init(). The - * input data must be permuted before. No 1.0/sqrt(n) normalization is done. - */ -static inline void ff_fft_calc(FFTContext *s, FFTComplex *z) -{ - s->fft_calc(s, z); -} -void ff_fft_end(FFTContext *s); - -/* MDCT computation */ - -static inline void ff_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) -{ - s->imdct_calc(s, output, input); -} -static inline void ff_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input) -{ - s->imdct_half(s, output, input); -} - -static inline void ff_mdct_calc(FFTContext *s, FFTSample *output, - const FFTSample *input) -{ - s->mdct_calc(s, output, input); -} - -/** - * Generate a Kaiser-Bessel Derived Window. - * @param window pointer to half window - * @param alpha determines window shape - * @param n size of half window - */ -void ff_kbd_window_init(float *window, float alpha, int n); - -/** - * Generate a sine window. - * @param window pointer to half window - * @param n size of half window - */ -void ff_sine_window_init(float *window, int n); -/** - * initialize the specified entry of ff_sine_windows - */ -void ff_init_ff_sine_windows(int index); -extern SINETABLE( 32); -extern SINETABLE( 64); -extern SINETABLE( 128); -extern SINETABLE( 256); -extern SINETABLE( 512); -extern SINETABLE(1024); -extern SINETABLE(2048); -extern SINETABLE(4096); -extern SINETABLE_CONST float * const ff_sine_windows[13]; - -int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale); -void ff_imdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input); -void ff_imdct_half_c(FFTContext *s, FFTSample *output, const FFTSample *input); -void ff_mdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input); -void ff_mdct_end(FFTContext *s); - -/* Real Discrete Fourier Transform */ - -enum RDFTransformType { - RDFT, - IRDFT, - RIDFT, - IRIDFT, -}; - -typedef struct { - int nbits; - int inverse; - int sign_convention; - - /* pre/post rotation tables */ - const FFTSample *tcos; - SINTABLE_CONST FFTSample *tsin; - FFTContext fft; -} RDFTContext; - -/** - * Sets up a real FFT. - * @param nbits log2 of the length of the input array - * @param trans the type of transform - */ -int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans); -void ff_rdft_calc(RDFTContext *s, FFTSample *data); -void ff_rdft_end(RDFTContext *s); - -/* Discrete Cosine Transform */ - -typedef struct { - int nbits; - int inverse; - FFTSample *data; - RDFTContext rdft; - const float *costab; - FFTSample *csc2; -} DCTContext; - -/** - * Sets up (Inverse)DCT. - * @param nbits log2 of the length of the input array - * @param inverse >0 forward transform, <0 inverse transform - */ -int ff_dct_init(DCTContext *s, int nbits, int inverse); -void ff_dct_calc(DCTContext *s, FFTSample *data); -void ff_dct_end (DCTContext *s); - #define WRAPPER8_16(name8, name16)\ static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\ return name8(s, dst , src , stride, h)\ diff -r 98970e51365a -r 4b3da727d832 fft.c --- a/fft.c Sat Mar 06 14:24:59 2010 +0000 +++ b/fft.c Sat Mar 06 14:34:46 2010 +0000 @@ -26,7 +26,8 @@ * FFT/IFFT transforms. */ -#include "dsputil.h" +#include "libavutil/mathematics.h" +#include "fft.h" /* cos(2*pi*x/n) for 0<=x<=n/4, followed by its reverse */ #if !CONFIG_HARDCODED_TABLES diff -r 98970e51365a -r 4b3da727d832 fft.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fft.h Sat Mar 06 14:34:46 2010 +0000 @@ -0,0 +1,244 @@ +/* + * Copyright (c) 2000, 2001, 2002 Fabrice Bellard + * Copyright (c) 2002-2004 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_FFT_H +#define AVCODEC_FFT_H + +#include +#include "config.h" +#include "libavutil/mem.h" + +/* FFT computation */ + +/* NOTE: soon integer code will be added, so you must use the + FFTSample type */ +typedef float FFTSample; + +typedef struct FFTComplex { + FFTSample re, im; +} FFTComplex; + +typedef struct FFTContext { + int nbits; + int inverse; + uint16_t *revtab; + FFTComplex *exptab; + FFTComplex *exptab1; /* only used by SSE code */ + FFTComplex *tmp_buf; + int mdct_size; /* size of MDCT (i.e. number of input data * 2) */ + int mdct_bits; /* n = 2^nbits */ + /* pre/post rotation tables */ + FFTSample *tcos; + FFTSample *tsin; + void (*fft_permute)(struct FFTContext *s, FFTComplex *z); + void (*fft_calc)(struct FFTContext *s, FFTComplex *z); + void (*imdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input); + void (*imdct_half)(struct FFTContext *s, FFTSample *output, const FFTSample *input); + void (*mdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input); + int split_radix; + int permutation; +#define FF_MDCT_PERM_NONE 0 +#define FF_MDCT_PERM_INTERLEAVE 1 +} FFTContext; + +#if CONFIG_HARDCODED_TABLES +#define COSTABLE_CONST const +#define SINTABLE_CONST const +#define SINETABLE_CONST const +#else +#define COSTABLE_CONST +#define SINTABLE_CONST +#define SINETABLE_CONST +#endif + +#define COSTABLE(size) \ + COSTABLE_CONST DECLARE_ALIGNED(16, FFTSample, ff_cos_##size)[size/2] +#define SINTABLE(size) \ + SINTABLE_CONST DECLARE_ALIGNED(16, FFTSample, ff_sin_##size)[size/2] +#define SINETABLE(size) \ + SINETABLE_CONST DECLARE_ALIGNED(16, float, ff_sine_##size)[size] +extern COSTABLE(16); +extern COSTABLE(32); +extern COSTABLE(64); +extern COSTABLE(128); +extern COSTABLE(256); +extern COSTABLE(512); +extern COSTABLE(1024); +extern COSTABLE(2048); +extern COSTABLE(4096); +extern COSTABLE(8192); +extern COSTABLE(16384); +extern COSTABLE(32768); +extern COSTABLE(65536); +extern COSTABLE_CONST FFTSample* const ff_cos_tabs[17]; + +/** + * Initializes the cosine table in ff_cos_tabs[index] + * \param index index in ff_cos_tabs array of the table to initialize + */ +void ff_init_ff_cos_tabs(int index); + +extern SINTABLE(16); +extern SINTABLE(32); +extern SINTABLE(64); +extern SINTABLE(128); +extern SINTABLE(256); +extern SINTABLE(512); +extern SINTABLE(1024); +extern SINTABLE(2048); +extern SINTABLE(4096); +extern SINTABLE(8192); +extern SINTABLE(16384); +extern SINTABLE(32768); +extern SINTABLE(65536); + +/** + * Sets up a complex FFT. + * @param nbits log2 of the length of the input array + * @param inverse if 0 perform the forward transform, if 1 perform the inverse + */ +int ff_fft_init(FFTContext *s, int nbits, int inverse); +void ff_fft_permute_c(FFTContext *s, FFTComplex *z); +void ff_fft_calc_c(FFTContext *s, FFTComplex *z); + +void ff_fft_init_altivec(FFTContext *s); +void ff_fft_init_mmx(FFTContext *s); +void ff_fft_init_arm(FFTContext *s); + +/** + * Do the permutation needed BEFORE calling ff_fft_calc(). + */ +static inline void ff_fft_permute(FFTContext *s, FFTComplex *z) +{ + s->fft_permute(s, z); +} +/** + * Do a complex FFT with the parameters defined in ff_fft_init(). The + * input data must be permuted before. No 1.0/sqrt(n) normalization is done. + */ +static inline void ff_fft_calc(FFTContext *s, FFTComplex *z) +{ + s->fft_calc(s, z); +} +void ff_fft_end(FFTContext *s); + +/* MDCT computation */ + +static inline void ff_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) +{ + s->imdct_calc(s, output, input); +} +static inline void ff_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input) +{ + s->imdct_half(s, output, input); +} + +static inline void ff_mdct_calc(FFTContext *s, FFTSample *output, + const FFTSample *input) +{ + s->mdct_calc(s, output, input); +} + +/** + * Generate a Kaiser-Bessel Derived Window. + * @param window pointer to half window + * @param alpha determines window shape + * @param n size of half window + */ +void ff_kbd_window_init(float *window, float alpha, int n); + +/** + * Generate a sine window. + * @param window pointer to half window + * @param n size of half window + */ +void ff_sine_window_init(float *window, int n); + +/** + * initialize the specified entry of ff_sine_windows + */ +void ff_init_ff_sine_windows(int index); +extern SINETABLE( 32); +extern SINETABLE( 64); +extern SINETABLE( 128); +extern SINETABLE( 256); +extern SINETABLE( 512); +extern SINETABLE(1024); +extern SINETABLE(2048); +extern SINETABLE(4096); +extern SINETABLE_CONST float * const ff_sine_windows[13]; + +int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale); +void ff_imdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input); +void ff_imdct_half_c(FFTContext *s, FFTSample *output, const FFTSample *input); +void ff_mdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input); +void ff_mdct_end(FFTContext *s); + +/* Real Discrete Fourier Transform */ + +enum RDFTransformType { + RDFT, + IRDFT, + RIDFT, + IRIDFT, +}; + +typedef struct { + int nbits; + int inverse; + int sign_convention; + + /* pre/post rotation tables */ + const FFTSample *tcos; + SINTABLE_CONST FFTSample *tsin; + FFTContext fft; +} RDFTContext; + +/** + * Sets up a real FFT. + * @param nbits log2 of the length of the input array + * @param trans the type of transform + */ +int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans); +void ff_rdft_calc(RDFTContext *s, FFTSample *data); +void ff_rdft_end(RDFTContext *s); + +/* Discrete Cosine Transform */ + +typedef struct { + int nbits; + int inverse; + FFTSample *data; + RDFTContext rdft; + const float *costab; + FFTSample *csc2; +} DCTContext; + +/** + * Sets up (Inverse)DCT. + * @param nbits log2 of the length of the input array + * @param inverse >0 forward transform, <0 inverse transform + */ +int ff_dct_init(DCTContext *s, int nbits, int inverse); +void ff_dct_calc(DCTContext *s, FFTSample *data); +void ff_dct_end (DCTContext *s); + +#endif /* AVCODEC_FFT_H */ diff -r 98970e51365a -r 4b3da727d832 imc.c --- a/imc.c Sat Mar 06 14:24:59 2010 +0000 +++ b/imc.c Sat Mar 06 14:34:46 2010 +0000 @@ -38,6 +38,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "imcdata.h" diff -r 98970e51365a -r 4b3da727d832 mdct.c --- a/mdct.c Sat Mar 06 14:24:59 2010 +0000 +++ b/mdct.c Sat Mar 06 14:34:46 2010 +0000 @@ -18,7 +18,9 @@ * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "dsputil.h" + +#include "libavutil/mathematics.h" +#include "fft.h" /** * @file libavcodec/mdct.c diff -r 98970e51365a -r 4b3da727d832 nellymoserdec.c --- a/nellymoserdec.c Sat Mar 06 14:24:59 2010 +0000 +++ b/nellymoserdec.c Sat Mar 06 14:34:46 2010 +0000 @@ -36,6 +36,7 @@ #include "libavutil/random_seed.h" #include "avcodec.h" #include "dsputil.h" +#include "fft.h" #define ALT_BITSTREAM_READER_LE #include "get_bits.h" diff -r 98970e51365a -r 4b3da727d832 nellymoserenc.c --- a/nellymoserenc.c Sat Mar 06 14:24:59 2010 +0000 +++ b/nellymoserenc.c Sat Mar 06 14:34:46 2010 +0000 @@ -38,6 +38,7 @@ #include "nellymoser.h" #include "avcodec.h" #include "dsputil.h" +#include "fft.h" #define BITSTREAM_WRITER_LE #include "put_bits.h" diff -r 98970e51365a -r 4b3da727d832 ppc/fft_altivec.c --- a/ppc/fft_altivec.c Sat Mar 06 14:24:59 2010 +0000 +++ b/ppc/fft_altivec.c Sat Mar 06 14:34:46 2010 +0000 @@ -20,7 +20,7 @@ * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavcodec/dsputil.h" +#include "libavcodec/fft.h" #include "dsputil_ppc.h" #include "util_altivec.h" /** diff -r 98970e51365a -r 4b3da727d832 qdm2.c --- a/qdm2.c Sat Mar 06 14:24:59 2010 +0000 +++ b/qdm2.c Sat Mar 06 14:34:46 2010 +0000 @@ -38,6 +38,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "mpegaudio.h" #include "qdm2data.h" diff -r 98970e51365a -r 4b3da727d832 rdft.c --- a/rdft.c Sat Mar 06 14:24:59 2010 +0000 +++ b/rdft.c Sat Mar 06 14:34:46 2010 +0000 @@ -19,7 +19,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include -#include "dsputil.h" +#include "libavutil/mathematics.h" +#include "fft.h" /** * @file libavcodec/rdft.c diff -r 98970e51365a -r 4b3da727d832 synth_filter.c --- a/synth_filter.c Sat Mar 06 14:24:59 2010 +0000 +++ b/synth_filter.c Sat Mar 06 14:34:46 2010 +0000 @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "fft.h" #include "synth_filter.h" void ff_synth_filter_float(FFTContext *imdct, diff -r 98970e51365a -r 4b3da727d832 twinvq.c --- a/twinvq.c Sat Mar 06 14:24:59 2010 +0000 +++ b/twinvq.c Sat Mar 06 14:34:46 2010 +0000 @@ -22,6 +22,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "lsp.h" #include diff -r 98970e51365a -r 4b3da727d832 vorbis_dec.c --- a/vorbis_dec.c Sat Mar 06 14:24:59 2010 +0000 +++ b/vorbis_dec.c Sat Mar 06 14:34:46 2010 +0000 @@ -30,6 +30,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "vorbis.h" #include "xiph.h" diff -r 98970e51365a -r 4b3da727d832 vorbis_enc.c --- a/vorbis_enc.c Sat Mar 06 14:24:59 2010 +0000 +++ b/vorbis_enc.c Sat Mar 06 14:34:46 2010 +0000 @@ -27,6 +27,7 @@ #include #include "avcodec.h" #include "dsputil.h" +#include "fft.h" #include "vorbis.h" #include "vorbis_enc_data.h" diff -r 98970e51365a -r 4b3da727d832 wma.h --- a/wma.h Sat Mar 06 14:24:59 2010 +0000 +++ b/wma.h Sat Mar 06 14:34:46 2010 +0000 @@ -25,6 +25,7 @@ #include "get_bits.h" #include "put_bits.h" #include "dsputil.h" +#include "fft.h" /* size of blocks */ #define BLOCK_MIN_BITS 7 diff -r 98970e51365a -r 4b3da727d832 x86/fft.h --- a/x86/fft.h Sat Mar 06 14:24:59 2010 +0000 +++ b/x86/fft.h Sat Mar 06 14:34:46 2010 +0000 @@ -19,7 +19,7 @@ #ifndef AVCODEC_X86_FFT_H #define AVCODEC_X86_FFT_H -#include "libavcodec/dsputil.h" +#include "libavcodec/fft.h" void ff_fft_permute_sse(FFTContext *s, FFTComplex *z); void ff_fft_calc_sse(FFTContext *s, FFTComplex *z);