diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2013-12-27 16:13:22 -0800 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2013-12-30 09:40:08 -0800 |
commit | 47c680c62246594107da0a8995c953dfb8040bce (patch) | |
tree | 9d9b3691d83d8f99de0c066cb271d41977c13457 /libSBRdec/src | |
parent | fa3eba16446cc8f2f5e2dfc20d86a49dbd37299e (diff) | |
download | fdk-aac-47c680c62246594107da0a8995c953dfb8040bce.tar.gz fdk-aac-47c680c62246594107da0a8995c953dfb8040bce.tar.bz2 fdk-aac-47c680c62246594107da0a8995c953dfb8040bce.zip |
AAC Decoder: support 6.1/7.1 decoded as 5.1
- Add 6.1 and 7.1 channel support including downmixer. Per default the
decoder creates a 5.1 channel output for all streams with more than six
encoded channels.
Modified file(s):
libPCMutils/include/pcmutils_lib.h
libPCMutils/src/pcmutils_lib.cpp
libAACdec/include/aacdecoder_lib.h
libAACdec/src/aac_rom.h
libAACdec/src/aacdecoder.cpp
libAACdec/src/aac_ram.cpp
libAACdec/src/aacdec_drc.cpp
libAACdec/src/aacdecoder_lib.cpp
libAACdec/src/aac_rom.cpp
libAACdec/src/aacdecoder.h
libSBRdec/include/sbrdecoder.h
libSBRdec/src/sbrdec_drc.h
libSBRdec/src/sbrdecoder.cpp
libSBRdec/src/sbr_ram.cpp
libSBRdec/src/sbr_ram.h
libMpegTPDec/include/tp_data.h
libMpegTPDec/include/tpdec_lib.h
libMpegTPDec/src/version
libMpegTPDec/src/tpdec_asc.cpp
libMpegTPEnc/include/tp_data.h
libMpegTPEnc/src/version
libSYS/include/FDK_audio.h
libSYS/src/genericStds.cpp
- Fix error concealment modules fade-out/in mechanism.
Modified file(s):
libAACdec/src/conceal.cpp
Bug 9428126
Change-Id: I3230bd2072314b730911cd7ec1740e290cb1d254
Diffstat (limited to 'libSBRdec/src')
-rw-r--r-- | libSBRdec/src/sbr_ram.cpp | 14 | ||||
-rw-r--r-- | libSBRdec/src/sbr_ram.h | 4 | ||||
-rw-r--r-- | libSBRdec/src/sbrdec_drc.h | 2 | ||||
-rw-r--r-- | libSBRdec/src/sbrdecoder.cpp | 16 |
4 files changed, 18 insertions, 18 deletions
diff --git a/libSBRdec/src/sbr_ram.cpp b/libSBRdec/src/sbr_ram.cpp index 6ae941f..c1c2499 100644 --- a/libSBRdec/src/sbr_ram.cpp +++ b/libSBRdec/src/sbr_ram.cpp @@ -107,19 +107,19 @@ amm-info@iis.fraunhofer.de /*! SBR Decoder main structure */ C_ALLOC_MEM(Ram_SbrDecoder, struct SBR_DECODER_INSTANCE, 1) /*! SBR Decoder element data <br> - Dimension: (4) */ -C_ALLOC_MEM2(Ram_SbrDecElement, SBR_DECODER_ELEMENT, 1, (4)) + Dimension: (8) */ +C_ALLOC_MEM2(Ram_SbrDecElement, SBR_DECODER_ELEMENT, 1, (8)) /*! SBR Decoder individual channel data <br> - Dimension: (6) */ -C_ALLOC_MEM2(Ram_SbrDecChannel, SBR_CHANNEL, 1, (6)+1) + Dimension: (8) */ +C_ALLOC_MEM2(Ram_SbrDecChannel, SBR_CHANNEL, 1, (8)+1) /*! Filter states for QMF-synthesis. <br> - Dimension: #(6) * (#QMF_FILTER_STATE_SYN_SIZE-#(64)) */ -C_AALLOC_MEM2_L(Ram_sbr_QmfStatesSynthesis, FIXP_QSS, (640)-(64), (6)+1, SECT_DATA_L1) + Dimension: #(8) * (#QMF_FILTER_STATE_SYN_SIZE-#(64)) */ +C_AALLOC_MEM2_L(Ram_sbr_QmfStatesSynthesis, FIXP_QSS, (640)-(64), (8)+1, SECT_DATA_L1) /*! Delayed spectral data needed for the dynamic framing of SBR. For mp3PRO, 1/3 of a frame is buffered (#(6) 6) */ -C_AALLOC_MEM2(Ram_sbr_OverlapBuffer, FIXP_DBL, 2 * (6) * (64), (6)+1) +C_AALLOC_MEM2(Ram_sbr_OverlapBuffer, FIXP_DBL, 2 * (6) * (64), (8)+1) /*! Static Data of PS */ diff --git a/libSBRdec/src/sbr_ram.h b/libSBRdec/src/sbr_ram.h index 8fc2dae..f12631d 100644 --- a/libSBRdec/src/sbr_ram.h +++ b/libSBRdec/src/sbr_ram.h @@ -118,8 +118,8 @@ typedef struct struct SBR_DECODER_INSTANCE { - SBR_DECODER_ELEMENT *pSbrElement[(4)]; - SBR_HEADER_DATA sbrHeader[(4)][(1)+1]; /* Sbr header for each individual channel of an element */ + SBR_DECODER_ELEMENT *pSbrElement[(8)]; + SBR_HEADER_DATA sbrHeader[(8)][(1)+1]; /* Sbr header for each individual channel of an element */ FIXP_DBL *workBuffer1; FIXP_DBL *workBuffer2; diff --git a/libSBRdec/src/sbrdec_drc.h b/libSBRdec/src/sbrdec_drc.h index 872c6a0..7eed53a 100644 --- a/libSBRdec/src/sbrdec_drc.h +++ b/libSBRdec/src/sbrdec_drc.h @@ -95,7 +95,7 @@ amm-info@iis.fraunhofer.de -#define SBRDEC_MAX_DRC_CHANNELS (6) +#define SBRDEC_MAX_DRC_CHANNELS (8) #define SBRDEC_MAX_DRC_BANDS ( 16 ) typedef struct diff --git a/libSBRdec/src/sbrdecoder.cpp b/libSBRdec/src/sbrdecoder.cpp index 26b2ea2..5734020 100644 --- a/libSBRdec/src/sbrdecoder.cpp +++ b/libSBRdec/src/sbrdecoder.cpp @@ -137,7 +137,7 @@ amm-info@iis.fraunhofer.de /* Decoder library info */ #define SBRDECODER_LIB_VL0 2 #define SBRDECODER_LIB_VL1 2 -#define SBRDECODER_LIB_VL2 3 +#define SBRDECODER_LIB_VL2 4 #define SBRDECODER_LIB_TITLE "SBR Decoder" #define SBRDECODER_LIB_BUILD_DATE __DATE__ #define SBRDECODER_LIB_BUILD_TIME __TIME__ @@ -428,7 +428,7 @@ SBR_ERROR sbrDecoder_InitElement ( int nSbrElementsStart = self->numSbrElements; /* Check core codec AOT */ - if (! sbrDecoder_isCoreCodecValid(coreCodec) || elementIndex >= (4)) { + if (! sbrDecoder_isCoreCodecValid(coreCodec) || elementIndex >= (8)) { sbrError = SBRDEC_UNSUPPORTED_CONFIG; goto bail; } @@ -615,7 +615,7 @@ INT sbrDecoder_Header ( SBR_ERROR sbrError = SBRDEC_OK; int headerIndex; - if ( self == NULL || elementIndex > (4) ) + if ( self == NULL || elementIndex > (8) ) { return SBRDEC_UNSUPPORTED_CONFIG; } @@ -767,7 +767,7 @@ SBRDEC_DRC_CHANNEL * sbrDecoder_drcGetChannel( const HANDLE_SBRDECODER self, con SBRDEC_DRC_CHANNEL *pSbrDrcChannelData = NULL; int elementIndex, elChanIdx=0, numCh=0; - for (elementIndex = 0; (elementIndex < (4)) && (numCh <= channel); elementIndex++) + for (elementIndex = 0; (elementIndex < (8)) && (numCh <= channel); elementIndex++) { SBR_DECODER_ELEMENT *pSbrElement = self->pSbrElement[elementIndex]; int c, elChannels; @@ -829,7 +829,7 @@ SBR_ERROR sbrDecoder_drcFeedChannel ( HANDLE_SBRDECODER self, if (self == NULL) { return SBRDEC_NOT_INITIALIZED; } - if (ch > (6) || pNextFact_mag == NULL) { + if (ch > (8) || pNextFact_mag == NULL) { return SBRDEC_SET_PARAM_FAIL; } @@ -874,7 +874,7 @@ void sbrDecoder_drcDisable ( HANDLE_SBRDECODER self, SBRDEC_DRC_CHANNEL *pSbrDrcChannelData = NULL; if ( (self == NULL) - || (ch > (6)) + || (ch > (8)) || (self->numSbrElements == 0) || (self->numSbrChannels == 0) ) { return; @@ -1375,7 +1375,7 @@ SBR_ERROR sbrDecoder_Apply ( HANDLE_SBRDECODER self, INT_PCM *timeData, int *numChannels, int *sampleRate, - const UCHAR channelMapping[(6)], + const UCHAR channelMapping[(8)], const int interleaved, const int coreDecodedOk, UCHAR *psDecoded ) @@ -1496,7 +1496,7 @@ SBR_ERROR sbrDecoder_Close ( HANDLE_SBRDECODER *pSelf ) FreeRam_SbrDecWorkBuffer2(&self->workBuffer2); } - for (i = 0; i < (4); i++) { + for (i = 0; i < (8); i++) { sbrDecoder_DestroyElement( self, i ); } |