You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
Merge commit 'c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9'
* commit 'c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9': fft-test: Check memory allocations Conflicts: libavcodec/fft-test.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
#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)
|
|||||||
#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);
|
||||||
|
Reference in New Issue
Block a user