Commit 074bb751 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'c3c96deb'

* commit 'c3c96deb':
  fft-test: Check memory allocations

Conflicts:
	libavcodec/fft-test.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 670b7f20 c3c96deb
...@@ -67,11 +67,13 @@ static struct { ...@@ -67,11 +67,13 @@ static struct {
float re, im; float re, im;
} *exptab; } *exptab;
static void fft_ref_init(int nbits, int inverse) static int fft_ref_init(int nbits, int inverse)
{ {
int i, n = 1 << nbits; int i, n = 1 << nbits;
exptab = av_malloc_array((n / 2), sizeof(*exptab)); exptab = av_malloc_array((n / 2), sizeof(*exptab));
if (!exptab)
return AVERROR(ENOMEM);
for (i = 0; i < (n/2); i++) { for (i = 0; i < (n/2); i++) {
double alpha = 2 * M_PI * (float)i / (float)n; double alpha = 2 * M_PI * (float)i / (float)n;
...@@ -81,6 +83,7 @@ static void fft_ref_init(int nbits, int inverse) ...@@ -81,6 +83,7 @@ static void fft_ref_init(int nbits, int inverse)
exptab[i].re = c1; exptab[i].re = c1;
exptab[i].im = s1; exptab[i].im = s1;
} }
return 0;
} }
static void fft_ref(FFTComplex *tabr, FFTComplex *tab, int nbits) static void fft_ref(FFTComplex *tabr, FFTComplex *tab, int nbits)
...@@ -293,6 +296,9 @@ int main(int argc, char **argv) ...@@ -293,6 +296,9 @@ int main(int argc, char **argv)
tab_ref = av_malloc_array(fft_size, sizeof(FFTComplex)); tab_ref = av_malloc_array(fft_size, sizeof(FFTComplex));
tab2 = av_malloc_array(fft_size, sizeof(FFTSample)); tab2 = av_malloc_array(fft_size, sizeof(FFTSample));
if (!(tab && tab1 && tab_ref && tab2))
goto cleanup;
switch (transform) { switch (transform) {
#if CONFIG_MDCT #if CONFIG_MDCT
case TRANSFORM_MDCT: case TRANSFORM_MDCT:
...@@ -310,7 +316,8 @@ int main(int argc, char **argv) ...@@ -310,7 +316,8 @@ int main(int argc, char **argv)
else else
av_log(NULL, AV_LOG_INFO,"FFT"); av_log(NULL, AV_LOG_INFO,"FFT");
ff_fft_init(&s, fft_nbits, do_inverse); 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; break;
#if FFT_FLOAT #if FFT_FLOAT
# if CONFIG_RDFT # if CONFIG_RDFT
...@@ -320,7 +327,8 @@ int main(int argc, char **argv) ...@@ -320,7 +327,8 @@ int main(int argc, char **argv)
else else
av_log(NULL, AV_LOG_INFO,"DFT_R2C"); av_log(NULL, AV_LOG_INFO,"DFT_R2C");
ff_rdft_init(&r, fft_nbits, do_inverse ? IDFT_C2R : 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; break;
# endif /* CONFIG_RDFT */ # endif /* CONFIG_RDFT */
# if CONFIG_DCT # if CONFIG_DCT
...@@ -335,7 +343,7 @@ int main(int argc, char **argv) ...@@ -335,7 +343,7 @@ int main(int argc, char **argv)
#endif /* FFT_FLOAT */ #endif /* FFT_FLOAT */
default: default:
av_log(NULL, AV_LOG_ERROR, "Requested transform not supported\n"); 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); av_log(NULL, AV_LOG_INFO," %d test\n", fft_size);
...@@ -494,6 +502,7 @@ int main(int argc, char **argv) ...@@ -494,6 +502,7 @@ int main(int argc, char **argv)
#endif /* FFT_FLOAT */ #endif /* FFT_FLOAT */
} }
cleanup:
av_free(tab); av_free(tab);
av_free(tab1); av_free(tab1);
av_free(tab2); av_free(tab2);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment