summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update README.mdpiratfm2013-12-141-0/+21
| | | | | Conflicts: README.md
* Apply piratfm's first commitMatthias P. Braendli2013-12-149-8/+148
| | | | | | It's the patch from commit e969ea8 AAC960 works now. All modes: LC/SBR/PS. Only for DAB+, not DRM. without the copyright headers that create a ton of merge conficts
* Bump the version number, add a changelog entryv0.1.3Martin Storsjo2013-11-252-2/+6
|
* Include autogen.sh when building distribution packagesMartin Storsjo2013-11-251-0/+1
|
* Include the encoder library version in the publicly installed headerMartin Storsjo2013-11-011-0/+3
| | | | | This allows callers to conditionally use new API features without breaking compatibility with the earlier versions of the library.
* Avoid casting arbitrary values to an enumMartin Storsjo2013-11-011-6/+6
| | | | | | | | | | | | | | The enum only contains the constant values 0, 1 and 2. This produces the warning "comparison of constant 6 with expression of type 'PS_RESOLUTION' is always false" in clang for the first check in the getNoBands function (but apparently not for the second one even though mode>=3 shouldn't ever happen for a valid PS_RESOLUTION value either). This could allow the compiler to completely remove the conditions that shouldn't be able to occur even though they actually are used and are necessary. By passing the value as UINT instead, it is clear to the compiler that all the checks are necessary.
* Revert "Avoid too big changes in isScale"Martin Storsjo2013-11-011-9/+0
| | | | | | | | This reverts commit 226601a8d9bce81455e161a0e26051d2f22c5d7a. This change doesn't seem to be necessary any longer, a proper fix seems to be included upstream now in 60a27b7fe5bf2c3b07ae7f679ca67c0c5cba3b00.
* Merge remote-tracking branch 'aosp/kitkat-release' into kitkat-mergeMartin Storsjo2013-11-01306-6930/+7861
|\ | | | | | | | | Conflicts: libAACenc/src/quantize.cpp
| * Encoder 7.1 supportJean-Michel Trivi2013-09-0327-193/+231
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * AAC-Encoder - Add 7.1 rear surround and 7.1 front center support to supported encoder channel modes. Change max channels from 6 to 8 and add 7.1 configuration to bandwidth and channel mapping functions. Modified file(s): libAACenc\include\aacenc_lib.h libAACenc\src\aacEnc_ram.cpp libAACenc\src\aacEnc_ram.h libAACenc\src\aacenc.cpp libAACenc\src\aacenc.h libAACenc\src\aacenc_lib.cpp libAACenc\src\adj_thr.cpp libAACenc\src\adj_thr.h libAACenc\src\adj_thr_data.h libAACenc\src\bandwidth.cpp libAACenc\src\bitenc.cpp libAACenc\src\channel_map.cpp libAACenc\src\interface.h libAACenc\src\metadata_compressor.cpp libAACenc\src\psy_main.cpp libAACenc\src\psy_main.h libAACenc\src\qc_data.h libAACenc\src\qc_main.cpp libAACenc\src\qc_main.h * SBR-Encoder - Support up to 7.1 audio channels. Changed max channels from 6 to 8. Modified file(s): libSBRenc\include\sbr_encoder.h libSBRenc\src\sbr.h libSBRenc\src\sbr_encoder.cpp libSBRenc\src\sbr_ram.cpp * Transport-Encoder - Add 7.1 channel configuration to audio specific config writer in transport encoder library. Modified file(s): libMpegTPEnc\src\tpenc_asc.cpp libMpegTPEnc\src\version * SYS-Library - Add 7.1 channel modes to CHANNEL_MODE description. Modified file(s): libSYS\include\FDK_audio.h libSYS\src\genericStds.cpp Bug 9428126 Change-Id: Ide53583aa8e03df4537b98db80740dfe0e7a9e0f
| * Encoder ELD auto configuratorJean-Michel Trivi2013-09-032-4/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * AAC-Encoder - Introduce ELD auto configurator to get predefined configuration at given bitrate and sampling rate. The configurator selects SBR on/off and if SBR enabled distinguishes between dualrate and downsampled SBR. In default configuration the ELD auto configurator is enabled. Modified file(s): libAACenc\include\aacenc_lib.h libAACenc\src\aacenc_lib.cpp Bug 9428126 Change-Id: I01acc9c37e57c4154b3a818d496d538b7f8b227d
| * Encoder explicit signalingJean-Michel Trivi2013-09-037-3588/+3828
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * AAC-Encoder - Revise explicit signaling method which is required for downsampled SBR. The parameter is optional and default configuration is implicit signaling for dualrate SBR as before. In case of downsampled SBR and HE-AAC explicit signaling is configured as default. Modified file(s): documentation\aacEncoder.pdf libAACenc\include\aacenc_lib.h libAACenc\src\aacenc_lib.cpp libMpegTPEnc\src\tpenc_asc.cpp libMpegTPEnc\src\version libSYS\include\FDK_audio.h libSYS\src\genericStds.cpp Bug 9428126 Change-Id: I35138140346f17384d109ee5829be9ea5bab80fc
| * Encoder downsampled SBRJean-Michel Trivi2013-08-2918-5787/+5360
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * AAC-Encoder - Introduce optional AACENC_SBR_RATIO encoder API parameter to configure dualrate or downsampled SBR explicitely. ELD makes use of downsampled SBR in default configuration. Modified file(s): documentation\aacEncoder.pdf libAACenc\include\aacenc_lib.h libAACenc\src\aacenc.h libAACenc\src\aacenc_lib.cpp * SBR-Encoder - Implement downsampled SBR feature. - Revise sbr tuning parameter selection. Modified file(s): libSBRenc\include\sbr_encoder.h libSBRenc\src\bit_sbr.h libSBRenc\src\env_est.cpp libSBRenc\src\mh_det.cpp libSBRenc\src\nf_est.cpp libSBRenc\src\ps_main.cpp libSBRenc\src\sbr.h libSBRenc\src\sbr_def.h libSBRenc\src\sbr_encoder.cpp libSBRenc\src\sbr_rom.cpp libSBRenc\src\sbr_rom.h libSBRenc\src\sbrenc_freq_sca.cpp libSBRenc\src\sbrenc_freq_sca.h libSBRenc\src\ton_corr.cpp Bug 9428126 Change-Id: I731720a10829272acaaf70b84525df00a09ff3d2
| * AAC Encoder low delay qualityJean-Michel Trivi2013-08-2814-211/+563
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * AAC-Encoder - Revise bit distribution for lowdelay configuration to improve encoder audio quality. - Adjust lowdelay bitreservoir for low bitreservoir configuration. Modified file(s): libAACenc\src\aacEnc_ram.cpp libAACenc\src\aacenc.cpp libAACenc\src\aacenc_lib.cpp libAACenc\src\aacenc_tns.cpp libAACenc\src\adj_thr.cpp libAACenc\src\adj_thr.h libAACenc\src\block_switch.cpp libAACenc\src\block_switch.h libAACenc\src\interface.h libAACenc\src\psy_main.cpp libAACenc\src\qc_data.h libAACenc\src\qc_main.cpp * FDK-Library - Increase the accuracy in CalcInvLdData() calculation which improves the encoder audio quality. Modified file(s): libFDK\src\fixpoint_math.cpp Bug 9428126 Change-Id: I302d7f4c3aeccf79e1b85f20e18a31e6e2b10544
| * Decoder parse ASCJean-Michel Trivi2013-08-273-2/+61
| | | | | | | | | | | | | | | | | | | | * AAC-Decoder - Add support for explicit backward compatible signaling via ASC extension. Bug 9428126 Change-Id: I0cb8226da07e3684bbb7eb95d10b6040973aa0f6
| * Decoder stability, sanity checks improvementsJean-Michel Trivi2013-08-2716-294/+683
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * AAC-Decoder - Improved PCE handling for saver (re-)configuration and metadata processing. Modified file(s): libAACdec/src/aacdecoder.cpp libAACdec/src/aacdecoder_lib.cpp - Transport layer changes (config found) -> to be evaluated. Modified file(s): libMpegTPDec/include/tpdec_lib.h libMpegTPDec/src/tpdec_latm.h libMpegTPDec/src/version libMpegTPDec/src/tpdec_asc.cpp libMpegTPDec/src/tpdec_lib.cpp libMpegTPDec/src/tpdec_adts.cpp libMpegTPDec/src/tpdec_latm.cpp libSYS/include/FDK_audio.h libSYS/src/genericStds.cpp - Enable concealment state machine to skip states if the corresponding parameter is set to zero. Modified file(s): libAACdec/src/conceal.cpp - Add some more sanity checks to avoid segmentation faults especially when setting dynamic API params. Modified file(s): libAACdec/src/aacdecoder_lib.cpp - Fix to do a fail-safe initialization of IMDCT for all channels even with corrupt streams. Modified file(s): libAACdec/src/aacdecoder.cpp - HCR decoder fix (remove warnings). Modified file(s): libAACdec/src/block.cpp - Fix border calculation in SBR decoder's LPP transposer patch determination. Modified file(s): libSBRdec/src/env_dec.cpp libSBRdec/src/sbrdecoder.cpp libSBRdec/src/lpp_tran.cpp Bug 9428126 Change-Id: Ib415b702b88a7ec8e9a55789d79cafb39296d26b
| * Decode dynamic range control improvementsJean-Michel Trivi2013-08-276-19/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * AAC-Decoder - Only set the program reference level if it has changed compared to the previous value. This allows setting it on a frame-by-frame basis without limitations. Modified file(s): libAACdec/src/aacdec_drc.cpp libAACdec/src/aacdec_drc.h - Add expiry counter for the program reference level. Modified file(s): libAACdec/src/aacdec_drc.cpp libAACdec/src/aacdec_drc_types.h - Disable scaling of light compression gain values when heavy compression mode is enabled to have the full light compression as fallback if no heavy values are available. Modified file(s): libAACdec/src/aacdec_drc.cpp libAACdec/src/aacdecoder_lib.cpp libAACdec/src/aacdec_drc_types.h - Change initialization and channel disabling to improve start-up behavior in SBR decoder. Modified file(s): libSBRdec/src/sbrdecoder.cpp libSBRdec/src/sbrdec_drc.cpp Bug 9428126 Change-Id: Ie1d3949c53910506da2547d32fe3bf6ee7606eb4
| * Decode parametric stereo even with invalid channel configJean-Michel Trivi2013-08-276-11/+18
| | | | | | | | | | | | | | | | | | AAC decoder: Allow decoding of Parametric Stereo (AOT 29) bitstreams with invalid channel config 2. Bug 9428126 Change-Id: I1e8b801dfc0e6b1706421342d4985512e83f0dbe
| * FDK update for downsampled SBRJean-Michel Trivi2013-08-278-4/+37
| | | | | | | | | | | | | | | | Add missing support for downsampled SBR in libFDK Bug 9428126 Change-Id: Idb732f8d31a115d36dd4b22916599db7fab98cae
| * AAC encoder metadata improvementJean-Michel Trivi2013-08-205-14/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AAC-Encoder - Introduce metadata support for parametric stereo audio object type. Write metadata matrix mixdown coefficient only for channel config 5 and 6. Modified file(s): libAACenc/src/aacenc_lib.cpp - Revise metadata encoder downmix gain and fix matrix mixdown coefficient. Modified file(s): libAACenc/src/aacenc_lib.cpp libAACenc/src/metadata_compressor.cpp libMpegTPEnc/src/tpenc_asc.cpp libMpegTPEnc/src/tpenc_lib.cpp libMpegTPEnc/src/version Bug 9428126 Change-Id: I87f5f1a1fdddd8223187aa0f9dc733e0ecc3e7e4
| * SBR header periodJean-Michel Trivi2013-08-204-5/+24
| | | | | | | | | | | | | | | | | | AAC encoder: Connect SBR and PS header repetition rate with AACENC_HEADER_PERIOD parameter of the encoder API. Bug 9428126 Change-Id: Ia1ab965de9eaa2ac229d0c395a337cbd4d20cba1
| * AAC encoder bitrate limitationJean-Michel Trivi2013-08-201-47/+49
| | | | | | | | | | | | | | | | | | AAC encoder: Make the bit rate limiting functionality more stable for multichannel configurations where element bit rate for SBR can differ significantly. Bug 9428126 Change-Id: I35b134c5b3c160a8f5a16b4314782b731fe49cd8
| * SBR encoder improvementJean-Michel Trivi2013-08-203-11/+11
| | | | | | | | | | | | | | | | | | SBR encoder: Introduce coupling energy ratio limitation to prevent undesirable SBR band amplification while decoding. Bug 9428126 Change-Id: I18a77cd1a178fff7531b490779a29a0df7d993af
| * Encoder intensity fixJean-Michel Trivi2013-08-203-11/+20
| | | | | | | | | | | | | | | | AAC encoder: Prevent illegal intensity values delta coding at short blocks. Bug 9428126 Change-Id: Ic287b86f3229022740f2317ea74aabe612de5e6b
| * Encoder quantizer fixJean-Michel Trivi2013-08-202-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AAC Encoder: Saturate quantizer shift value to prevent undefined behaviour. In very rare cases the shift value 'totalShift = (16-4)-(3*(totalShift>>2))' can be greater than accu data width. If you apply a shift with more then 31 bit the result depends on the architecture and is not defined in C. For certain platforms zeros are shifted in. That would be our desired behaviour. On other platforms the shift will be applied as modulo. For example >>34 would be applied as >>2. To prevent this discrepancy the shift value is limited/saturated to DFRACT_BITS-1. 'accu >>= fixMin(totalShift,DFRACT_BITS-1)'. Bug 9428126 Change-Id: I27177654c4dc22cf899bc35dad9cdd040dccb02d
| * Decode and SYS lib cleanupJean-Michel Trivi2013-08-2012-40/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * AAC-Encoder - Remove source snippets related to unsupported frame length of 960. - Adjust minBits initialization for disabled VBR configuration. Modified file(s): libAACenc/src/aacenc.h libAACenc/src/aacenc_lib.cpp libAACenc/src/aacenc_tns.cpp libAACenc/src/bandwidth.cpp libAACenc/src/psy_const.h libAACenc/src/transform.h - Revise encoder parameter restrictions: "Error Resilient(ER) AAC Low Complexity" is not supported. Where the AAC part of the FDK encoder threw an initialization error, now the aacEncoder_SetParam() returns an error before initialization if the application tries to configure this audio object type. Modified file(s): libAACenc/src/aacenc_lib.cpp * SYS-Library - Portability fix for Mingw32. Modified file(s): libSYS/include/machine_type.h - Minor changes. Modified file(s): libSYS/include/wav_file.h libSYS/src/wav_file.cpp libSYS/src/cmdl_parser.cpp libSYS/src/genericStds.cpp Bug 9428126 Change-Id: I9fa44923d34f033d0dc607f2b85abacb8a85eb61
| * Disclaimer update, lib version incrementJean-Michel Trivi2013-08-20305-322/+322
| | | | | | | | | | | | | | | | | | - Update disclaimer in all source files. - Increment library version in each FDK sub-module. Bug 9428126 Change-Id: I490b96d4ee472246b01483202b0bb4f1e9c2a5d7
| * Fix HE-AAC SBR ignored high-freq dataJean-Michel Trivi2013-08-054-2/+13
| | | | | | | | Change-Id: I12d284477f07349368e714ba52cbb2a47b024554 (cherry picked from commit a889574e60a02bbc647d3b078d2727cb48d82e5a)
* | Ignore .dirstamp filesMartin Storsjo2013-10-031-0/+1
| |
* | Add an autogen shellscriptTerrance2013-09-071-0/+2
| |
* | Bump the version number, add a changelog entryv0.1.2Martin Storsjo2013-07-272-2/+6
| |
* | Include dependency libs (-lm) in the pkg-config fileMartin Storsjo2013-07-272-1/+6
| |
* | Check the right element in isBookMartin Storsjo2013-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | This makes sure we read the right array element, corresponding to all other array accesses in the same function, and all other use of the isBook array elsewhere in the library. This makes the fix in the previous commit ("Avoid too big changes in isScale") work as intended, fixing other samples that triggered assertions.
* | Avoid too big changes in isScaleMartin Storsjo2013-03-181-0/+9
| | | | | | | | | | | | | | | | | | | | These values are delta encoded, but only steps [-60,60] are possible to encode. If the difference between two values are bigger than that, we end up with a sequence we are unable to encode. This fixes crashes on certain stereo samples at higher bitrates.
* | Merge remote-tracking branch 'aosp/master'Martin Storsjo2013-02-272-6/+0
|\|
| * am 0d439d3d: Merge "Remove a bionic workaround."Elliott Hughes2012-11-290-0/+0
| |\ | | | | | | | | | | | | * commit '0d439d3d744f5ac8b0b0c16dcc9d1d3814ad002e': Remove a bionic workaround.
| | * Merge "Remove a bionic workaround."Elliott Hughes2012-11-292-6/+0
| | |\
| | | * Remove a bionic workaround.Elliott Hughes2012-11-292-6/+0
| | |/ | | | | | | | | | | | | | | | (Requires corresponding bionic patch 3975cec694a0c9b42e3f7e671fcd678da92836c3.) Change-Id: Ief968db33e2f9e1957510bbd59f25faa6828d678
| * / Remove a bionic workaround.Elliott Hughes2012-11-292-6/+0
| |/ | | | | | | | | | | | | | | (Requires corresponding bionic patch 3975cec694a0c9b42e3f7e671fcd678da92836c3.) (cherry-pick of 1d24ddc612489f57c23e78a5deaaad91f1bf6ce5.) Change-Id: I7105b17c285ff24fb48be23cf2067aef37f36d45
* | Don't try to shift more bits than the variable lengthMartin Storsjo2013-02-171-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shifting by more than (or equal to) the variable length is undefined in C. This caused the quantized spectrum values to remain unshifted, causing loud beeps in some samples. The exact same change was originally applied in 657456949 (for AOSP) and in 24021f190 (in the separate fdk-aac repo), but was overwritten and silently reverted by the new upstream code drop for Android 4.2 in 381d69840a. After the code drop, I chose not to reapply this change since the crashes that it fixed had been fixed in other ways upstream and I was unable to reproduce them after the new code drop.
* | Add a changelog entry for 0.1.1, bump the version numbersv0.1.1Martin Storsjo2012-11-132-2/+11
| |
* | Rename sbr_rom/ram files back to the original namesMartin Storsjo2012-11-023-2/+2
| | | | | | | | This minimizes the differences to upstream.
* | build: Build object files in subdirectoriesMartin Storsjo2012-11-021-0/+1
| | | | | | | | This allows producing more than one object file with the same name.
* | build: Don't use make variables in the declaration of source filesMartin Storsjo2012-11-021-131/+122
| | | | | | | | | | This is required for working dependency generation with the subdir-objects option enabled.
* | Revert "Use __builtin_clz instead of default implementation of fixnormz on GCC"Martin Storsjo2012-11-011-12/+0
| | | | | | | | | | | | | | | | | | This reverts commit e036dbc8eb7d5fdd02dc70faff20e9ac3e2989ca. Upstream took __builtin_clz in use (in the new header libFDK/include/x86/clz_x86.h, together with an alternative implementation for MSVC), so this change can be dropped to minimize the differences.
* | Revert parts of "Use saturating adds to avoid overflow"Martin Storsjo2012-11-011-2/+2
| | | | | | | | | | | | | | This reverts commit 839ae290c1f5a263613bea1a5fde863e757a8849. This change is no longer necessary on top of the new upstream, I cannot reproduce the crash that this fixed with the new upstream.
* | Only use __int64 on MSVC, not on all win32 compilersMartin Storsjo2012-11-011-1/+1
| | | | | | | | | | | | | | Mingw32 doesn't define the __int64 types. This was implicitly reverted in AOSP (where this change was already merged before) by the new code drop from Fraunhofer.
* | Update Makefile.am to account for a removed file in the latest upstreamMartin Storsjo2012-11-011-2/+1
| |
* | Merge remote-tracking branch 'aosp/jb-mr1-release' into masterMartin Storsjo2012-11-0141-4495/+4423
|\| | | | | | | | | | | | | Conflicts: libAACenc/src/band_nrg.cpp libAACenc/src/grp_data.cpp libSBRenc/src/env_est.cpp
| * Bug 7170947 Update AAC codecJean-Michel Trivi2012-10-0221-1390/+1443
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From Fraunhofer: * AAC Decoder - Stick to the written MPEG standard instead of the MPEG reference software in terms of reference level normalization. Always set the program reference level equal to the target level. This disables level normalization using a default level for streams without embedded metadata. Modified file(s): libAACdec\src\aacdec_drc.cpp - Fix downmix channel assignment when using a WAV output channel ordering. Modified file(s): libPCMutils\src\pcmutils_lib.cpp - Retain signal accuracy and prevent LSB alteration when no level correction needs to be done. Modified file(s): libAACdec\src\aacdec_drc.h libAACdec\src\aacdec_drc.cpp libSBRdec\src\sbrdecoder.cpp libSBRdec\src\sbr_dec.cpp libSBRdec\src\sbrdec_drc.cpp - Align metadata processing with reference implementation. Modified file(s): libAACdec\src\aacdec_drc.h libAACdec\src\aacdecoder.cpp * AAC-Encoder - Prevent potential overflow in energy calculation after TNS processing. Modified file(s): libAACenc\src\band_nrg.cpp - Added saturation for number of relevant lines which are used in pe calculation. Modified file(s): libAACenc\src\line_pe.cpp - Removed obsolete files. Deleded file(s): libAACenc\src\tns_param.h libAACenc\src\tns_param.cpp * FDK-Library - Added x86 Count Leading Zeros intrinsic. Modified file(s): libFDK\include\clz.h Added file(s): libFDK\include\x86\clz_x86.h - Fixed compilation for MIPS GCC-4.4 and higher. Modified file(s): libFDK\include\mips\cplx_mul.h libFDK\include\mips\fixmul_mips.h Change-Id: I4be65f07f88d412224c7fddc3f054e8f451176cc
| * Merge "Don't zero out spec coeffs before doing the final IMDCT." into jb-mr1-devJohn Grossman2012-09-121-4/+1
| |\