diff options
author | Martin Storsjo <martin@martin.st> | 2019-03-15 14:03:19 +0200 |
---|---|---|
committer | Martin Storsjo <martin@martin.st> | 2019-03-15 14:03:19 +0200 |
commit | 4edc5c4808c2a21e6dc8dc6c8d5a00290d042528 (patch) | |
tree | f4e87a39dfeadfb60bfadc9f6851c1cf4420e856 | |
parent | 95858d7bd36f19bde4a9595e2bd68f195215b164 (diff) | |
parent | d5724aefe91189c173833d792f1ab1b5e17d8eec (diff) | |
download | fdk-aac-4edc5c4808c2a21e6dc8dc6c8d5a00290d042528.tar.gz fdk-aac-4edc5c4808c2a21e6dc8dc6c8d5a00290d042528.tar.bz2 fdk-aac-4edc5c4808c2a21e6dc8dc6c8d5a00290d042528.zip |
Merge remote-tracking branch 'aosp/master'
-rw-r--r-- | libAACdec/src/aacdecoder_lib.cpp | 10 | ||||
-rw-r--r-- | libAACdec/src/conceal.cpp | 8 | ||||
-rw-r--r-- | libSACdec/src/sac_dec_lib.cpp | 4 |
3 files changed, 15 insertions, 7 deletions
diff --git a/libAACdec/src/aacdecoder_lib.cpp b/libAACdec/src/aacdecoder_lib.cpp index f287003..7df17b9 100644 --- a/libAACdec/src/aacdecoder_lib.cpp +++ b/libAACdec/src/aacdecoder_lib.cpp @@ -1400,9 +1400,13 @@ aacDecoder_DecodeFrame(HANDLE_AACDECODER self, INT_PCM *pTimeData_extern, mpegSurroundDecoder_ConfigureQmfDomain( (CMpegSurroundDecoder *)self->pMpegSurroundDecoder, sac_interface, (UINT)self->streamInfo.aacSampleRate, self->streamInfo.aot); - self->qmfDomain.globalConf.nQmfTimeSlots_requested = - self->streamInfo.aacSamplesPerFrame / - self->qmfDomain.globalConf.nBandsAnalysis_requested; + if (self->qmfDomain.globalConf.nBandsAnalysis_requested > 0) { + self->qmfDomain.globalConf.nQmfTimeSlots_requested = + self->streamInfo.aacSamplesPerFrame / + self->qmfDomain.globalConf.nBandsAnalysis_requested; + } else { + self->qmfDomain.globalConf.nQmfTimeSlots_requested = 0; + } } self->qmfDomain.globalConf.TDinput = pTimeData; diff --git a/libAACdec/src/conceal.cpp b/libAACdec/src/conceal.cpp index cc6de75..5895cb8 100644 --- a/libAACdec/src/conceal.cpp +++ b/libAACdec/src/conceal.cpp @@ -2081,11 +2081,11 @@ static void CConcealment_TDNoise_Apply(CConcealmentInfo *const pConcealmentInfo, noiseVal = FX_DBL2FX_PCM(fMult(noiseValLong, TDNoiseAtt)); /* add filtered noise - check for clipping, before */ - if (pcmdata[ii] > (FIXP_PCM)MAXVAL_FIXP_PCM - noiseVal && - noiseVal > (FIXP_PCM)0) { + if (noiseVal > (FIXP_PCM)0 && + pcmdata[ii] > (FIXP_PCM)MAXVAL_FIXP_PCM - noiseVal) { noiseVal = noiseVal * (FIXP_PCM)-1; - } else if (pcmdata[ii] < (FIXP_PCM)MINVAL_FIXP_PCM - noiseVal && - noiseVal < (FIXP_PCM)0) { + } else if (noiseVal < (FIXP_PCM)0 && + pcmdata[ii] < (FIXP_PCM)MINVAL_FIXP_PCM - noiseVal) { noiseVal = noiseVal * (FIXP_PCM)-1; } diff --git a/libSACdec/src/sac_dec_lib.cpp b/libSACdec/src/sac_dec_lib.cpp index 5792858..bf6dedf 100644 --- a/libSACdec/src/sac_dec_lib.cpp +++ b/libSACdec/src/sac_dec_lib.cpp @@ -1658,6 +1658,10 @@ int mpegSurroundDecoder_Apply(CMpegSurroundDecoder *pMpegSurroundDecoder, initControlFlags = controlFlags; /* Check that provided output buffer is large enough. */ + if (pMpegSurroundDecoder->pQmfDomain->globalConf.nBandsAnalysis == 0) { + err = MPS_UNSUPPORTED_FORMAT; + goto bail; + } timeDataRequiredSize = (timeDataFrameSize * pMpegSurroundDecoder->pSpatialDec->numOutputChannelsAT * |