X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ffft-test.c;h=925711dc76fcb5c5da0a54f3634658904efb6106;hb=646eb55139ce6cad08d6f2d1dd07c28ee73a861e;hp=92a09611a69db2729094bfff87be161cb342d53b;hpb=bad5537e2c2caeb5deb1ff9d771ea01058b8010c;p=ffmpeg diff --git a/libavcodec/fft-test.c b/libavcodec/fft-test.c index 92a09611a69..925711dc76f 100644 --- a/libavcodec/fft-test.c +++ b/libavcodec/fft-test.c @@ -23,6 +23,7 @@ * FFT and MDCT tests. */ +#include "libavutil/lfg.h" #include "dsputil.h" #include #include @@ -31,7 +32,6 @@ #include #undef exit -#undef random /* reference fft */ @@ -45,7 +45,7 @@ FFTComplex *exptab; -void fft_ref_init(int nbits, int inverse) +static void fft_ref_init(int nbits, int inverse) { int n, i; double c1, s1, alpha; @@ -64,7 +64,7 @@ void fft_ref_init(int nbits, int inverse) } } -void fft_ref(FFTComplex *tabr, FFTComplex *tab, int nbits) +static void fft_ref(FFTComplex *tabr, FFTComplex *tab, int nbits) { int n, i, j, k, n2; double tmp_re, tmp_im, s, c; @@ -93,7 +93,7 @@ void fft_ref(FFTComplex *tabr, FFTComplex *tab, int nbits) } } -void imdct_ref(float *out, float *in, int nbits) +static void imdct_ref(float *out, float *in, int nbits) { int n = 1<= 1e-3) { av_log(NULL, AV_LOG_ERROR, "ERROR %d: %f %f\n", i, tab1[i], tab2[i]); @@ -160,7 +160,7 @@ void check_diff(float *tab1, float *tab2, int n) } -void help(void) +static void help(void) { av_log(NULL, AV_LOG_INFO,"usage: fft-test [-h] [-s] [-i] [-n b]\n" "-h print this help\n" @@ -168,6 +168,7 @@ void help(void) "-m (I)MDCT test\n" "-i inverse transform test\n" "-n b set the transform size to 2^b\n" + "-f x set scale factor for output data of (I)MDCT to x\n" ); exit(1); } @@ -183,12 +184,15 @@ int main(int argc, char **argv) int do_mdct = 0; int do_inverse = 0; FFTContext s1, *s = &s1; - MDCTContext m1, *m = &m1; + FFTContext m1, *m = &m1; int fft_nbits, fft_size; + double scale = 1.0; + AVLFG prng; + av_lfg_init(&prng, 1); fft_nbits = 9; for(;;) { - c = getopt(argc, argv, "hsimn:"); + c = getopt(argc, argv, "hsimn:f:"); if (c == -1) break; switch(c) { @@ -207,6 +211,9 @@ int main(int argc, char **argv) case 'n': fft_nbits = atoi(optarg); break; + case 'f': + scale = atof(optarg); + break; } } @@ -217,11 +224,12 @@ int main(int argc, char **argv) tab2 = av_malloc(fft_size * sizeof(FFTSample)); if (do_mdct) { + av_log(NULL, AV_LOG_INFO,"Scale factor is set to %f\n", scale); if (do_inverse) av_log(NULL, AV_LOG_INFO,"IMDCT"); else av_log(NULL, AV_LOG_INFO,"MDCT"); - ff_mdct_init(m, fft_nbits, do_inverse); + ff_mdct_init(m, fft_nbits, do_inverse, scale); } else { if (do_inverse) av_log(NULL, AV_LOG_INFO,"IFFT"); @@ -235,8 +243,8 @@ int main(int argc, char **argv) /* generate random data */ for(i=0;i