summaryrefslogtreecommitdiff
path: root/libavcodec/aactab.c
Commit message (Collapse)AuthorAge
* configure: Use a separate config_components.h header for $ALL_COMPONENTSMartin Storsjö2022-03-16
| | | | | | | | This avoids unnecessary rebuilds of most source files if only the list of enabled components has changed, but not the other properties of the build, set in config.h. Signed-off-by: Martin Storsjö <martin@martin.st>
* Remove unnecessary mem.h inclusionsAndreas Rheinhardt2021-07-22
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavu/mem: move the DECLARE_ALIGNED macro family to mem_internal on next+1 bumpAnton Khirnov2021-01-01
| | | | They are not properly namespaced and not intended for public use.
* avcodec/aactab: Make AAC encoder and decoders actually init-threadsafeAndreas Rheinhardt2020-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 1a29804558c13ef512d9ef73a9b0d782af4fa5f2 guarded several initializations of static data in the AAC decoders with an AVOnce and set the FF_CODEC_CAP_INIT_THREADSAFE flag, believing the former to be sufficient for the latter. It wasn't, because several of these static tables are shared with other components, so that there might be data races if they are initialized from multiple threads. This affected initializing the ff_sine_* tables as well as initializing the ff_aac_pow*sf_tab tables (shared between both decoders and encoder) as well as ff_aac_kbd_* tables (shared between encoder and floating point decoder). Commit 3d62e7a30fa552be52d12b31e3e0f79153aff891 set the FF_CODEC_CAP_INIT_THREADSAFE flag for the AAC encoder. More explicitly, this commit used the same AVOnce to guard initializing ff_aac_pow*sf_tab in the encoder and to guard initializing the static data of each decoder; the ensuing catastrophe was "fixed" in commit ec0719264cb9a9d5cbaf225da48929aea24997a3 by using a single AVOnce for each codec again. But the codec cap has not been removed and therefore the encoder claimed to be init-threadsafe, but wasn't, because of the same tables as above. The ff_sine_* tables as well as ff_aac_pow*sf_tab tables have already been fixed; this commit deals with the ff_aac_kbd_* tables, making the encoder as well as the floating-point decoder init-threadsafe (the fixed-point decoder is it already). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/aac: Share common init code of float decoder and encoderAndreas Rheinhardt2020-12-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/aacdec, aactab: Move kbd tables to their only userAndreas Rheinhardt2020-12-08
| | | | | | | | | | | | The floating point kbd tables for 120 and 960 samples are only used by the floating point decoder whereas the fixed point kbd tables for 128 and 1024 samples are only used by the fixed point AAC decoder. So move these tables to their only users. This ensures that they are not accidentally used somewhere else without ensuring that initializing these tables stays thread-safe (as it is now because the only place from where they are initialized is guarded by an AVOnce). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/aac*: Make initializing ff_aac_pow*sf_tab thread-safeAndreas Rheinhardt2020-11-24
| | | | | | | | | | | | | | This table is currently initialized up to three times: Once by the encoder and twice by the decoders (once by the fixed and once by the floating-point decoder); each of these initializations is guarded by an AVOnce, yet the fact that there are three of them implies that there might be data races (the fact that each entry is only written to once (to its final value) when initializing means that this is safe in practice, yet it is still undefined behaviour). Fix this by only initializing the table from one place that is guarded by a single AVOnce. This also avoids unnecessary duplications of the init code. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/aac: Add floating point 960/120 MDCT windowPaul B Mahol2017-08-24
| | | | | Co-Authored-By: Alex Converse <alex.converse@gmail.com> Co-Authored-By: Rostislav Pehlivanov <atomnuker@gmail.com>
* avcodec/aac_tablegen: get rid of hardcoded tables entirelyGanesh Ajjanagadde2015-11-28
| | | | | | | | | | Commit 96786a12f6df26990bbe7c0ca4592b3731724469 makes runtime initialization cheap. Tested with FATE, with/without --enable-hardcoded-tables. Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
* aac: temporarily un-share aac_table_init AVOnce variableRostislav Pehlivanov2015-11-27
| | | | | | | AAC-Fixed decoder segfaulted. This commit makes the aac encoder and decoder init the table twice in case of transcoding again. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* aacenc: make threadsafeRostislav Pehlivanov2015-11-27
| | | | | | | | Since the ff_aac_tableinit() can be called by both the encoder and the decoder (in case of transcoding) this commit shares the AVOnce variable to prevent this. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* avcodec/aactab: Add ff_aac_eld_window_480_fixedMichael Niedermayer2015-07-25
| | | | | | Fixes pointer type mismatch Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/aactab: Fix rounding of elements in ff_aac_eld_window_512_fixedMichael Niedermayer2015-07-25
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* libavcodec: Implementation of AAC_fixed_decoder (LC-module) [2/4]Jovan Zelincevic2015-07-09
| | | | | | | Add fixed point implementation of functions for generating tables Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Merge commit '7640c4a371a97899dfb443d980fd0bf8ac587754'Michael Niedermayer2015-02-04
|\ | | | | | | | | | | | | * commit '7640c4a371a97899dfb443d980fd0bf8ac587754': aacdec: Tables for length 480 AAC ELD. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aacdec: Tables for length 480 AAC ELD.Niel van der Westhuizen2015-02-03
| |
* | Merge commit '7f29644108c5fbd80f160930b31b78b8704c1a49'Michael Niedermayer2014-01-05
|\| | | | | | | | | | | | | * commit '7f29644108c5fbd80f160930b31b78b8704c1a49': aac: Fix low delay windowing. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aac: Fix low delay windowing.Alex Converse2014-01-04
| | | | | | | | AAC LD uses a low overlap sine window instead of a KBD window.
* | Merge commit 'b2212dec0f011893ec68eecaa990170fa24050d7'Michael Niedermayer2014-01-05
|\| | | | | | | | | | | | | | | | | | | | | * commit 'b2212dec0f011893ec68eecaa990170fa24050d7': aac: Fix TNS decoding for the 512 sample window family. also temporarily disable fate-aac-er_ad6000np_44_ep0 as this commit causes a mismatch with the reference pcm file The test will be reenabled after all fixes and with a new pcm reference Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aac: Fix TNS decoding for the 512 sample window family.Alex Converse2014-01-04
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-10-23
|\| | | | | | | | | | | | | | | | | | | | | | | * qatar/master: aac: Add support for Enhanced AAC Low Delay (ER AAC ELD). Conflicts: Changelog libavcodec/aacdec.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aac: Add support for Enhanced AAC Low Delay (ER AAC ELD).Alex Converse2013-10-23
| | | | | | | | | | This does not include support for LD SBR, epTool, data resilience, nor the 960 transform family.
* | Merge commit '1914e6f010b3320025c7b692aaea51d9b9a992a8'Michael Niedermayer2013-09-19
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '1914e6f010b3320025c7b692aaea51d9b9a992a8': aacdec: Add support for LD (Low Delay) AAC Conflicts: Changelog libavcodec/aacdec.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aacdec: Add support for LD (Low Delay) AACAlex Converse2013-09-18
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-05-22
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: dwt: check malloc calls ppc: Drop unused header regs.h af_resample: remove an extra space in the log output Convert vector_fmul range of functions to YASM and add AVX versions lavfi: add an audio split filter lavfi: rename vf_split.c to split.c Conflicts: doc/filters.texi libavcodec/ppc/regs.h libavfilter/Makefile libavfilter/allfilters.c libavfilter/f_split.c libavfilter/split.c libavfilter/version.h libavfilter/vf_split.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Convert vector_fmul range of functions to YASM and add AVX versionsKieran Kunhya2012-05-21
| | | | | | | | Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
| * Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
|/ | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* aactab: Tablegenify ff_aac_pow2sf_tab.Alex Converse2010-06-23
| | | | Originally committed as revision 23740 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove explicit filename from Doxygen @file commands.Diego Biurrun2010-04-20
| | | | | | | | Passing an explicit filename to this command is only necessary if the documentation in the @file block refers to a file different from the one the block resides in. Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove DECLARE_ALIGNED_{8,16} macrosMåns Rullgård2010-03-06
| | | | | | | These macros are redundant. All uses are replaced with the generic DECLARE_ALIGNED macro instead. Originally committed as revision 22233 to svn://svn.ffmpeg.org/ffmpeg/trunk
* remove tables of codebook vector values which are contained inStefan Gehrer2010-02-20
| | | | | | another table Originally committed as revision 21918 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move array specifiers outside DECLARE_ALIGNED() invocationsMåns Rullgård2010-01-22
| | | | Originally committed as revision 21377 to svn://svn.ffmpeg.org/ffmpeg/trunk
* AAC: Compress codebook tables and optimise sign bit handlingMåns Rullgård2010-01-13
| | | | | | | | | | | | | | | | | | The codebooks each consist of small number of values repeated in groups of 2 or 4. Storing the codebooks as a packed list of 2- or 4-bit indexes into a table reduces their size substantially (from 7.5k to 1.5k), resulting in less cache pressure. For the band types with sign bits in the bitstream, storing the number and position of non-zero codebook values using a few bits avoids multiple get_bits() calls and floating-point comparisons which gcc handles miserably. Some float/int type punning also avoids gcc brain damage. Overall speedup 20-35% on Cortex-A8, 20% on Core i7. Originally committed as revision 21188 to svn://svn.ffmpeg.org/ffmpeg/trunk
* AAC: use new dsputil functionsMåns Rullgård2009-09-22
| | | | Originally committed as revision 19956 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ff_swb_offset_* tables should be const.Reimar Döffinger2009-09-06
| | | | Originally committed as revision 19782 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move TNS and swb_offset tables from aacdectab.h to aactab.c so that they can beAlex Converse2009-06-12
| | | | | | shared with the AAC encoder. Originally committed as revision 19174 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add support for sample rate index 12, 7350 HzAlex Converse2009-02-12
| | | | | | Patch by Alex Converse ( alex converse gmail com ) Originally committed as revision 17180 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use full internal pathname in doxygen @file directives.Diego Biurrun2009-02-01
| | | | | | | Otherwise doxygen complains about ambiguous filenames when files exist under the same name in different subdirectories. Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Change semantic of CONFIG_*, HAVE_* and ARCH_*.Aurelien Jacobs2009-01-13
| | | | | | They are now always defined to either 0 or 1. Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
* AAC: Frequency domain prediction and hence Main profile supportAlex Converse2008-11-24
| | | | | | Patch by Alex Converse ( alex converse gmail com ) Originally committed as revision 15919 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix perceptual noise shaping scaling including an oversight of the offset forAlex Converse2008-11-05
| | | | | | | | the EIGHT_SHORT window type. Fixes issue 664. Patch by Alex Converse (alex converse gmail com) Originally committed as revision 15776 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add (additional) const to many global tables.Reimar Döffinger2008-10-02
| | | | Originally committed as revision 15515 to svn://svn.ffmpeg.org/ffmpeg/trunk
* More OKed AAC decoder hunksRobert Swain2008-08-15
| | | | Originally committed as revision 14774 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Synchronise AAC decoder code with that from SoCRobert Swain2008-08-15
| | | | Originally committed as revision 14772 to svn://svn.ffmpeg.org/ffmpeg/trunk
* More OKed hunks of the AAC decoder from SoCRobert Swain2008-08-11
| | | | Originally committed as revision 14694 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Sync already committed code with that in SoC and commit more OKed hunks of codeRobert Swain2008-08-09
| | | | Originally committed as revision 14674 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move shared tables to aactab.c and add declarations to aactab.h. Also sync withRobert Swain2008-08-05
SoC code. Originally committed as revision 14625 to svn://svn.ffmpeg.org/ffmpeg/trunk