diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2016-03-04 00:31:45 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-03-04 13:51:42 +0100 |
commit | ae76b842213380758adf4828b8602ac57a7492e4 (patch) | |
tree | 55355fbfe28fe43ec1770d22ddf634de6b67dca0 /libavcodec/fft_template.c | |
parent | 362e05f1ea05ef7f9892f0e888323136ba77dd94 (diff) | |
download | ffmpeg-ae76b842213380758adf4828b8602ac57a7492e4.tar.gz |
avcodec: Extend fft to size 2^17
Asked-for-by: durandal_1707
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/fft_template.c')
-rw-r--r-- | libavcodec/fft_template.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/fft_template.c b/libavcodec/fft_template.c index 23ea453938..2781a332c6 100644 --- a/libavcodec/fft_template.c +++ b/libavcodec/fft_template.c @@ -51,6 +51,7 @@ COSTABLE(8192); COSTABLE(16384); COSTABLE(32768); COSTABLE(65536); +COSTABLE(131072); #endif COSTABLE_CONST FFTSample * const FFT_NAME(ff_cos_tabs)[] = { NULL, NULL, NULL, NULL, @@ -67,6 +68,7 @@ COSTABLE_CONST FFTSample * const FFT_NAME(ff_cos_tabs)[] = { FFT_NAME(ff_cos_16384), FFT_NAME(ff_cos_32768), FFT_NAME(ff_cos_65536), + FFT_NAME(ff_cos_131072), }; #endif /* FFT_FIXED_32 */ @@ -141,7 +143,7 @@ av_cold int ff_fft_init(FFTContext *s, int nbits, int inverse) { int i, j, n; - if (nbits < 2 || nbits > 16) + if (nbits < 2 || nbits > 17) goto fail; s->nbits = nbits; n = 1 << nbits; @@ -166,7 +168,7 @@ av_cold int ff_fft_init(FFTContext *s, int nbits, int inverse) #if FFT_FIXED_32 { int n=0; - ff_fft_lut_init(ff_fft_offsets_lut, 0, 1 << 16, &n); + ff_fft_lut_init(ff_fft_offsets_lut, 0, 1 << 17, &n); } #else /* FFT_FIXED_32 */ #if FFT_FLOAT @@ -515,10 +517,11 @@ DECL_FFT(8192,4096,2048) DECL_FFT(16384,8192,4096) DECL_FFT(32768,16384,8192) DECL_FFT(65536,32768,16384) +DECL_FFT(131072,65536,32768) static void (* const fft_dispatch[])(FFTComplex*) = { fft4, fft8, fft16, fft32, fft64, fft128, fft256, fft512, fft1024, - fft2048, fft4096, fft8192, fft16384, fft32768, fft65536, + fft2048, fft4096, fft8192, fft16384, fft32768, fft65536, fft131072 }; static void fft_calc_c(FFTContext *s, FFTComplex *z) |