---
 libavcodec/fft-test.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/libavcodec/fft-test.c b/libavcodec/fft-test.c
index 59a53dd..daebc71 100644
--- a/libavcodec/fft-test.c
+++ b/libavcodec/fft-test.c
@@ -59,14 +59,15 @@
 #   define FMT "%6d"
 #endif
 
-struct {
+typedef struct {
     float re, im;
-} *exptab;
+} FComplex;
 
-static void fft_ref_init(int nbits, int inverse)
+static FComplex* fft_ref_init(int nbits, int inverse)
 {
     int n, i;
     double c1, s1, alpha;
+    FComplex *exptab;
 
     n = 1 << nbits;
     exptab = av_malloc((n / 2) * sizeof(*exptab));
@@ -80,9 +81,10 @@ static void fft_ref_init(int nbits, int inverse)
         exptab[i].re = c1;
         exptab[i].im = s1;
     }
+    return exptab;
 }
 
-static void fft_ref(FFTComplex *tabr, FFTComplex *tab, int nbits)
+static void fft_ref(FFTComplex *tabr, FFTComplex *tab, const FComplex *exptab, 
int nbits)
 {
     int n, i, j, k, n2;
     double tmp_re, tmp_im, s, c;
@@ -254,6 +256,7 @@ int main(int argc, char **argv)
     DCTContext d1, *d = &d1;
     int fft_size_2;
 #endif
+    FComplex *exptab = NULL;
     int fft_nbits, fft_size;
     double scale = 1.0;
     AVLFG prng;
@@ -313,7 +316,7 @@ int main(int argc, char **argv)
         else
             av_log(NULL, AV_LOG_INFO,"FFT");
         ff_fft_init(s, fft_nbits, do_inverse);
-        fft_ref_init(fft_nbits, do_inverse);
+        exptab = fft_ref_init(fft_nbits, do_inverse);
         break;
 #if CONFIG_FFT_FLOAT
     case TRANSFORM_RDFT:
@@ -322,7 +325,7 @@ int main(int argc, char **argv)
         else
             av_log(NULL, AV_LOG_INFO,"DFT_R2C");
         ff_rdft_init(r, fft_nbits, do_inverse ? IDFT_C2R : DFT_R2C);
-        fft_ref_init(fft_nbits, do_inverse);
+        exptab = fft_ref_init(fft_nbits, do_inverse);
         break;
     case TRANSFORM_DCT:
         if (do_inverse)
@@ -367,7 +370,7 @@ int main(int argc, char **argv)
         s->fft_permute(s, tab);
         s->fft_calc(s, tab);
 
-        fft_ref(tab_ref, tab1, fft_nbits);
+        fft_ref(tab_ref, tab1, exptab, fft_nbits);
         err = check_diff((FFTSample *)tab_ref, (FFTSample *)tab, fft_size * 2, 
1.0);
         break;
 #if CONFIG_FFT_FLOAT
@@ -385,7 +388,7 @@ int main(int argc, char **argv)
             tab2[1] = tab1[fft_size_2].re;
 
             r->rdft_calc(r, tab2);
-            fft_ref(tab_ref, tab1, fft_nbits);
+            fft_ref(tab_ref, tab1, exptab, fft_nbits);
             for (i = 0; i < fft_size; i++) {
                 tab[i].re = tab2[i];
                 tab[i].im = 0;
@@ -397,7 +400,7 @@ int main(int argc, char **argv)
                 tab1[i].im = 0;
             }
             r->rdft_calc(r, tab2);
-            fft_ref(tab_ref, tab1, fft_nbits);
+            fft_ref(tab_ref, tab1, exptab, fft_nbits);
             tab_ref[0].im = tab_ref[fft_size_2].re;
             err = check_diff((float *)tab_ref, (float *)tab2, fft_size, 1.0);
         }
-- 
1.7.3.1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to