Add QMF analysis band sanity check

Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I0001e0996a970e91a21bfe8ba051fdba0c06c219
This commit is contained in:
Fraunhofer IIS FDK 2018-12-20 15:52:46 +01:00 committed by Jean-Michel Trivi
parent bcda185d56
commit c47066df27
2 changed files with 11 additions and 3 deletions

View File

@ -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;

View File

@ -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 *