diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2019-02-01 07:45:59 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-02-01 07:45:59 -0800 |
commit | db4a1deb28561e79086d041f704c8d83b7c8a0ed (patch) | |
tree | abf3b631396659c6565f0bc225940963bc2bb76b | |
parent | a82589476a45199e0a6cb962bd1e6d38a2c4170a (diff) | |
parent | b30e02cfd33956c57dea76417be4be0862e642dd (diff) | |
download | fdk-aac-db4a1deb28561e79086d041f704c8d83b7c8a0ed.tar.gz fdk-aac-db4a1deb28561e79086d041f704c8d83b7c8a0ed.tar.bz2 fdk-aac-db4a1deb28561e79086d041f704c8d83b7c8a0ed.zip |
Merge "Add QMF analysis band sanity check"
am: b30e02cfd3
Change-Id: I6f21f18ac59f27eecdddb37d81bdfacf34cbae38
-rw-r--r-- | libAACdec/src/aacdecoder_lib.cpp | 10 | ||||
-rw-r--r-- | libSACdec/src/sac_dec_lib.cpp | 4 |
2 files changed, 11 insertions, 3 deletions
diff --git a/libAACdec/src/aacdecoder_lib.cpp b/libAACdec/src/aacdecoder_lib.cpp index cbcd404..c214ba1 100644 --- a/libAACdec/src/aacdecoder_lib.cpp +++ b/libAACdec/src/aacdecoder_lib.cpp @@ -1398,9 +1398,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/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 * |