aboutsummaryrefslogtreecommitdiffstats
path: root/libAACenc/include
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2016-04-04 16:06:48 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2016-04-04 17:25:36 -0700
commite1c78ed73faa51f2c7fcb0c4a17a92be9cc747f5 (patch)
treea8dc54ef8dba931c72627e7bbebf1844b81a31f7 /libAACenc/include
parentef30836651bf059c3120c03dd11e08b6aafdae13 (diff)
downloadfdk-aac-e1c78ed73faa51f2c7fcb0c4a17a92be9cc747f5.tar.gz
fdk-aac-e1c78ed73faa51f2c7fcb0c4a17a92be9cc747f5.tar.bz2
fdk-aac-e1c78ed73faa51f2c7fcb0c4a17a92be9cc747f5.zip
SBR/AAC encoder updates, code clean up
* SBR-Encoder - Prevent noise level overflow in noise floor detection. - Saturate threshold calculation in transient detection. Modified file(s): libSBRenc/src/nf_est.cpp libSBRenc/src/sbr_encoder.cpp libSBRenc/src/tran_det.cpp * AAC-Encoder - Expand input data range of GetInvInt() function. There was an encoder assert observed in non-default bitrate configuration. Modified file(s): libAACenc/src/aacenc_lib.cpp libAACenc/src/intensity.cpp libFDK/include/fixpoint_math.h libFDK/src/FDK_core.cpp libFDK/src/FDK_tools_rom.cpp - Make sure that the encoder is stable with regard to very low audio bandwidth confguration parameter value. - Fix lowdelay blending for low audio bandwidth. Modified file(s): libAACenc/src/aacenc.cpp libAACenc/src/aacenc_lib.cpp libAACenc/src/adj_thr.cpp libAACenc/src/psy_configuration.cpp libAACenc/src/psy_main.cpp - Disable pseudo surround flag in case metadata matrix mixdown index is present in program config element. Modified file(s): libAACenc/src/aacenc_lib.cpp - Enable variable bitrate mode in encoder api. - Add AACENC_PEAK_BITRATE parameter to encoder api. - Add AACENC_AUDIOMUXVER parameter to encoder api. Modified file(s): libAACenc/include/aacenc_lib.h libAACenc/src/aacenc.cpp libAACenc/src/aacenc.h libAACenc/src/aacenc_lib.cpp libAACenc/src/qc_main.cpp libMpegTPEnc/src/tpenc_latm.cpp libMpegTPEnc/src/version * FDK-Sources - Code clean up. Remove unneeded pseudo audio object types and transport types. Modified file(s): libAACdec/src/aacdecoder.cpp libAACdec/src/aacdecoder_lib.cpp libAACenc/include/aacenc_lib.h libAACenc/src/aacenc.cpp libAACenc/src/aacenc_lib.cpp libFDK/src/FDK_tools_rom.cpp libMpegTPDec/src/tpdec_lib.cpp libMpegTPDec/src/version libMpegTPEnc/src/tpenc_latm.cpp libMpegTPEnc/src/version libSBRdec/src/sbrdecoder.cpp libSBRenc/src/sbr_encoder.cpp libSYS/include/FDK_audio.h libSYS/src/genericStds.cpp Change-Id: I807a53cb7f48c9ee7563cb8da1d0c52221576ca6
Diffstat (limited to 'libAACenc/include')
-rw-r--r--libAACenc/include/aacenc_lib.h23
1 files changed, 17 insertions, 6 deletions
diff --git a/libAACenc/include/aacenc_lib.h b/libAACenc/include/aacenc_lib.h
index 8c0e1cd..828a917 100644
--- a/libAACenc/include/aacenc_lib.h
+++ b/libAACenc/include/aacenc_lib.h
@@ -2,7 +2,7 @@
/* -----------------------------------------------------------------------------------------------------------
Software License for The Fraunhofer FDK AAC Codec Library for Android
-© Copyright 1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
+© Copyright 1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
All rights reserved.
1. INTRODUCTION
@@ -897,11 +897,7 @@ typedef enum
This configuration can be used only with stereo input audio data.
- 23: MPEG-4 AAC Low-Delay.
- 39: MPEG-4 AAC Enhanced Low-Delay. Since there is no ::AUDIO_OBJECT_TYPE for ELD in
- combination with SBR defined, enable SBR explicitely by ::AACENC_SBR_MODE parameter.
- - 129: MPEG-2 AAC Low Complexity.
- - 132: MPEG-2 AAC Low Complexity with Spectral Band Replication (HE-AAC).
- - 156: MPEG-2 AAC Low Complexity with Spectral Band Replication and Parametric Stereo (HE-AAC v2).
- This configuration can be used only with stereo input audio data. */
+ combination with SBR defined, enable SBR explicitely by ::AACENC_SBR_MODE parameter. */
AACENC_BITRATE = 0x0101, /*!< Total encoder bitrate. This parameter is mandatory and interacts with ::AACENC_BITRATEMODE.
- CBR: Bitrate in bits/second.
@@ -958,6 +954,16 @@ typedef enum
- 1 to fs/2: Frequency bandwidth in Hertz. (Experts only, better do not
touch this value to avoid degraded audio quality) */
+ AACENC_PEAK_BITRATE = 0x0207, /*!< Peak bitrate configuration parameter to adjust maximum bits per audio frame. Bitrate is in bits/second.
+ The peak bitrate will internally be limited to the chosen bitrate ::AACENC_BITRATE as lower limit
+ and the number_of_effective_channels*6144 bit as upper limit.
+
+ Setting the peak bitrate equal to ::AACENC_BITRATE does not necessarily mean that the audio frames
+ will be of constant size. Since the peak bitate is in bits/second, the frame sizes can vary by
+ one byte in one or the other direction over various frames. However, it is not recommended to reduce
+ the peak pitrate to ::AACENC_BITRATE - it would disable the bitreservoir, which would affect the
+ audio quality by a large amount. */
+
AACENC_TRANSMUX = 0x0300, /*!< Transport type to be used. See ::TRANSPORT_TYPE in FDK_audio.h. Following
types can be configured in encoder library:
- 0: raw access units
@@ -1023,6 +1029,11 @@ typedef enum
- ADTS: Maximum number of sub frames restricted to 4.
- LOAS/LATM: Maximum number of sub frames restricted to 2.*/
+ AACENC_AUDIOMUXVER = 0x0304, /*!< AudioMuxVersion to be used for LATM. (AudioMuxVersionA, currently not implemented):
+ - 0: Default, no transmission of tara Buffer fullness, no ASC length and including actual latm Buffer fullnes.
+ - 1: Transmission of tara Buffer fullness, ASC length and actual latm Buffer fullness.
+ - 2: Transmission of tara Buffer fullness, ASC length and maximum level of latm Buffer fullness. */
+
AACENC_PROTECTION = 0x0306, /*!< Configure protection in tranpsort layer:
- 0: No protection. (default)
- 1: CRC active for ADTS bitstream format. */