summaryrefslogtreecommitdiff
path: root/pjmedia/src/pjmedia-codec/speex/fftwrap.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjmedia/src/pjmedia-codec/speex/fftwrap.c')
-rw-r--r--pjmedia/src/pjmedia-codec/speex/fftwrap.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/pjmedia/src/pjmedia-codec/speex/fftwrap.c b/pjmedia/src/pjmedia-codec/speex/fftwrap.c
index de093569..79a1de30 100644
--- a/pjmedia/src/pjmedia-codec/speex/fftwrap.c
+++ b/pjmedia/src/pjmedia-codec/speex/fftwrap.c
@@ -42,6 +42,7 @@
#include "misc.h"
+#define MAX_FFT_SIZE 2048
#ifdef FIXED_POINT
static int maximize_range(spx_word16_t *in, spx_word16_t *out, spx_word16_t bound, int len)
@@ -225,9 +226,8 @@ void spx_ifft(void *table, spx_word16_t *in, spx_word16_t *out)
#endif
-int fixed_point = 1;
#ifdef FIXED_POINT
-#include "smallft.h"
+/*#include "smallft.h"*/
void spx_fft_float(void *table, float *in, float *out)
@@ -239,13 +239,19 @@ void spx_fft_float(void *table, float *in, float *out)
int N = ((struct kiss_config *)table)->N;
#else
#endif
+#ifdef VAR_ARRAYS
spx_word16_t _in[N];
spx_word16_t _out[N];
+#else
+ spx_word16_t _in[MAX_FFT_SIZE];
+ spx_word16_t _out[MAX_FFT_SIZE];
+#endif
for (i=0;i<N;i++)
_in[i] = (int)floor(.5+in[i]);
spx_fft(table, _in, _out);
for (i=0;i<N;i++)
out[i] = _out[i];
+#if 0
if (!fixed_point)
{
float scale;
@@ -257,6 +263,7 @@ void spx_fft_float(void *table, float *in, float *out)
spx_drft_forward(&t, out);
spx_drft_clear(&t);
}
+#endif
}
void spx_ifft_float(void *table, float *in, float *out)
@@ -268,13 +275,19 @@ void spx_ifft_float(void *table, float *in, float *out)
int N = ((struct kiss_config *)table)->N;
#else
#endif
+#ifdef VAR_ARRAYS
spx_word16_t _in[N];
spx_word16_t _out[N];
+#else
+ spx_word16_t _in[MAX_FFT_SIZE];
+ spx_word16_t _out[MAX_FFT_SIZE];
+#endif
for (i=0;i<N;i++)
_in[i] = (int)floor(.5+in[i]);
spx_ifft(table, _in, _out);
for (i=0;i<N;i++)
out[i] = _out[i];
+#if 0
if (!fixed_point)
{
int i;
@@ -285,6 +298,7 @@ void spx_ifft_float(void *table, float *in, float *out)
spx_drft_backward(&t, out);
spx_drft_clear(&t);
}
+#endif
}
#else