aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/fft.h
Commit message (Collapse)AuthorAgeFilesLines
* avcodec: Remove DCT, FFT, MDCT and RDFTAndreas Rheinhardt2023-10-011-160/+0
| | | | | | | | | | | | | They were replaced by TX from libavutil; the tremendous work to get to this point (both creating TX as well as porting the users of the components removed in this commit) was completely performed by Lynne alone. Removing the subsystems from configure may break some command lines, because the --disable-fft etc. options are no longer recognized. Co-authored-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* libavcodec: Set hidden visibility on global symbols accessed from AArch64 ↵Martin Storsjö2022-09-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | assembly The AArch64 assembly accesses those symbols directly, without indirection via e.g. the GOT on ELF. In order for this not to require text relocations, those symbols need to be resolved fully at link time, i.e. those symbols can't be interposable. Normally, so far, this is achieved when linking shared libraries in two ways; we have a version script (libavcodec/libavcodec.v) which marks all symbols that don't start with av* as local. Additionally, we try to add -Wl,-Bsymbolic to the linker options if supported, making sure that such symbol references are resolved fully at link time, instead of making them interposable. When the libavcodec static library is linked into another shared library, there's no guarantee that it uses similar options (even though that would be favourable), which would end up requiring text relocations in the AArch64 assembly. Explicitly mark the symbols that are accessed from AArch64 assembly as hidden, so that they are resolved fully at link time even without the version script and -Wl,-Bsymbolic. Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec: Remove the FFT_FIXED_32 defineAndreas Rheinhardt2021-08-051-8/+0
| | | | | | | | Since the removal of the 16-bit FFT said define is unnecessary as FFT_FIXED_32 is always !FFT_FLOAT. But one wouldn't believe it when looking at the code. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/fft_template: Avoid useless functionAndreas Rheinhardt2021-01-291-8/+8
| | | | | | | | ff_init_ff_cos_tabs is only used for the floating point FFT and only if hardcoded tables are disabled. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* fft: remove 16-bit FFT and MDCT codeLynne2021-01-141-9/+0
| | | | | | No longer used by anything. Unfortunately the old FFT_FLOAT/FFT_FIXED_32 is left as-is. It's simply too much work for code meant to be all removed anyway.
* lavu/mem: move the DECLARE_ALIGNED macro family to mem_internal on next+1 bumpAnton Khirnov2021-01-011-1/+2
| | | | They are not properly namespaced and not intended for public use.
* avcodec/fft: Add revtab32 for FFTs with more than 65536 samplesMichael Niedermayer2016-03-041-0/+1
| | | | | | x86 optimizations are used only for the cases they support (<=65536 samples) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec: Extend fft to size 2^17Michael Niedermayer2016-03-041-1/+2
| | | | | | Asked-for-by: durandal_1707 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit '24af1aa0f70362a66cda04c9d7cd012e019f5572'Michael Niedermayer2014-07-181-7/+13
|\ | | | | | | | | | | | | * commit '24af1aa0f70362a66cda04c9d7cd012e019f5572': fft: Convert FFT/MDCT permutation type #defines to enums Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * fft: Convert FFT/MDCT permutation type #defines to enumsDiego Biurrun2014-07-181-7/+13
| |
* | Merge commit '650c4300d94aa9398ff1dd4f454bf39eaa285f62'Michael Niedermayer2014-04-221-0/+1
|\| | | | | | | | | | | | | * commit '650c4300d94aa9398ff1dd4f454bf39eaa285f62': aarch64: NEON float FFT Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aarch64: NEON float FFTJanne Grunau2014-04-221-0/+1
| | | | | | | | Approximately as fast as the ARM NEON version on Apple's A7.
* | rename CONFIG_FFT_FIXED_32 -> FFT_FIXED_32Michael Niedermayer2014-01-071-5/+5
| | | | | | | | | | | | This matches FFT_FLOAT Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '794fcf79a89eca2d4e889803b2c804a0b1defbb3'Michael Niedermayer2014-01-071-4/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '794fcf79a89eca2d4e889803b2c804a0b1defbb3': Rename CONFIG_FFT_FLOAT ---> FFT_FLOAT Conflicts: libavcodec/fft-internal.h libavcodec/fft-test.c libavcodec/fft_fixed.c libavcodec/fft_float.c libavcodec/fft_template.c libavcodec/mdct_fixed.c libavcodec/mdct_float.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Rename CONFIG_FFT_FLOAT ---> FFT_FLOATDiego Biurrun2014-01-061-4/+4
| | | | | | | | | | The define does not originate from configure, so it should not have a name that is CONFIG_-prefixed.
* | libavcodec: Implementation of 32 bit fixed point FFTNedeljko Babic2013-08-041-2/+17
| | | | | | | | | | | | | | | | Iterative implementation of 32 bit fixed point split-radix FFT. Max FFT that can be calculated currently is 2^12. Signed-off-by: Nedeljko Babic <nbabic@mips.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '38282149b6ce8f4b8361e3b84542ba9aa8a1f32f'Michael Niedermayer2013-05-011-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '38282149b6ce8f4b8361e3b84542ba9aa8a1f32f': ppc: More consistent arch initialization Conflicts: libavcodec/fft.h libavcodec/mpegaudiodsp.c libavcodec/mpegaudiodsp.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ppc: More consistent arch initializationDiego Biurrun2013-04-301-1/+1
| |
* | Merge commit '42b9150b0d4f0a130c1d93dc991fd5412743a8cf'Michael Niedermayer2013-05-011-3/+1
|\| | | | | | | | | | | | | | | | | | | | | * commit '42b9150b0d4f0a130c1d93dc991fd5412743a8cf': fft: Remove pointless #ifdefs around function declarations ppc: Move AltiVec utility headers out of AltiVec ifdefs Conflicts: libavcodec/fft.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * fft: Remove pointless #ifdefs around function declarationsDiego Biurrun2013-04-301-3/+1
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-10-081-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: x86: vc1: call ff_vc1dsp_init_x86() under if (ARCH_X86) x86: cavs: call ff_cavsdsp_init_x86() under if (ARCH_X86) x86: call most of the x86 dsp init functions under if (ARCH_X86) doc: support the new website layout doc: remove a warning from filters.texi doc: initial nut documentation segment: drop global headers setting lavu: fix typo in Makefile Conflicts: doc/Makefile doc/filters.texi doc/t2h.init libavcodec/fmtconvert.c libavcodec/proresdsp.c libavcodec/x86/Makefile libavcodec/x86/vc1dsp_mmx.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * x86: call most of the x86 dsp init functions under if (ARCH_X86)Janne Grunau2012-10-081-1/+1
| | | | | | | | Rename the called dsp init functions to *_init_x86.
* | Optimization of AC3 floating point decoder for MIPSNedeljko Babic2012-09-051-0/+1
| | | | | | | | | | | | | | | | | | | | FFT in MIPS implementation is working iteratively instead of "recursively" calling functions for smaller FFT sizes. Some of DSP and format convert utils functions are also optimized. Signed-off-by: Nedeljko Babic <nbabic@mips.com> Reviewed-by: Vitor Sessak <vitor1001@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-06-241-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: doxygen: Consistently use '@' instead of '\' for Doxygen markup. Use av_printf_format to check the usage of printf style functions Add av_printf_format, for marking printf style format strings and their parameters ARM: enable thumb for Cortex-M* CPUs nsvdec: Propagate error values instead of returning 0 in nsv_read_header(). build: remove SRC_PATH_BARE variable build: move basic rules and variables to main Makefile build: move special targets to end of main Makefile lavdev: improve feedback in case of invalid frame rate/size vfwcap: prefer "framerate_q" over "fps" in vfw_read_header() v4l2: prefer "framerate_q" over "fps" in v4l2_set_parameters() fbdev: prefer "framerate_q" over "fps" in device context bktr: prefer "framerate" over "fps" for grab_read_header() ALSA: implement channel layout for playback. alsa: support unsigned variants of already supported signed formats. alsa: add support for more formats. ARM: allow building in Thumb2 mode Conflicts: common.mak doc/APIchanges libavcodec/vdpau.h libavdevice/alsa-audio-common.c libavdevice/fbdev.c libavdevice/libdc1394.c libavutil/avutil.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * doxygen: Consistently use '@' instead of '\' for Doxygen markup.Diego Biurrun2011-06-241-1/+1
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-271-1/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (23 commits) ac3enc: correct the flipped sign in the ac3_fixed encoder Eliminate pointless '#if 1' statements without matching '#else'. Add AVX FFT implementation. Increase alignment of av_malloc() as needed by AVX ASM. Update x86inc.asm from x264 to allow AVX emulation using SSE and MMX. mjpeg: Detect overreads in mjpeg_decode_scan() and error out. documentation: extend documentation for ffmpeg -aspect option APIChanges: update commit hashes for recent additions. lavc: deprecate FF_*_TYPE macros in favor of AV_PICTURE_TYPE_* enums aac: add headers needed for log2f() lavc: remove FF_API_MB_Q cruft lavc: remove FF_API_RATE_EMU cruft lavc: remove FF_API_HURRY_UP cruft pad: make the filter parametric vsrc_movie: add key_frame and pict_type. vsrc_movie: fix leak in request_frame() lavfi: add key_frame and pict_type to AVFilterBufferRefVideo. vsrc_buffer: add sample_aspect_ratio fields to arguments. lavfi: add fieldorder filter scale: make the filter parametric ... Conflicts: Changelog doc/filters.texi ffmpeg.c libavcodec/ac3dec.h libavcodec/dsputil.c libavfilter/avfilter.h libavfilter/vf_scale.c libavfilter/vf_yadif.c libavfilter/vsrc_buffer.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Add AVX FFT implementation.Vitor Sessak2011-04-261-1/+2
| | | | | | | | Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-041-0/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: fate: fix partial run when no samples path is specified ARM: NEON fixed-point forward MDCT ARM: NEON fixed-point FFT lavf: bump minor version and add an APIChanges entry for avio changes avio: simplify url_open_dyn_buf_internal by using avio_alloc_context() avio: make url_fdopen internal. avio: make url_open_dyn_packet_buf internal. avio: avio_ prefix for url_close_dyn_buf avio: avio_ prefix for url_open_dyn_buf avio: introduce an AVIOContext.seekable field ac3enc: use generic fixed-point mdct lavfi: add fade filter Change yadif to not use out of picture lines. lavc: deprecate AVCodecContext.antialias_algo lavc: mark mb_qmin/mb_qmax for removal on next major bump. Conflicts: doc/filters.texi libavcodec/ac3enc_fixed.h libavcodec/ac3enc_float.h libavfilter/Makefile libavfilter/allfilters.c libavfilter/vf_fade.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ARM: NEON fixed-point FFTMans Rullgard2011-04-031-0/+4
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-031-0/+5
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: Fixed-point MDCT with 32-bit unscaled output lavc: deprecate rate_emu lavc: mark hurry_up for removal on next major bump parser: mark av_parser_parse() for removal on next major bump lavc: add missing audioconvert includes jvdec: don't use deprecated CODEC_TYPE_*/PKT_FLAG_KEY Conflicts: libavcodec/h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Fixed-point MDCT with 32-bit unscaled outputMans Rullgard2011-04-021-0/+5
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'newdev/master'Michael Niedermayer2011-04-011-5/+36
|\| | | | | | | | | | | | | | | | | | | | | | | | | * newdev/master: mpegts: propagate avio EOF in read_packet() configure: Initial support for --target-os=symbian Fixed-point FFT and MDCT Include dependencies for test programs ac3enc: simplify sym_quant() flvdec: read index stored in the 'keyframes' tag. mov: Add support for zero-sized stsc runs. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Fixed-point FFT and MDCTMans Rullgard2011-03-311-5/+36
| |
* | Merge remote-tracking branch 'newdev/master'Michael Niedermayer2011-03-231-1/+0
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * newdev/master: (33 commits) Fix an infinite loop when RoQ encoded generated a frame with a size greater than the maximum valid size. Add kbdwin.o to AC3 decoder Detect byte-swapped AC-3 and support decoding it directly. cosmetics: indentation Always copy input data for AC3 decoder. ac3enc: make sym_quant() branch-free cosmetics: indentation Add a CPU flag for the Atom processor. id3v2: skip broken tags with invalid size id3v2: don't explicitly skip padding Make sure kbhit() is in conio.h fate: update wmv8-drm reference vc1: make P-frame deblock filter bit-exact. configure: Add the -D parameter to the dlltool command amr: Set the AVFMT_GENERIC_INDEX flag amr: Set the pkt->pos field properly to the start of the packet amr: Set the codec->bit_rate field based on the last packet rtsp: Specify unicast for TCP interleaved streams, too Set the correct target for mingw64 dlltool applehttp: Change the variable for stream position in seconds into int64_t ... Conflicts: ffmpeg.c ffplay.c libavcodec/ac3dec.c libavformat/avio.h libavformat/id3v2.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Move ff_dct_init_mmx declaration to dct.hMans Rullgard2011-03-201-1/+0
| | | | | | | | | | | | This was missed in 0aded94. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'newdev/master'Michael Niedermayer2011-03-211-141/+8
|\| | | | | | | Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Move dct and rdft definitions to separate filesMans Rullgard2011-03-201-65/+0
| | | | | | | | | | | | | | This leaves fft.h with only the core FFT and MDCT definitions thus making it more managable. Signed-off-by: Mans Rullgard <mans@mansr.com>
| * Move sine windows to a separate fileMans Rullgard2011-03-201-25/+1
| | | | | | | | | | | | | | These windows do not really belong in fft/mdct files and were easily confused with the similarly named tables used by rdft. Signed-off-by: Mans Rullgard <mans@mansr.com>
| * Move ff_kbd_window_init() to a separate fileMans Rullgard2011-03-191-13/+0
| | | | | | | | | | | | | | This function is not tightly coupled to mdct, and it's in the way of making a fixed-point mdct implementation. Signed-off-by: Mans Rullgard <mans@mansr.com>
| * fft: remove inline wrappers for function pointersMans Rullgard2011-03-191-38/+7
| | | | | | | | | | | | | | This removes the rather pointless wrappers (one not even inline) for calling the fft_calc and related function pointers. Signed-off-by: Mans Rullgard <mans@mansr.com>
| * Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-191-4/+4
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
| * FFT: factor a shuffle out of the inner loop and merge it into fft_permute.Loren Merritt2011-02-131-1/+4
| | | | | | | | | | | | 6% faster SSE FFT on Conroe, 2.5% on Penryn. Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
| * Mark C base versions of FFT functions static to fft.cDiego Elio Pettenò2011-01-261-2/+0
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* | FFT: factor a shuffle out of the inner loop and merge it into fft_permute.Loren Merritt2011-02-141-1/+4
| | | | | | | | | | | | | | 6% faster SSE FFT on Conroe, 2.5% on Penryn. Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net> (cherry picked from commit e6b1ed693ae4098e6b9eabf938fc31ec0b09b120)
* | Mark C base versions of FFT functions static to fft.cDiego Elio Pettenò2011-01-281-2/+0
|/ | | | | Signed-off-by: Mans Rullgard <mans@mansr.com> (cherry picked from commit 7767d8d361ca104d74c8390b72db21aa4d7fc322)
* Revert unintended changes to fft.h from r24890.Alex Converse2010-08-231-1/+1
| | | | Originally committed as revision 24891 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Rename Psy3gpp* structs to AacPsy*Nathan Caldwell2010-08-231-1/+1
| | | | | | | | | | This allows cleaner implementation of other psymodels using the existing structs. It also will make it easier to interchange individual parts of the psymodel to create hybrid models. Patch by: Nathan Caldwell <saintdev@gmail.com> Originally committed as revision 24890 to svn://svn.ffmpeg.org/ffmpeg/trunk
* SSE optimized 32-point DCTVitor Sessak2010-07-061-0/+1
| | | | Originally committed as revision 24077 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove vestiges of radix-2 FFTMåns Rullgård2010-07-011-3/+0
| | | | | | Patch (mostly) by Loren Merritt Originally committed as revision 23957 to svn://svn.ffmpeg.org/ffmpeg/trunk
* More mp{1,2,3} 32-point DCT transform to our common DCT framework.Vitor Sessak2010-06-301-0/+1
| | | | | | Should allow for future SIMD optimizations. Originally committed as revision 23912 to svn://svn.ffmpeg.org/ffmpeg/trunk