mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 20:19:55 +00:00
fft-test: Check memory allocations
This commit is contained in:
parent
7288b34585
commit
c3c96deb5f
@ -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…
Reference in New Issue
Block a user