History log of /external/aac/libAACenc/src/aacenc_lib.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
fa3eba16446cc8f2f5e2dfc20d86a49dbd37299e 30-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> Encoder 7.1 support

* 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
/external/aac/libAACenc/src/aacenc_lib.cpp
9f455bea1c38f7275a65ab79be2d41a34428fb8b 30-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> Encoder ELD auto configurator

* 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
/external/aac/libAACenc/src/aacenc_lib.cpp
dbf96806482b2c48de4ba1da9a03e2bb7516b8c2 29-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> Encoder explicit signaling

* 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
/external/aac/libAACenc/src/aacenc_lib.cpp
3aec97e388e29a1d03f0197b27b893bc6aaf8ac3 29-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> Encoder downsampled SBR

* 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
/external/aac/libAACenc/src/aacenc_lib.cpp
7ad97579f8ccb843afdb5b184c4b209253839fe3 29-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> AAC Encoder low delay quality

* 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
/external/aac/libAACenc/src/aacenc_lib.cpp
16c472c201c197d3660334df5952eb4084897f9f 09-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> AAC encoder metadata improvement

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
/external/aac/libAACenc/src/aacenc_lib.cpp
a84864deb7c36b88f104f3116552d52d1ce64045 09-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> SBR header period

AAC encoder: Connect SBR and PS header repetition rate with AACENC_HEADER_PERIOD
parameter of the encoder API.

Bug 9428126

Change-Id: Ia1ab965de9eaa2ac229d0c395a337cbd4d20cba1
/external/aac/libAACenc/src/aacenc_lib.cpp
3c59acf1280ed5cbbf45a53743ea0ff635568769 09-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> AAC encoder bitrate limitation

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
/external/aac/libAACenc/src/aacenc_lib.cpp
fc4d7b0e73a87042f87ab847cfbe60e4d2dddf71 09-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> SBR encoder improvement

SBR encoder: Introduce coupling energy ratio limitation to prevent undesirable SBR band
amplification while decoding.

Bug 9428126

Change-Id: I18a77cd1a178fff7531b490779a29a0df7d993af
/external/aac/libAACenc/src/aacenc_lib.cpp
60a27b7fe5bf2c3b07ae7f679ca67c0c5cba3b00 09-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> Encoder intensity fix

AAC encoder: Prevent illegal intensity values delta coding at short blocks.

Bug 9428126

Change-Id: Ic287b86f3229022740f2317ea74aabe612de5e6b
/external/aac/libAACenc/src/aacenc_lib.cpp
ed247dfa54234c1115c35a05327955b29b161e8a 09-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> Encoder quantizer fix

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
/external/aac/libAACenc/src/aacenc_lib.cpp
577fcbb570d023be4cea9564292dd2bd95f40c3b 09-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> Decode and SYS lib cleanup

* 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
/external/aac/libAACenc/src/aacenc_lib.cpp
4f0d97057c5c640b25518358886f8c47da9fc052 09-Aug-2013 Jean-Michel Trivi <jmtrivi@google.com> Disclaimer update, lib version increment

- Update disclaimer in all source files.
- Increment library version in each FDK sub-module.

Bug 9428126

Change-Id: I490b96d4ee472246b01483202b0bb4f1e9c2a5d7
/external/aac/libAACenc/src/aacenc_lib.cpp
6ab36997af5d5acda4f21d33031f4e45c85f96b7 02-Oct-2012 Jean-Michel Trivi <jmtrivi@google.com> Bug 7170947 Update AAC codec

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
/external/aac/libAACenc/src/aacenc_lib.cpp
381d69840ad3af2259f0b7ef49236f9ee9c76b76 09-Sep-2012 Jean-Michel Trivi <jmtrivi@google.com> Bug fixes in AAC decoder, AAC encoder, FDK library

Latest code drop from Fraunhofer:

* AAC-Decoder

- Expanded AAC-LD/ELD decoder TNS max band tables to avoid wrong data
access for sampling rates <22kHz and >48kHz.
Modified file(s):
libAACdec\src\aacdec_tns.cpp
libAACdec\src\aac_rom.h
libAACdec\src\aac_rom.cpp

- Fixed ELD synthesis QMF filterbank scaling for downsampled SBR.
Modified file(s):
libFDK\src\qmf.cpp

* AAC-Encoder

- Fixed bit rate limiting for lower limit as introduced in the Delivery 2012-05-11.
Modified file(s):
libAACenc\include\aacenc_lib.h
libAACenc\src\aacenc.h
libAACenc\src\aacenc.cpp
libSBRenc\src\sbr_rom.h
libSBRenc\src\sbr_rom.cpp

- Allow negative prediction gain as meaning that there is no coding gain.
Make use of scaleValueSaturate in gauss window calculation.
Modified file(s):
libAACenc\src\aacenc_tns.cpp

- Added energy saturation to prevent overflow in short blocks.
Modified file(s):
libAACenc\src\grp_data.cpp

- Perform scalefactor adaption in case quantized lines are out of valid range.
Modified file(s):
libAACenc\src\quantize.cpp

- Interrupt quantization loop when no spectral data is available.
Adjustments in bitreservoir adaption.
Modified file(s):
libAACenc\src\qc_main.cpp

- Indroduced dynamic scaling in none missing harmonic energy lowering compensation.
Modified file(s):
libSBRenc\src\env_est.cpp

* FDK-Library

- Fixed saturation for negative values in scaleValueSaturate.
Modified file(s):
libFDK\include\scale.h

Change-Id: If830ea65caef6b5554281e4b7a77a8b2e08825ce
/external/aac/libAACenc/src/aacenc_lib.cpp
2228e360595641dd906bf1773307f43d304f5b2e 11-Jul-2012 The Android Open Source Project <initial-contribution@android.com> Snapshot 2bda038c163298531d47394bc2c09e1409c5d0db

Change-Id: If584e579464f28b97d50e51fc76ba654a5536c54
/external/aac/libAACenc/src/aacenc_lib.cpp