diff options
| author | Fraunhofer IIS FDK <audio-fdk@iis.fraunhofer.de> | 2018-05-04 15:51:23 +0200 |
|---|---|---|
| committer | Jean-Michel Trivi <jmtrivi@google.com> | 2018-05-04 11:05:58 -0700 |
| commit | 9ab67882eca7454dc001e158bc1e6e2219d6650b (patch) | |
| tree | 8bf6f33f28355cd7dd6c4f5a01c5324a43ec66bc /libAACdec/src/aacdecoder_lib.cpp | |
| parent | 6cfabd35363c3ef5e3b209b867169a500b3ccc3c (diff) | |
| download | fdk-aac-9ab67882eca7454dc001e158bc1e6e2219d6650b.tar.gz fdk-aac-9ab67882eca7454dc001e158bc1e6e2219d6650b.tar.bz2 fdk-aac-9ab67882eca7454dc001e158bc1e6e2219d6650b.zip | |
FDKv2 additional fixes
Bug: 71430241
Bug: 79220129
Test: cts-tradefed run commandAndExit cts-dev -m CtsMediaTestCases -t android.media.cts.DecoderTestXheAac
cts-tradefed run commandAndExit cts-dev -m CtsMediaTestCases -t android.media.cts.DecoderTestAacDrc
Add restriction to call intensity stereo tool only for applicable configurations
Change-Id: I30ec6640bd484c56cc9d5b8b35186fc1c875e021
Fix high band energy calculation in sbr encoder
Change-Id: I964dd46fab2ed797c440a983512bbab7e1aff98a
Fix out-of-bounds read access in noiseless coder
Change-Id: I9a669435dbdca421ff9e4affec57811002d75b3b
Use temporary buffer for dummy parsing to check presence of audioPreroll data
Change-Id: I2d42c5c8deddde34351c3d2858b9fe196b3a0906
Set applyAsc to 1 in case that the ASC parsing fails
Change-Id: I552a8b960270bc18cae459ad28a3ba241035668e
Parametric stereo together with mps not supported
Change-Id: Icde14a2774a4303bb0c41046861a59d04b624365
Align ssc callback error path for drm
Change-Id: Ie8ecbfa42c702e6df81c1aec532a9ff1e653dac9
Ensure that the bit counter starts at a multiple of TPDEC_SYNCSKIP
Change-Id: I08d69ec361b2e2ed800282e333fd248b4b3ca245
Allow flushing only when audioPreroll is enabled in current and new config
Change-Id: I52e95d75de4bbed692be922a59a23bda58870625
Omit reverse channel mapping in pass through mode
Change-Id: I335e209c29a700cc091be069f1d08e4288b40793
Diffstat (limited to 'libAACdec/src/aacdecoder_lib.cpp')
| -rw-r--r-- | libAACdec/src/aacdecoder_lib.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libAACdec/src/aacdecoder_lib.cpp b/libAACdec/src/aacdecoder_lib.cpp index b7ea8df..e62d187 100644 --- a/libAACdec/src/aacdecoder_lib.cpp +++ b/libAACdec/src/aacdecoder_lib.cpp @@ -396,7 +396,8 @@ static INT aacDecoder_SscCallback(void *handle, HANDLE_FDK_BITSTREAM hBs, /* MPS found but invalid or not decodable by this instance */ hAacDecoder->mpsEnableCurr = 0; hAacDecoder->mpsApplicable = 0; - if ((coreCodec == AOT_USAC) || IS_LOWDELAY(coreCodec)) { + if ((coreCodec == AOT_USAC) || (coreCodec == AOT_DRM_USAC) || + IS_LOWDELAY(coreCodec)) { errTp = TRANSPORTDEC_PARSE_ERROR; } else { errTp = TRANSPORTDEC_OK; @@ -1654,14 +1655,14 @@ aacDecoder_DecodeFrame(HANDLE_AACDECODER self, INT_PCM *pTimeData_extern, self->streamInfo.frameSize; for (ch = 0; ch < self->streamInfo.numChannels; ch++) { - int mapValue = FDK_chMapDescr_getMapValue( + UCHAR mapValue = FDK_chMapDescr_getMapValue( &self->mapDescr, (UCHAR)ch, self->chMapIndex); - reverseInChannelMap[mapValue] = ch; + if (mapValue < (8)) reverseInChannelMap[mapValue] = ch; } for (ch = 0; ch < (int)numDrcOutChannels; ch++) { - int mapValue = FDK_chMapDescr_getMapValue( + UCHAR mapValue = FDK_chMapDescr_getMapValue( &self->mapDescr, (UCHAR)ch, numDrcOutChannels); - reverseOutChannelMap[mapValue] = ch; + if (mapValue < (8)) reverseOutChannelMap[mapValue] = ch; } /* The output of SBR and MPS is interleaved. Deinterleaving may be |
