aboutsummaryrefslogtreecommitdiffstats
path: root/libSBRenc
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 /libSBRenc
parent9f455bea1c38f7275a65ab79be2d41a34428fb8b (diff)
downloadfdk-aac-dabplus-fa3eba16446cc8f2f5e2dfc20d86a49dbd37299e.tar.gz
fdk-aac-dabplus-fa3eba16446cc8f2f5e2dfc20d86a49dbd37299e.tar.bz2
fdk-aac-dabplus-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 'libSBRenc')
-rw-r--r--libSBRenc/include/sbr_encoder.h6
-rw-r--r--libSBRenc/src/sbr.h6
-rw-r--r--libSBRenc/src/sbr_encoder.cpp16
-rw-r--r--libSBRenc/src/sbr_ram.cpp30
4 files changed, 29 insertions, 29 deletions
diff --git a/libSBRenc/include/sbr_encoder.h b/libSBRenc/include/sbr_encoder.h
index 9d59ac7..93dc46d 100644
--- a/libSBRenc/include/sbr_encoder.h
+++ b/libSBRenc/include/sbr_encoder.h
@@ -324,7 +324,7 @@ UINT sbrEncoder_IsSingleRatePossible(AUDIO_OBJECT_TYPE aot);
*/
INT sbrEncoder_Init(
HANDLE_SBR_ENCODER hSbrEncoder,
- SBR_ELEMENT_INFO elInfo[(6)],
+ SBR_ELEMENT_INFO elInfo[(8)],
int noElements,
INT_PCM *inputBuffer,
INT *coreBandwidth,
@@ -369,8 +369,8 @@ void sbrEncoder_Close(HANDLE_SBR_ENCODER *phEbrEncoder);
INT sbrEncoder_EncodeFrame(HANDLE_SBR_ENCODER hEnvEncoder,
INT_PCM *samples,
UINT timeInStride,
- UINT sbrDataBits[(6)],
- UCHAR sbrData[(6)][MAX_PAYLOAD_SIZE]
+ UINT sbrDataBits[(8)],
+ UCHAR sbrData[(8)][MAX_PAYLOAD_SIZE]
);
/**
diff --git a/libSBRenc/src/sbr.h b/libSBRenc/src/sbr.h
index cfc595e..c74ad2a 100644
--- a/libSBRenc/src/sbr.h
+++ b/libSBRenc/src/sbr.h
@@ -131,9 +131,9 @@ typedef struct SBR_ELEMENT {
typedef struct SBR_ENCODER
{
- HANDLE_SBR_ELEMENT sbrElement[(6)];
- HANDLE_SBR_CHANNEL pSbrChannel[(6)];
- QMF_FILTER_BANK QmfAnalysis[(6)];
+ HANDLE_SBR_ELEMENT sbrElement[(8)];
+ HANDLE_SBR_CHANNEL pSbrChannel[(8)];
+ QMF_FILTER_BANK QmfAnalysis[(8)];
DOWNSAMPLER lfeDownSampler;
int lfeChIdx; /* -1 default for no lfe, else assign channel index */
int noElements; /* Number of elements */
diff --git a/libSBRenc/src/sbr_encoder.cpp b/libSBRenc/src/sbr_encoder.cpp
index 2d5bce2..3e95d6b 100644
--- a/libSBRenc/src/sbr_encoder.cpp
+++ b/libSBRenc/src/sbr_encoder.cpp
@@ -103,7 +103,7 @@ amm-info@iis.fraunhofer.de
#define SBRENCODER_LIB_VL0 3
#define SBRENCODER_LIB_VL1 3
-#define SBRENCODER_LIB_VL2 3
+#define SBRENCODER_LIB_VL2 4
@@ -653,7 +653,7 @@ void sbrEncoder_Close (HANDLE_SBR_ENCODER *phSbrEncoder)
{
int el, ch;
- for (el=0; el<(6); el++)
+ for (el=0; el<(8); el++)
{
if (hSbrEncoder->sbrElement[el]!=NULL) {
sbrEncoder_ElementClose(&hSbrEncoder->sbrElement[el]);
@@ -661,7 +661,7 @@ void sbrEncoder_Close (HANDLE_SBR_ENCODER *phSbrEncoder)
}
/* Close sbr Channels */
- for (ch=0; ch<(6); ch++)
+ for (ch=0; ch<(8); ch++)
{
if (hSbrEncoder->pSbrChannel[ch]) {
sbrEncoder_ChannelClose(hSbrEncoder->pSbrChannel[ch]);
@@ -1468,7 +1468,7 @@ bail:
static
INT FDKsbrEnc_Reallocate(
HANDLE_SBR_ENCODER hSbrEncoder,
- SBR_ELEMENT_INFO elInfo[(6)],
+ SBR_ELEMENT_INFO elInfo[(8)],
const INT noElements)
{
INT totalCh = 0;
@@ -1806,7 +1806,7 @@ UINT sbrEncoder_IsSingleRatePossible(AUDIO_OBJECT_TYPE aot)
INT sbrEncoder_Init(
HANDLE_SBR_ENCODER hSbrEncoder,
- SBR_ELEMENT_INFO elInfo[(6)],
+ SBR_ELEMENT_INFO elInfo[(8)],
int noElements,
INT_PCM *inputBuffer,
INT *coreBandwidth,
@@ -1823,7 +1823,7 @@ INT sbrEncoder_Init(
)
{
HANDLE_ERROR_INFO errorInfo = noError;
- sbrConfiguration sbrConfig[(6)];
+ sbrConfiguration sbrConfig[(8)];
INT error = 0;
INT lowestBandwidth;
/* Save input parameters */
@@ -2211,8 +2211,8 @@ INT
sbrEncoder_EncodeFrame( HANDLE_SBR_ENCODER hSbrEncoder,
INT_PCM *samples,
UINT timeInStride,
- UINT sbrDataBits[(6)],
- UCHAR sbrData[(6)][MAX_PAYLOAD_SIZE]
+ UINT sbrDataBits[(8)],
+ UCHAR sbrData[(8)][MAX_PAYLOAD_SIZE]
)
{
INT error;
diff --git a/libSBRenc/src/sbr_ram.cpp b/libSBRenc/src/sbr_ram.cpp
index 3b99d09..ee6c37f 100644
--- a/libSBRenc/src/sbr_ram.cpp
+++ b/libSBRenc/src/sbr_ram.cpp
@@ -107,39 +107,39 @@ C_ALLOC_MEM (Ram_SbrDynamic_RAM, FIXP_DBL, ((SBR_ENC_DYN_RAM_SIZE)/sizeof(FIXP_D
in module sbr_ram and sbr rom
*/
C_ALLOC_MEM (Ram_SbrEncoder, SBR_ENCODER, 1)
-C_ALLOC_MEM2(Ram_SbrChannel, SBR_CHANNEL, 1, (6))
-C_ALLOC_MEM2(Ram_SbrElement, SBR_ELEMENT, 1, (6))
+C_ALLOC_MEM2(Ram_SbrChannel, SBR_CHANNEL, 1, (8))
+C_ALLOC_MEM2(Ram_SbrElement, SBR_ELEMENT, 1, (8))
/*! Filter states for QMF-analysis. <br>
Dimension: #MAXNRSBRCHANNELS * #SBR_QMF_FILTER_LENGTH
*/
-C_AALLOC_MEM2_L (Ram_Sbr_QmfStatesAnalysis, FIXP_QAS, QMF_FILTER_LENGTH, (6), SECT_DATA_L1)
+C_AALLOC_MEM2_L (Ram_Sbr_QmfStatesAnalysis, FIXP_QAS, QMF_FILTER_LENGTH, (8), SECT_DATA_L1)
/*! Matrix holding the quota values for all estimates, all channels
Dimension #MAXNRSBRCHANNELS * +#SBR_QMF_CHANNELS* #MAX_NO_OF_ESTIMATES
*/
-C_ALLOC_MEM2_L (Ram_Sbr_quotaMatrix, FIXP_DBL, (MAX_NO_OF_ESTIMATES*QMF_CHANNELS), (6), SECT_DATA_L1)
+C_ALLOC_MEM2_L (Ram_Sbr_quotaMatrix, FIXP_DBL, (MAX_NO_OF_ESTIMATES*QMF_CHANNELS), (8), SECT_DATA_L1)
/*! Matrix holding the sign values for all estimates, all channels
Dimension #MAXNRSBRCHANNELS * +#SBR_QMF_CHANNELS* #MAX_NO_OF_ESTIMATES
*/
-C_ALLOC_MEM2 (Ram_Sbr_signMatrix, INT, (MAX_NO_OF_ESTIMATES*QMF_CHANNELS), (6))
+C_ALLOC_MEM2 (Ram_Sbr_signMatrix, INT, (MAX_NO_OF_ESTIMATES*QMF_CHANNELS), (8))
/*! Frequency band table (low res) <br>
Dimension #MAX_FREQ_COEFFS/2+1
*/
-C_ALLOC_MEM2 (Ram_Sbr_freqBandTableLO, UCHAR, (MAX_FREQ_COEFFS/2+1), (6))
+C_ALLOC_MEM2 (Ram_Sbr_freqBandTableLO, UCHAR, (MAX_FREQ_COEFFS/2+1), (8))
/*! Frequency band table (high res) <br>
Dimension #MAX_FREQ_COEFFS +1
*/
-C_ALLOC_MEM2 (Ram_Sbr_freqBandTableHI, UCHAR, (MAX_FREQ_COEFFS+1), (6))
+C_ALLOC_MEM2 (Ram_Sbr_freqBandTableHI, UCHAR, (MAX_FREQ_COEFFS+1), (8))
/*! vk matser table <br>
Dimension #MAX_FREQ_COEFFS +1
*/
-C_ALLOC_MEM2 (Ram_Sbr_v_k_master, UCHAR, (MAX_FREQ_COEFFS+1), (6))
+C_ALLOC_MEM2 (Ram_Sbr_v_k_master, UCHAR, (MAX_FREQ_COEFFS+1), (8))
/*
@@ -149,23 +149,23 @@ C_ALLOC_MEM2 (Ram_Sbr_v_k_master, UCHAR, (MAX_FREQ_COEFFS+1), (6))
/*! sbr_detectionVectors <br>
Dimension #MAX_NUM_CHANNELS*#MAX_NO_OF_ESTIMATES*#MAX_FREQ_COEFFS]
*/
-C_ALLOC_MEM2 (Ram_Sbr_detectionVectors, UCHAR, (MAX_NO_OF_ESTIMATES*MAX_FREQ_COEFFS), (6))
+C_ALLOC_MEM2 (Ram_Sbr_detectionVectors, UCHAR, (MAX_NO_OF_ESTIMATES*MAX_FREQ_COEFFS), (8))
/*! sbr_prevCompVec[ <br>
Dimension #MAX_NUM_CHANNELS*#MAX_FREQ_COEFFS]
*/
-C_ALLOC_MEM2 (Ram_Sbr_prevEnvelopeCompensation, UCHAR, MAX_FREQ_COEFFS, (6))
+C_ALLOC_MEM2 (Ram_Sbr_prevEnvelopeCompensation, UCHAR, MAX_FREQ_COEFFS, (8))
/*! sbr_guideScfb[ <br>
Dimension #MAX_NUM_CHANNELS*#MAX_FREQ_COEFFS]
*/
-C_ALLOC_MEM2 (Ram_Sbr_guideScfb, UCHAR, MAX_FREQ_COEFFS, (6))
+C_ALLOC_MEM2 (Ram_Sbr_guideScfb, UCHAR, MAX_FREQ_COEFFS, (8))
/*! sbr_guideVectorDetected <br>
Dimension #MAX_NUM_CHANNELS*#MAX_NO_OF_ESTIMATES*#MAX_FREQ_COEFFS]
*/
-C_ALLOC_MEM2 (Ram_Sbr_guideVectorDetected, UCHAR, (MAX_NO_OF_ESTIMATES*MAX_FREQ_COEFFS), (6))
-C_ALLOC_MEM2 (Ram_Sbr_guideVectorDiff, FIXP_DBL, (MAX_NO_OF_ESTIMATES*MAX_FREQ_COEFFS), (6))
-C_ALLOC_MEM2 (Ram_Sbr_guideVectorOrig, FIXP_DBL, (MAX_NO_OF_ESTIMATES*MAX_FREQ_COEFFS), (6))
+C_ALLOC_MEM2 (Ram_Sbr_guideVectorDetected, UCHAR, (MAX_NO_OF_ESTIMATES*MAX_FREQ_COEFFS), (8))
+C_ALLOC_MEM2 (Ram_Sbr_guideVectorDiff, FIXP_DBL, (MAX_NO_OF_ESTIMATES*MAX_FREQ_COEFFS), (8))
+C_ALLOC_MEM2 (Ram_Sbr_guideVectorOrig, FIXP_DBL, (MAX_NO_OF_ESTIMATES*MAX_FREQ_COEFFS), (8))
/*
Static Parametric Stereo memory
@@ -191,7 +191,7 @@ C_ALLOC_MEM (Ram_ParamStereo, PARAMETRIC_STEREO, 1)
/*! Energy buffer for envelope extraction <br>
Dimension #MAXNRSBRCHANNELS * +#SBR_QMF_SLOTS * #SBR_QMF_CHANNELS
*/
- C_ALLOC_MEM2 (Ram_Sbr_envYBuffer, FIXP_DBL, (QMF_MAX_TIME_SLOTS/2 * QMF_CHANNELS), (6))
+ C_ALLOC_MEM2 (Ram_Sbr_envYBuffer, FIXP_DBL, (QMF_MAX_TIME_SLOTS/2 * QMF_CHANNELS), (8))
FIXP_DBL* GetRam_Sbr_envYBuffer (int n, UCHAR* dynamic_RAM) {
FDK_ASSERT(dynamic_RAM!=0);