Browse Source

fft-test: Check memory allocations

tags/n2.4
Diego Biurrun 10 years ago
parent
commit
c3c96deb5f
1 changed files with 13 additions and 4 deletions
  1. +13
    -4
      libavcodec/fft-test.c

+ 13
- 4
libavcodec/fft-test.c View File

@@ -63,11 +63,13 @@ static struct {
float re, im;
} *exptab;

static void fft_ref_init(int nbits, int inverse)
static int fft_ref_init(int nbits, int inverse)
{
int i, n = 1 << nbits;

exptab = av_malloc((n / 2) * sizeof(*exptab));
if (!exptab)
return AVERROR(ENOMEM);

for (i = 0; i < (n/2); i++) {
double alpha = 2 * M_PI * (float)i / (float)n;
@@ -77,6 +79,7 @@ static void fft_ref_init(int nbits, int inverse)
exptab[i].re = c1;
exptab[i].im = s1;
}
return 0;
}

static void fft_ref(FFTComplex *tabr, FFTComplex *tab, int nbits)
@@ -287,6 +290,9 @@ int main(int argc, char **argv)
tab_ref = av_malloc(fft_size * sizeof(FFTComplex));
tab2 = av_malloc(fft_size * sizeof(FFTSample));

if (!(tab && tab1 && tab_ref && tab2))
goto cleanup;

switch (transform) {
#if CONFIG_MDCT
case TRANSFORM_MDCT:
@@ -304,7 +310,8 @@ 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);
if (err = fft_ref_init(fft_nbits, do_inverse) < 0)
goto cleanup;
break;
#if FFT_FLOAT
#if CONFIG_RDFT
@@ -314,7 +321,8 @@ 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);
if (err = fft_ref_init(fft_nbits, do_inverse) < 0)
goto cleanup;
break;
#endif /* CONFIG_RDFT */
#if CONFIG_DCT
@@ -329,7 +337,7 @@ int main(int argc, char **argv)
#endif /* FFT_FLOAT */
default:
av_log(NULL, AV_LOG_ERROR, "Requested transform not supported\n");
return 1;
goto cleanup;
}
av_log(NULL, AV_LOG_INFO," %d test\n", fft_size);

@@ -488,6 +496,7 @@ int main(int argc, char **argv)
#endif /* FFT_FLOAT */
}

cleanup:
av_free(tab);
av_free(tab1);
av_free(tab2);


Loading…
Cancel
Save