aboutsummaryrefslogtreecommitdiffstats
path: root/libAACdec/src/aacdecoder_lib.cpp
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2023-10-06 15:19:55 +0300
committerMartin Storsjo <martin@martin.st>2023-10-06 15:19:55 +0300
commit0f91e9ba6061a1ff927be6c5cc9b24587eb8c181 (patch)
treef41005e322ecc4c6538f2a0223ffdac107b7e0b3 /libAACdec/src/aacdecoder_lib.cpp
parent0bfca3e06a098811a4cb71f285aa4e14e8f81372 (diff)
parent5543791bdc52c6de2f7274b8d5def73996e6d097 (diff)
downloadfdk-aac-0f91e9ba6061a1ff927be6c5cc9b24587eb8c181.tar.gz
fdk-aac-0f91e9ba6061a1ff927be6c5cc9b24587eb8c181.tar.bz2
fdk-aac-0f91e9ba6061a1ff927be6c5cc9b24587eb8c181.zip
Merge remote-tracking branch 'aosp/main'
Diffstat (limited to 'libAACdec/src/aacdecoder_lib.cpp')
-rw-r--r--libAACdec/src/aacdecoder_lib.cpp35
1 files changed, 9 insertions, 26 deletions
diff --git a/libAACdec/src/aacdecoder_lib.cpp b/libAACdec/src/aacdecoder_lib.cpp
index b3b1dbf..5319b7c 100644
--- a/libAACdec/src/aacdecoder_lib.cpp
+++ b/libAACdec/src/aacdecoder_lib.cpp
@@ -1,7 +1,7 @@
/* -----------------------------------------------------------------------------
Software License for The Fraunhofer FDK AAC Codec Library for Android
-© Copyright 1995 - 2021 Fraunhofer-Gesellschaft zur Förderung der angewandten
+© Copyright 1995 - 2023 Fraunhofer-Gesellschaft zur Förderung der angewandten
Forschung e.V. All rights reserved.
1. INTRODUCTION
@@ -1683,7 +1683,7 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
{
if ((FDK_drcDec_GetParam(self->hUniDrcDecoder, DRC_DEC_IS_ACTIVE)) &&
- !(self->flags[0] & AC_RSV603DA)) {
+ (self->flags[0] & AC_USAC)) {
/* Apply DRC gains*/
int ch, drcDelay = 0;
int needsDeinterleaving = 0;
@@ -1691,8 +1691,6 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
FIXP_DBL channelGain[(8)];
int reverseInChannelMap[(8)];
int reverseOutChannelMap[(8)];
- int numDrcOutChannels = FDK_drcDec_GetParam(
- self->hUniDrcDecoder, DRC_DEC_TARGET_CHANNEL_COUNT_SELECTED);
FDKmemclear(channelGain, sizeof(channelGain));
for (ch = 0; ch < (8); ch++) {
reverseInChannelMap[ch] = ch;
@@ -1715,17 +1713,6 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
drcDelay += CConcealment_GetDelay(&self->concealCommonData) *
self->streamInfo.frameSize;
- for (ch = 0; ch < self->streamInfo.numChannels; ch++) {
- UCHAR mapValue = FDK_chMapDescr_getMapValue(
- &self->mapDescr, (UCHAR)ch, self->chMapIndex);
- if (mapValue < (8)) reverseInChannelMap[mapValue] = ch;
- }
- for (ch = 0; ch < (int)numDrcOutChannels; ch++) {
- UCHAR mapValue = FDK_chMapDescr_getMapValue(
- &self->mapDescr, (UCHAR)ch, numDrcOutChannels);
- if (mapValue < (8)) reverseOutChannelMap[mapValue] = ch;
- }
-
/* The output of SBR and MPS is interleaved. Deinterleaving may be
* necessary for FDK_drcDec_ProcessTime, which accepts deinterleaved
* audio only. */
@@ -1760,11 +1747,9 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
FDK_drcDec_Preprocess(self->hUniDrcDecoder);
/* apply DRC1 gain sequence */
- for (ch = 0; ch < self->streamInfo.numChannels; ch++) {
- FDK_drcDec_ProcessTime(self->hUniDrcDecoder, drcDelay, DRC_DEC_DRC1,
- ch, reverseInChannelMap[ch] - ch, 1,
- drcWorkBuffer, self->streamInfo.frameSize);
- }
+ FDK_drcDec_ProcessTime(self->hUniDrcDecoder, drcDelay, DRC_DEC_DRC1,
+ 0, 0, self->streamInfo.numChannels,
+ drcWorkBuffer, self->streamInfo.frameSize);
/* apply downmix */
FDK_drcDec_ApplyDownmix(
self->hUniDrcDecoder, reverseInChannelMap, reverseOutChannelMap,
@@ -1772,12 +1757,10 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
&self->streamInfo.numChannels); /* self->streamInfo.numChannels
may change here */
/* apply DRC2/3 gain sequence */
- for (ch = 0; ch < self->streamInfo.numChannels; ch++) {
- FDK_drcDec_ProcessTime(self->hUniDrcDecoder, drcDelay,
- DRC_DEC_DRC2_DRC3, ch,
- reverseOutChannelMap[ch] - ch, 1,
- drcWorkBuffer, self->streamInfo.frameSize);
- }
+ FDK_drcDec_ProcessTime(self->hUniDrcDecoder, drcDelay,
+ DRC_DEC_DRC2_DRC3, 0, 0,
+ self->streamInfo.numChannels, drcWorkBuffer,
+ self->streamInfo.frameSize);
if (needsDeinterleaving) {
FDK_interleave(