*/
/**
- * @file fft-test.c
+ * @file libavcodec/fft-test.c
* FFT and MDCT tests.
*/
#undef exit
#undef random
-int mm_flags;
-
/* reference fft */
#define MUL16(a,b) ((a) * (b))
}
}
-void imdct_ref(float *out, float *in, int n)
+void imdct_ref(float *out, float *in, int nbits)
{
+ int n = 1<<nbits;
int k, i, a;
double sum, f;
}
/* NOTE: no normalisation by 1 / N is done */
-void mdct_ref(float *output, float *input, int n)
+void mdct_ref(float *output, float *input, int nbits)
{
+ int n = 1<<nbits;
int k, i;
double a, s;
int main(int argc, char **argv)
{
FFTComplex *tab, *tab1, *tab_ref;
- FFTSample *tabtmp, *tab2;
+ FFTSample *tab2;
int it, i, c;
int do_speed = 0;
int do_mdct = 0;
MDCTContext m1, *m = &m1;
int fft_nbits, fft_size;
- mm_flags = 0;
fft_nbits = 9;
for(;;) {
c = getopt(argc, argv, "hsimn:");
tab = av_malloc(fft_size * sizeof(FFTComplex));
tab1 = av_malloc(fft_size * sizeof(FFTComplex));
tab_ref = av_malloc(fft_size * sizeof(FFTComplex));
- tabtmp = av_malloc(fft_size / 2 * sizeof(FFTSample));
tab2 = av_malloc(fft_size * sizeof(FFTSample));
if (do_mdct) {
if (do_mdct) {
if (do_inverse) {
- imdct_ref((float *)tab_ref, (float *)tab1, fft_size);
- ff_imdct_calc(m, tab2, (float *)tab1, tabtmp);
+ imdct_ref((float *)tab_ref, (float *)tab1, fft_nbits);
+ ff_imdct_calc(m, tab2, (float *)tab1);
check_diff((float *)tab_ref, tab2, fft_size);
} else {
- mdct_ref((float *)tab_ref, (float *)tab1, fft_size);
+ mdct_ref((float *)tab_ref, (float *)tab1, fft_nbits);
- ff_mdct_calc(m, tab2, (float *)tab1, tabtmp);
+ ff_mdct_calc(m, tab2, (float *)tab1);
check_diff((float *)tab_ref, tab2, fft_size / 2);
}
for(it=0;it<nb_its;it++) {
if (do_mdct) {
if (do_inverse) {
- ff_imdct_calc(m, (float *)tab, (float *)tab1, tabtmp);
+ ff_imdct_calc(m, (float *)tab, (float *)tab1);
} else {
- ff_mdct_calc(m, (float *)tab, (float *)tab1, tabtmp);
+ ff_mdct_calc(m, (float *)tab, (float *)tab1);
}
} else {
memcpy(tab, tab1, fft_size * sizeof(FFTComplex));