summaryrefslogtreecommitdiff
path: root/libavcodec/aacenctab.h
Commit message (Collapse)AuthorAge
* aac: convert to new channel layout APIAnton Khirnov2022-03-15
| | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mpeg4audio: Unavpriv and deduplicate mpeg4audio_sample_ratesAndreas Rheinhardt2022-01-04
| | | | | | | | | | | | | | | | | | | | | avpriv_mpeg4audio_sample_rates has a size of 64B and it is currently avpriv; a clone of it exists in aacenctab.h and from there it is inlined in aacenc.c (which also uses the avpriv version) and in the FLV muxer. This means that despite it being avpriv both libavformat as well as libavcodec have copies already. This situation is clearly suboptimal. Given the overhead of exporting symbols (for x64 Elf/Linux/GNU: 2x2B version, 2x24B .dynsym, 24B .rela.dyn, 8B .got, 4B hash + twice the size of the name (here 31B)) the object is unavprived, i.e. duplicated into libavformat when creating a shared build; but the duplicates in the AAC encoder and FLV muxer are removed. This involves splitting of the sample rate table into a file of its own; this allowed to break some spurious dependencies (e.g. both the AAC encoder as well as the Matroska demuxer actually don't need the mpeg4audio_get_config stuff). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/avcodec: Stop including channel_layout.h in avcodec.hAndreas Rheinhardt2021-07-22
| | | | | | Also include channel_layout.h directly wherever used. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Mark some pointers as constAndreas Rheinhardt2021-01-01
| | | | | Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* aacenc: mark the preset 5.0/5.1 layouts correctly with back speakersRostislav Pehlivanov2017-11-09
| | | | | | | | | | The spec is correct, it does list these layouts as having rear speakers. Questionable how many decoders correctly interpret those correctly since side is way more popular. Also fixes fate-aac-yoraw-encode. Reported-by: pkviet <pkv.stream@gmail.com> Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* aacenc: support extended channel layouts using PCEsRostislav Pehlivanov2017-11-09
| | | | | | | | | | | | This commit implements support for PCE (Program Configuration Elements) in the AAC encoder, and as such allows for encoding of channel layouts not present in the presets defined by the spec (which only lists the 8 most common ones). This has been a highly requested feature and is also the first open source encoder to support this many layouts. Many thanks to pkviet <pkv.stream@gmail.com> who implemented support for and verified all channel layouts.
* aacenc: partially revert previous commits to set options via a profileRostislav Pehlivanov2015-10-17
| | | | | | It didn't work out because of the exceptions that needed to be made for the "-1" cases and was overall more confusing that just manually checking and setting options for each profile.
* aacenc: add support for changing options based on a profileRostislav Pehlivanov2015-10-12
| | | | | | | | | | | | | | | | | | | | This commit adds the ability for a profile to set the default options, as well as for the user to override such options by simply stating them in the command line while still keeping the same profile, as long as those options are still permitted by the profile. Example: setting the profile to aac_low (the default) will turn PNS and IS on. They can be disabled by -aac_pns 0 and -aac_is 0, respectively. Turning on -aac_pred 1 will cause the profile to be elevated to aac_main, as long as no options forbidding aac_main have been entered (like AAC-LTP, which will be pushed soon). A useful feature is that by setting the profile to mpeg2_aac_low, all MPEG4 features will be disabled and if the user tries to enable them then the program will exit with an error. This profile is signalled with the same bitstream as aac_low (MPEG4) but some devices and decoders will fail if any MPEG4 features have been enabled.
* aacenc: add support for encoding 7.1 channel audioRostislav Pehlivanov2015-10-12
| | | | | | | This commit implements support for 7.1 channel audio. There's no more predefined bitstream channel mappings so going beyond 8 channels (and 7 channels exactly) will require programmable channel elements, which is already underway.
* avcodec/aacenctab: Make aac_maxval_cb constMichael Niedermayer2015-09-23
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* AAC encoder: simplify and speed up find_min_bookClaudio Freire2015-09-23
| | | | | | Trivial change to simplify the small but hot find_min_book function. The new form is easier to understand and faster.
* aacenctab: add tns_min_sfb[] to the encoder tables headerRostislav Pehlivanov2015-09-01
| | | | | | | Needed for following commits. Contains the starting sfb for every samplerate and window type. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* aacenctab: Add missing ff_ prefixesTimothy Gu2015-08-22
| | | | | Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com> Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
* aacenc: Move local encoder specific tables to a separate fileRostislav Pehlivanov2015-08-07
This commit moves any tables specific to the encoder from aacenc and aaccoder to a separate file called 'aacenctab.c/.h'. This was done as a clean up attempt as the encoder was filled with tables pasted in between functions which made it confusing to follow and track where each table and definition had been used. This commit solves this by simply exporting the smaller tables out to the aacenctab.h while the larger ones are compiled using aacenctab.c and are referenced from the header file. Signed-off-by: Claudio Freire <klaussfreire@gmail.com>