diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-09-16 10:15:54 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-09-16 10:15:54 +0200 |
commit | ac10ac25317d2027e21b1390054e47201e7aec98 (patch) | |
tree | 4b1114b5806709d99634c1b1571e3fe1ed0a7417 /fdk-aac/libAACdec/src/aacdecoder_lib.cpp | |
parent | c9b14925962bf6ca3978dc07bf8db32ada7003c5 (diff) | |
download | ODR-AudioEnc-ac10ac25317d2027e21b1390054e47201e7aec98.tar.gz ODR-AudioEnc-ac10ac25317d2027e21b1390054e47201e7aec98.tar.bz2 ODR-AudioEnc-ac10ac25317d2027e21b1390054e47201e7aec98.zip |
Update fdk-aac
This corresponds to 9718203 in https://github.com/Opendigitalradio/fdk-aac
Diffstat (limited to 'fdk-aac/libAACdec/src/aacdecoder_lib.cpp')
-rw-r--r-- | fdk-aac/libAACdec/src/aacdecoder_lib.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/fdk-aac/libAACdec/src/aacdecoder_lib.cpp b/fdk-aac/libAACdec/src/aacdecoder_lib.cpp index 7df17b9..8685a30 100644 --- a/fdk-aac/libAACdec/src/aacdecoder_lib.cpp +++ b/fdk-aac/libAACdec/src/aacdecoder_lib.cpp @@ -1,7 +1,7 @@ /* ----------------------------------------------------------------------------- Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright 1995 - 2018 Fraunhofer-Gesellschaft zur Förderung der angewandten +© Copyright 1995 - 2019 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. All rights reserved. 1. INTRODUCTION @@ -119,8 +119,8 @@ amm-info@iis.fraunhofer.de /* Decoder library info */ #define AACDECODER_LIB_VL0 3 -#define AACDECODER_LIB_VL1 0 -#define AACDECODER_LIB_VL2 0 +#define AACDECODER_LIB_VL1 1 +#define AACDECODER_LIB_VL2 2 #define AACDECODER_LIB_TITLE "AAC Decoder Lib" #ifdef __ANDROID__ #define AACDECODER_LIB_BUILD_DATE "" @@ -823,11 +823,15 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_SetParam( case AAC_DRC_ATTENUATION_FACTOR: /* DRC compression factor (where 0 is no and 127 is max compression) */ errorStatus = aacDecoder_drcSetParam(hDrcInfo, DRC_CUT_SCALE, value); + uniDrcErr = FDK_drcDec_SetParam(self->hUniDrcDecoder, DRC_DEC_COMPRESS, + value * (FL2FXCONST_DBL(0.5f / 127.0f))); break; case AAC_DRC_BOOST_FACTOR: /* DRC boost factor (where 0 is no and 127 is max boost) */ errorStatus = aacDecoder_drcSetParam(hDrcInfo, DRC_BOOST_SCALE, value); + uniDrcErr = FDK_drcDec_SetParam(self->hUniDrcDecoder, DRC_DEC_BOOST, + value * (FL2FXCONST_DBL(0.5f / 127.0f))); break; case AAC_DRC_REFERENCE_LEVEL: @@ -871,6 +875,11 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_SetParam( uniDrcErr = FDK_drcDec_SetParam(self->hUniDrcDecoder, DRC_DEC_EFFECT_TYPE, (FIXP_DBL)value); break; + case AAC_UNIDRC_ALBUM_MODE: + uniDrcErr = FDK_drcDec_SetParam(self->hUniDrcDecoder, DRC_DEC_ALBUM_MODE, + (FIXP_DBL)value); + break; + case AAC_TPDEC_CLEAR_BUFFER: errTp = transportDec_SetParam(hTpDec, TPDEC_PARAM_RESET, 1); self->streamInfo.numLostAccessUnits = 0; @@ -1669,6 +1678,13 @@ aacDecoder_DecodeFrame(HANDLE_AACDECODER self, INT_PCM *pTimeData_extern, reverseOutChannelMap[ch] = ch; } + /* Update sampleRate and frameSize. This may be necessary in case of + * implicit SBR signaling */ + FDK_drcDec_SetParam(self->hUniDrcDecoder, DRC_DEC_SAMPLE_RATE, + self->streamInfo.sampleRate); + FDK_drcDec_SetParam(self->hUniDrcDecoder, DRC_DEC_FRAME_SIZE, + self->streamInfo.frameSize); + /* If SBR and/or MPS is active, the DRC gains are aligned to the QMF domain signal before the QMF synthesis. Therefore the DRC gains need to be delayed by the QMF synthesis delay. */ |