mirror of
https://github.com/mstorsjo/fdk-aac.git
synced 2025-06-05 22:39:13 +02:00
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
This commit is contained in:
@@ -146,12 +146,15 @@ typedef struct
|
||||
|
||||
UCHAR FrontElementIsCpe[PC_FSB_CHANNELS_MAX];
|
||||
UCHAR FrontElementTagSelect[PC_FSB_CHANNELS_MAX];
|
||||
UCHAR FrontElementHeightInfo[PC_FSB_CHANNELS_MAX];
|
||||
|
||||
UCHAR SideElementIsCpe[PC_FSB_CHANNELS_MAX];
|
||||
UCHAR SideElementTagSelect[PC_FSB_CHANNELS_MAX];
|
||||
UCHAR SideElementHeightInfo[PC_FSB_CHANNELS_MAX];
|
||||
|
||||
UCHAR BackElementIsCpe[PC_FSB_CHANNELS_MAX];
|
||||
UCHAR BackElementTagSelect[PC_FSB_CHANNELS_MAX];
|
||||
UCHAR BackElementHeightInfo[PC_FSB_CHANNELS_MAX];
|
||||
|
||||
UCHAR LfeElementTagSelect[PC_LFE_CHANNELS_MAX];
|
||||
|
||||
@@ -324,16 +327,23 @@ int getSamplingRateIndex( UINT samplingRate )
|
||||
*/
|
||||
static inline int getNumberOfTotalChannels(int channelConfig)
|
||||
{
|
||||
if (channelConfig > 0 && channelConfig < 8)
|
||||
return (channelConfig == 7)?8:channelConfig;
|
||||
else
|
||||
switch (channelConfig) {
|
||||
case 1: case 2: case 3:
|
||||
case 4: case 5: case 6:
|
||||
return channelConfig;
|
||||
case 7: case 12: case 14:
|
||||
return 8;
|
||||
case 11:
|
||||
return 7;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static inline
|
||||
int getNumberOfEffectiveChannels(const int channelConfig)
|
||||
{
|
||||
const int n[] = {0,1,2,3,4,5,5,7};
|
||||
{ /* index: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 */
|
||||
const int n[] = {0,1,2,3,4,5,5,7,0,0, 0, 6, 7, 0, 7, 0};
|
||||
return n[channelConfig];
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user