aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2019-02-01 07:45:59 -0800
committerandroid-build-merger <android-build-merger@google.com>2019-02-01 07:45:59 -0800
commitdb4a1deb28561e79086d041f704c8d83b7c8a0ed (patch)
treeabf3b631396659c6565f0bc225940963bc2bb76b
parenta82589476a45199e0a6cb962bd1e6d38a2c4170a (diff)
parentb30e02cfd33956c57dea76417be4be0862e642dd (diff)
downloadfdk-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.cpp10
-rw-r--r--libSACdec/src/sac_dec_lib.cpp4
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 *