Hi Jerry,
I'd say the best would be to simply replace the
#ifdef USE_SMALLFT
by
#ifdef USE_TI_FFT
#include "ti_fft_wrapper.h"
#elif defined(USE_SMALLFT)
and have everything in the include file. There's no real point in
overriding individual functions since they all go together.
Also, make sure you wrap the FFT in the same way as I did with the
fixed-point kissfft. For example, the forward fft is normalised, while
the backward one isn't. Also, in some cases, I do some renormalisation
before the fft to increase accuracy.
Please send me the patch when you have something working. I'm sure other
people would be interested.
Jean-Marc
Jerry Trantow a ?crit :> I am in the process of dropping the TI DSP lib fft routines into the AEC.
>
> Currently, FFTWrap.c uses the USE_SMALLFT and USE_KISS_FFT to select
between
> two packages of FFT routines. ]
>
> #ifdef USE_SMALLFT
> ...
> #elif defined(USE_KISS_FFT)
> ...
> #else
> #error No other FFT implemented
> #endif
>
> My guess is that every DSP and many other processors will have their own
> specific FFT and iFFT. What method should be used to drop in a DSP
specific
> FFT?
> Should just use something like this for fftwrap.c?
>
> #if defined(__TMS320C55X__)
> #include "FFT_TI55.h"
> #endif
>
> #ifdef USE_SMALLFT
> ...
> #elif defined(USE_KISS_FFT)
> ...
> #else // Use FFTWrap_*.h file to supply processor specific functions.
> #if defined(OVERRIDE_FFT_INIT)
> void *spx_fft_init(int size) {};
> #endif
> #if defined(OVERRIDE_FFT_INIT)
> void spx_fft_destroy(void *table) {};
> #endif
> #if defined(OVERRIDE_FFT_INIT)
> void spx_fft(void *table, float *in, float *out) {};
> #endif
> #if defined(OVERRIDE_FFT_INIT)
> void spx_ifft(void *table, float *in, float *out) {};
> #endif
> #endif
>
>
>