diff --git a/ffplay.c b/ffplay.c index ce1d5a2cb9942a4b7db547604c6dd29eec55e6f9..474240ca930106cf7dcaed8fbfe15e02b498fc2f 100644 --- a/ffplay.c +++ b/ffplay.c @@ -30,7 +30,7 @@ #include "libavcodec/audioconvert.h" #include "libavcodec/colorspace.h" #include "libavcodec/opt.h" -#include "libavcodec/dsputil.h" +#include "libavcodec/fft.h" #if CONFIG_AVFILTER # include "libavfilter/avfilter.h" diff --git a/libavcodec/aac.c b/libavcodec/aac.c index 0e014e083dc3bc05afc7d758be0c68c89725fce6..e73aa75391b5abc56b1de5f554c501304b42898e 100644 --- a/libavcodec/aac.c +++ b/libavcodec/aac.c @@ -80,6 +80,7 @@ #include "internal.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "lpc.h" #include "aac.h" diff --git a/libavcodec/aac.h b/libavcodec/aac.h index f123d9fa490748a58afd187b9abf2e2b7445569e..ec43e5fe99f97f2e04801a28b01910c589cd3fd5 100644 --- a/libavcodec/aac.h +++ b/libavcodec/aac.h @@ -32,6 +32,7 @@ #include "avcodec.h" #include "dsputil.h" +#include "fft.h" #include "mpeg4audio.h" #include diff --git a/libavcodec/ac3dec.h b/libavcodec/ac3dec.h index 3fd67af50b4efcc2afae7af948f35c1126367840..cc44a0300adf817bab68b5989ff745cf9369377f 100644 --- a/libavcodec/ac3dec.h +++ b/libavcodec/ac3dec.h @@ -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 --git a/libavcodec/arm/fft_init_arm.c b/libavcodec/arm/fft_init_arm.c index ec8e0ab8930c465d8c1948eed18425c9092bcf8d..b2acf929f5704db7eb6378b5b31e54a52f6e2df8 100644 --- a/libavcodec/arm/fft_init_arm.c +++ b/libavcodec/arm/fft_init_arm.c @@ -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 --git a/libavcodec/atrac1.c b/libavcodec/atrac1.c index a4b57f1579b98f119b1a3e2fa37a417ae4659c27..dfdd9744a2156677e582cca6bfb50b1e51d17286 100644 --- a/libavcodec/atrac1.c +++ b/libavcodec/atrac1.c @@ -35,6 +35,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "atrac.h" #include "atrac1data.h" diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c index 86d48920bb764c60d44c86b3121c7b5986c71ab0..dd69e4d87b5c6f57550746f4c29fa75bdddc91be 100644 --- a/libavcodec/atrac3.c +++ b/libavcodec/atrac3.c @@ -40,6 +40,7 @@ #include "get_bits.h" #include "dsputil.h" #include "bytestream.h" +#include "fft.h" #include "atrac.h" #include "atrac3data.h" diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c index d27a142f85e39e9c71c73c17c949d0f377f3d644..7462ab727eeb85cd2a6906f4846b67e7f00da4d1 100644 --- a/libavcodec/binkaudio.c +++ b/libavcodec/binkaudio.c @@ -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 --git a/libavcodec/cook.c b/libavcodec/cook.c index 0003a387bd96edfe800de44092bd151c61c6930b..4948acfb898801e41e2b6043660365b32db34057 100644 --- a/libavcodec/cook.c +++ b/libavcodec/cook.c @@ -52,6 +52,7 @@ #include "get_bits.h" #include "dsputil.h" #include "bytestream.h" +#include "fft.h" #include "cookdata.h" diff --git a/libavcodec/dca.c b/libavcodec/dca.c index 86a929e815baad6f56a6b9237d9aa4c96f1e63ed..dfa8945e3d9c94bb5de6410ac6e348f7003325c4 100644 --- a/libavcodec/dca.c +++ b/libavcodec/dca.c @@ -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 --git a/libavcodec/dct.c b/libavcodec/dct.c index 3776349df98355747036496b74990b00be5f50a9..d627a5566495e362a541c7902695c0cb0776682e 100644 --- a/libavcodec/dct.c +++ b/libavcodec/dct.c @@ -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 --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h index c68ab3aea65c5838a24ff9104affd4e213340e4d..9ab647608aa299bc74382151e84658c325a685b6 100644 --- a/libavcodec/dsputil.h +++ b/libavcodec/dsputil.h @@ -725,220 +725,6 @@ void get_psnr(uint8_t *orig_image[3], uint8_t *coded_image[3], 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 --git a/libavcodec/fft.c b/libavcodec/fft.c index ef596ef56400d386784e1a14ae7d01e4a78f0805..facc6e05d968b2f44c398ab7afdb0b97c5b6196a 100644 --- a/libavcodec/fft.c +++ b/libavcodec/fft.c @@ -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 --git a/libavcodec/fft.h b/libavcodec/fft.h new file mode 100644 index 0000000000000000000000000000000000000000..f3e7d7aa4ed632073c960729f06a45631eacf8f4 --- /dev/null +++ b/libavcodec/fft.h @@ -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 --git a/libavcodec/imc.c b/libavcodec/imc.c index 54c22df97817f6abdec31055b869bcb9d8c1a50b..c8bf3367ac93882257453c49a7685ce3f7abcde4 100644 --- a/libavcodec/imc.c +++ b/libavcodec/imc.c @@ -38,6 +38,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "imcdata.h" diff --git a/libavcodec/mdct.c b/libavcodec/mdct.c index 8734bdc56fe31d0e2895d242a43ecb96e4ef60ce..87908d3d667a35dbb74ff0189682e28e1c7f1320 100644 --- a/libavcodec/mdct.c +++ b/libavcodec/mdct.c @@ -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 --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c index 911d3ae86a86620e78e59eb00a25435774a39e0a..a2c67f65e024d9489756accbaf2ca7018237116a 100644 --- a/libavcodec/nellymoserdec.c +++ b/libavcodec/nellymoserdec.c @@ -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 --git a/libavcodec/nellymoserenc.c b/libavcodec/nellymoserenc.c index 6f413a1c14f195b1175c3dd474a4aea388f34d99..95ab22fa3ee66bfead5e75aec27d59b2f810572f 100644 --- a/libavcodec/nellymoserenc.c +++ b/libavcodec/nellymoserenc.c @@ -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 --git a/libavcodec/ppc/fft_altivec.c b/libavcodec/ppc/fft_altivec.c index 83b2b7f07babe090937dfe1a59eca40c7c8fa429..8f6941f50791e0282adf3e75c75f761cbfbe81f2 100644 --- a/libavcodec/ppc/fft_altivec.c +++ b/libavcodec/ppc/fft_altivec.c @@ -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 --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c index 275befbd3906d0288407b520aafcb84b42a1b9d8..dcfa5320d763ee9b62da062a341913289afb40e1 100644 --- a/libavcodec/qdm2.c +++ b/libavcodec/qdm2.c @@ -38,6 +38,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "mpegaudio.h" #include "qdm2data.h" diff --git a/libavcodec/rdft.c b/libavcodec/rdft.c index d6f82a7c7e148e14c42da56cbdac15ec03a41402..8638a55ca1ef6d5ffb33b8d357c1a2a9b6ef7e92 100644 --- a/libavcodec/rdft.c +++ b/libavcodec/rdft.c @@ -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 --git a/libavcodec/synth_filter.c b/libavcodec/synth_filter.c index a48939dbf3659de4222e97dc95ca511223f007d6..a252b5c2b0cd9a6f306c84371dc56e886c282edd 100644 --- a/libavcodec/synth_filter.c +++ b/libavcodec/synth_filter.c @@ -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 --git a/libavcodec/twinvq.c b/libavcodec/twinvq.c index f1073722d8807a0e88170900e953addba5f08e25..e460ea9623cad716780b59aa4b975e0aec64ca6f 100644 --- a/libavcodec/twinvq.c +++ b/libavcodec/twinvq.c @@ -22,6 +22,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "lsp.h" #include diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c index 31d509252858f6447395e9ab8c9b66fdb480277a..ae45c1f74678448d3d1f5f38cd0d2f05d4e05b74 100644 --- a/libavcodec/vorbis_dec.c +++ b/libavcodec/vorbis_dec.c @@ -30,6 +30,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "fft.h" #include "vorbis.h" #include "xiph.h" diff --git a/libavcodec/vorbis_enc.c b/libavcodec/vorbis_enc.c index 4e641386c7903068cca79261483a96dad681517a..f33f431655c3dfbe9588aed6c16029bc8d603d20 100644 --- a/libavcodec/vorbis_enc.c +++ b/libavcodec/vorbis_enc.c @@ -27,6 +27,7 @@ #include #include "avcodec.h" #include "dsputil.h" +#include "fft.h" #include "vorbis.h" #include "vorbis_enc_data.h" diff --git a/libavcodec/wma.h b/libavcodec/wma.h index 00d99eff1974ac980df3425b3cf3e82f26fd8691..11274ad97085dfaea86c41a8338e052c1891170b 100644 --- a/libavcodec/wma.h +++ b/libavcodec/wma.h @@ -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 --git a/libavcodec/x86/fft.h b/libavcodec/x86/fft.h index b0fff1b1203439c4142c9d99f7150b3e2e075f05..7ef58391417d59cc6873185dc4359a544b1897fa 100644 --- a/libavcodec/x86/fft.h +++ b/libavcodec/x86/fft.h @@ -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);