mirror of https://github.com/mstorsjo/fdk-aac.git
Remove obsolete uni drc precedence handling
Bug: 241391733 Test: see bug Change-Id: I0ddc479626fb6a89d04bc989256ad1d8ec4275a3
This commit is contained in:
parent
2f4c595c4a
commit
4c41b05b6c
|
@ -1,7 +1,7 @@
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
||||||
|
|
||||||
© Copyright 1995 - 2020 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
© Copyright 1995 - 2023 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
||||||
Forschung e.V. All rights reserved.
|
Forschung e.V. All rights reserved.
|
||||||
|
|
||||||
1. INTRODUCTION
|
1. INTRODUCTION
|
||||||
|
@ -217,7 +217,6 @@ void aacDecoder_drcInit(HANDLE_AAC_DRC self) {
|
||||||
self->progRefLevel = pParams->targetRefLevel;
|
self->progRefLevel = pParams->targetRefLevel;
|
||||||
self->progRefLevelPresent = 0;
|
self->progRefLevelPresent = 0;
|
||||||
self->presMode = -1;
|
self->presMode = -1;
|
||||||
self->uniDrcPrecedence = 0;
|
|
||||||
|
|
||||||
aacDecoder_drcReset(self);
|
aacDecoder_drcReset(self);
|
||||||
}
|
}
|
||||||
|
@ -353,12 +352,6 @@ AAC_DECODER_ERROR aacDecoder_drcSetParam(HANDLE_AAC_DRC self,
|
||||||
self->numOutChannels = (INT)value;
|
self->numOutChannels = (INT)value;
|
||||||
self->update = 1;
|
self->update = 1;
|
||||||
break;
|
break;
|
||||||
case UNIDRC_PRECEDENCE:
|
|
||||||
if (self == NULL) {
|
|
||||||
return AAC_DEC_INVALID_HANDLE;
|
|
||||||
}
|
|
||||||
self->uniDrcPrecedence = (UCHAR)value;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return AAC_DEC_SET_PARAM_FAIL;
|
return AAC_DEC_SET_PARAM_FAIL;
|
||||||
} /* switch(param) */
|
} /* switch(param) */
|
||||||
|
@ -1258,7 +1251,6 @@ static void aacDecoder_drcParameterHandling(HANDLE_AAC_DRC self,
|
||||||
/* switch on/off processing */
|
/* switch on/off processing */
|
||||||
self->enable = ((p->boost > (FIXP_DBL)0) || (p->cut > (FIXP_DBL)0) ||
|
self->enable = ((p->boost > (FIXP_DBL)0) || (p->cut > (FIXP_DBL)0) ||
|
||||||
(p->applyHeavyCompression == ON) || (p->targetRefLevel >= 0));
|
(p->applyHeavyCompression == ON) || (p->targetRefLevel >= 0));
|
||||||
self->enable = (self->enable && !self->uniDrcPrecedence);
|
|
||||||
|
|
||||||
self->prevAacNumChannels = aacNumChannels;
|
self->prevAacNumChannels = aacNumChannels;
|
||||||
self->update = 0;
|
self->update = 0;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
||||||
|
|
||||||
© Copyright 1995 - 2020 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
© Copyright 1995 - 2023 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
||||||
Forschung e.V. All rights reserved.
|
Forschung e.V. All rights reserved.
|
||||||
|
|
||||||
1. INTRODUCTION
|
1. INTRODUCTION
|
||||||
|
@ -133,8 +133,7 @@ typedef enum {
|
||||||
APPLY_HEAVY_COMPRESSION,
|
APPLY_HEAVY_COMPRESSION,
|
||||||
DEFAULT_PRESENTATION_MODE,
|
DEFAULT_PRESENTATION_MODE,
|
||||||
ENCODER_TARGET_LEVEL,
|
ENCODER_TARGET_LEVEL,
|
||||||
MAX_OUTPUT_CHANNELS,
|
MAX_OUTPUT_CHANNELS
|
||||||
UNIDRC_PRECEDENCE
|
|
||||||
} AACDEC_DRC_PARAM;
|
} AACDEC_DRC_PARAM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
||||||
|
|
||||||
© Copyright 1995 - 2019 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
© Copyright 1995 - 2023 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
||||||
Forschung e.V. All rights reserved.
|
Forschung e.V. All rights reserved.
|
||||||
|
|
||||||
1. INTRODUCTION
|
1. INTRODUCTION
|
||||||
|
@ -207,11 +207,6 @@ typedef struct {
|
||||||
position in the bitstream (only one per frame) */
|
position in the bitstream (only one per frame) */
|
||||||
UINT drcPayloadPosition[MAX_DRC_THREADS]; /* Used to store the DRC payload
|
UINT drcPayloadPosition[MAX_DRC_THREADS]; /* Used to store the DRC payload
|
||||||
positions in the bitstream */
|
positions in the bitstream */
|
||||||
|
|
||||||
UCHAR
|
|
||||||
uniDrcPrecedence; /* Flag for signalling that uniDrc is active and takes
|
|
||||||
precedence over legacy DRC */
|
|
||||||
|
|
||||||
UCHAR applyExtGain; /* Flag is 1 if extGain has to be applied, otherwise 0. */
|
UCHAR applyExtGain; /* Flag is 1 if extGain has to be applied, otherwise 0. */
|
||||||
|
|
||||||
FIXP_DBL additionalGainPrev; /* Gain of previous frame to be applied to the
|
FIXP_DBL additionalGainPrev; /* Gain of previous frame to be applied to the
|
||||||
|
|
|
@ -3273,12 +3273,6 @@ LINKSPEC_CPP AAC_DECODER_ERROR CAacDecoder_DecodeFrame(
|
||||||
FDKmemcpy(drcChMap, self->chMapping, (8) * sizeof(UCHAR));
|
FDKmemcpy(drcChMap, self->chMapping, (8) * sizeof(UCHAR));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* deactivate legacy DRC in case uniDrc is active, i.e. uniDrc payload is
|
|
||||||
* present and one of DRC or Loudness Normalization is switched on */
|
|
||||||
aacDecoder_drcSetParam(
|
|
||||||
self->hDrcInfo, UNIDRC_PRECEDENCE,
|
|
||||||
FDK_drcDec_GetParam(self->hUniDrcDecoder, DRC_DEC_IS_ACTIVE));
|
|
||||||
|
|
||||||
/* Extract DRC control data and map it to channels (without bitstream delay)
|
/* Extract DRC control data and map it to channels (without bitstream delay)
|
||||||
*/
|
*/
|
||||||
mapped = aacDecoder_drcProlog(
|
mapped = aacDecoder_drcProlog(
|
||||||
|
|
|
@ -1689,8 +1689,6 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
|
||||||
FIXP_DBL channelGain[(8)];
|
FIXP_DBL channelGain[(8)];
|
||||||
int reverseInChannelMap[(8)];
|
int reverseInChannelMap[(8)];
|
||||||
int reverseOutChannelMap[(8)];
|
int reverseOutChannelMap[(8)];
|
||||||
int numDrcOutChannels = FDK_drcDec_GetParam(
|
|
||||||
self->hUniDrcDecoder, DRC_DEC_TARGET_CHANNEL_COUNT_SELECTED);
|
|
||||||
FDKmemclear(channelGain, sizeof(channelGain));
|
FDKmemclear(channelGain, sizeof(channelGain));
|
||||||
for (ch = 0; ch < (8); ch++) {
|
for (ch = 0; ch < (8); ch++) {
|
||||||
reverseInChannelMap[ch] = ch;
|
reverseInChannelMap[ch] = ch;
|
||||||
|
@ -1713,17 +1711,6 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
|
||||||
drcDelay += CConcealment_GetDelay(&self->concealCommonData) *
|
drcDelay += CConcealment_GetDelay(&self->concealCommonData) *
|
||||||
self->streamInfo.frameSize;
|
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
|
/* The output of SBR and MPS is interleaved. Deinterleaving may be
|
||||||
* necessary for FDK_drcDec_ProcessTime, which accepts deinterleaved
|
* necessary for FDK_drcDec_ProcessTime, which accepts deinterleaved
|
||||||
* audio only. */
|
* audio only. */
|
||||||
|
@ -1758,11 +1745,9 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
|
||||||
FDK_drcDec_Preprocess(self->hUniDrcDecoder);
|
FDK_drcDec_Preprocess(self->hUniDrcDecoder);
|
||||||
|
|
||||||
/* apply DRC1 gain sequence */
|
/* apply DRC1 gain sequence */
|
||||||
for (ch = 0; ch < self->streamInfo.numChannels; ch++) {
|
FDK_drcDec_ProcessTime(self->hUniDrcDecoder, drcDelay, DRC_DEC_DRC1,
|
||||||
FDK_drcDec_ProcessTime(self->hUniDrcDecoder, drcDelay, DRC_DEC_DRC1,
|
0, 0, self->streamInfo.numChannels,
|
||||||
ch, reverseInChannelMap[ch] - ch, 1,
|
drcWorkBuffer, self->streamInfo.frameSize);
|
||||||
drcWorkBuffer, self->streamInfo.frameSize);
|
|
||||||
}
|
|
||||||
/* apply downmix */
|
/* apply downmix */
|
||||||
FDK_drcDec_ApplyDownmix(
|
FDK_drcDec_ApplyDownmix(
|
||||||
self->hUniDrcDecoder, reverseInChannelMap, reverseOutChannelMap,
|
self->hUniDrcDecoder, reverseInChannelMap, reverseOutChannelMap,
|
||||||
|
@ -1770,12 +1755,10 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_DecodeFrame(HANDLE_AACDECODER self,
|
||||||
&self->streamInfo.numChannels); /* self->streamInfo.numChannels
|
&self->streamInfo.numChannels); /* self->streamInfo.numChannels
|
||||||
may change here */
|
may change here */
|
||||||
/* apply DRC2/3 gain sequence */
|
/* apply DRC2/3 gain sequence */
|
||||||
for (ch = 0; ch < self->streamInfo.numChannels; ch++) {
|
FDK_drcDec_ProcessTime(self->hUniDrcDecoder, drcDelay,
|
||||||
FDK_drcDec_ProcessTime(self->hUniDrcDecoder, drcDelay,
|
DRC_DEC_DRC2_DRC3, 0, 0,
|
||||||
DRC_DEC_DRC2_DRC3, ch,
|
self->streamInfo.numChannels, drcWorkBuffer,
|
||||||
reverseOutChannelMap[ch] - ch, 1,
|
self->streamInfo.frameSize);
|
||||||
drcWorkBuffer, self->streamInfo.frameSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (needsDeinterleaving) {
|
if (needsDeinterleaving) {
|
||||||
FDK_interleave(
|
FDK_interleave(
|
||||||
|
|
Loading…
Reference in New Issue