aboutsummaryrefslogtreecommitdiffstats
path: root/libAACenc/include
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2013-08-29 16:05:22 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2013-09-03 14:19:38 -0700
commitfa3eba16446cc8f2f5e2dfc20d86a49dbd37299e (patch)
tree287cfbd64295aa61b5e6534d5e28797c0a04ccd8 /libAACenc/include
parent9f455bea1c38f7275a65ab79be2d41a34428fb8b (diff)
downloadfdk-aac-fa3eba16446cc8f2f5e2dfc20d86a49dbd37299e.tar.gz
fdk-aac-fa3eba16446cc8f2f5e2dfc20d86a49dbd37299e.tar.bz2
fdk-aac-fa3eba16446cc8f2f5e2dfc20d86a49dbd37299e.zip
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
Diffstat (limited to 'libAACenc/include')
-rw-r--r--libAACenc/include/aacenc_lib.h50
1 files changed, 29 insertions, 21 deletions
diff --git a/libAACenc/include/aacenc_lib.h b/libAACenc/include/aacenc_lib.h
index f693bf5..8c0e1cd 100644
--- a/libAACenc/include/aacenc_lib.h
+++ b/libAACenc/include/aacenc_lib.h
@@ -377,16 +377,20 @@ For user defined Configurations the Channel Configuration is set to 0 and the Ch
Program Config Element. The present Encoder implementation does not allow the user to configure this Channel Configuration from
extern. The Encoder implementation supports fixed Channel Modes which are mapped to Channel Configuration as follow.
\verbatim
---------------------------------------------------------------------
- ChannelMode | ChCfg | front_El | side_El | back_El | lfe_El
------------------+--------+----------+----------+----------+--------
-MODE_1 | 1 | SCE | | |
-MODE_2 | 2 | CPE | | |
-MODE_1_2 | 3 | SCE, CPE | | |
-MODE_1_2_1 | 4 | SCE, CPE | | SCE |
-MODE_1_2_2 | 5 | SCE, CPE | | CPE |
-MODE_1_2_2_1 | 6 | SCE, CPE | | CPE | LFE
---------------------------------------------------------------------
+-------------------------------------------------------------------------------
+ ChannelMode | ChCfg | front_El | side_El | back_El | lfe_El
+-----------------------+--------+---------------+----------+----------+--------
+MODE_1 | 1 | SCE | | |
+MODE_2 | 2 | CPE | | |
+MODE_1_2 | 3 | SCE, CPE | | |
+MODE_1_2_1 | 4 | SCE, CPE | | SCE |
+MODE_1_2_2 | 5 | SCE, CPE | | CPE |
+MODE_1_2_2_1 | 6 | SCE, CPE | | CPE | LFE
+MODE_1_2_2_2_1 | 7 | SCE, CPE, CPE | | CPE | LFE
+-----------------------+--------+---------------+----------+----------+--------
+MODE_7_1_REAR_SURROUND | 0 | SCE, CPE | | CPE, CPE | LFE
+MODE_7_1_FRONT_CENTER | 0 | SCE, CPE, CPE | | CPE | LFE
+-------------------------------------------------------------------------------
- SCE: Single Channel Element.
- CPE: Channel Pair.
- SCE: Low Frequency Element.
@@ -402,16 +406,20 @@ Beside the Channel Element assignment the Channel Modes are resposible for audio
of the audio data depends on the selected ::AACENC_CHANNELORDER which can be MPEG or WAV like order.\n
Following Table describes the complete channel mapping for both Channel Order configurations.
\verbatim
----------------------------------------------------------------------------------
-ChannelMode | MPEG-Channelorder | WAV-Channelorder
------------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
-MODE_1 | 0 | | | | | | | | 0 | | | | | | |
-MODE_2 | 0 | 1 | | | | | | | 0 | 1 | | | | | |
-MODE_1_2 | 0 | 1 | 2 | | | | | | 2 | 0 | 1 | | | | |
-MODE_1_2_1 | 0 | 1 | 2 | 3 | | | | | 2 | 0 | 1 | 3 | | | |
-MODE_1_2_2 | 0 | 1 | 2 | 3 | 4 | | | | 2 | 0 | 1 | 3 | 4 | | |
-MODE_1_2_2_1 | 0 | 1 | 2 | 3 | 4 | 5 | | | 2 | 0 | 1 | 4 | 5 | 3 | |
----------------------------------------------------------------------------------
+---------------------------------------------------------------------------------------
+ChannelMode | MPEG-Channelorder | WAV-Channelorder
+-----------------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
+MODE_1 | 0 | | | | | | | | 0 | | | | | | |
+MODE_2 | 0 | 1 | | | | | | | 0 | 1 | | | | | |
+MODE_1_2 | 0 | 1 | 2 | | | | | | 2 | 0 | 1 | | | | |
+MODE_1_2_1 | 0 | 1 | 2 | 3 | | | | | 2 | 0 | 1 | 3 | | | |
+MODE_1_2_2 | 0 | 1 | 2 | 3 | 4 | | | | 2 | 0 | 1 | 3 | 4 | | |
+MODE_1_2_2_1 | 0 | 1 | 2 | 3 | 4 | 5 | | | 2 | 0 | 1 | 4 | 5 | 3 | |
+MODE_1_2_2_2_1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 2 | 6 | 7 | 0 | 1 | 4 | 5 | 3
+-----------------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
+MODE_7_1_REAR_SURROUND | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 2 | 0 | 1 | 6 | 7 | 4 | 5 | 3
+MODE_7_1_FRONT_CENTER | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 2 | 6 | 7 | 0 | 1 | 4 | 5 | 3
+---------------------------------------------------------------------------------------
\endverbatim
The denoted mapping is important for correct audio channel assignment when using MPEG or WAV ordering. The incoming audio
@@ -920,7 +928,7 @@ typedef enum
- 480: Optional length in LD/ELD configuration. */
AACENC_CHANNELMODE = 0x0106, /*!< Set explicit channel mode. Channel mode must match with number of input channels.
- - 1-6: MPEG channel modes supported, see ::CHANNEL_MODE in FDK_audio.h. */
+ - 1-7 and 33,34: MPEG channel modes supported, see ::CHANNEL_MODE in FDK_audio.h. */
AACENC_CHANNELORDER = 0x0107, /*!< Input audio data channel ordering scheme:
- 0: MPEG channel ordering (e. g. 5.1: C, L, R, SL, SR, LFE). (default)