Merge remote-tracking branch 'aosp/master'

This commit is contained in:
Martin Storsjo 2019-03-15 14:03:19 +02:00
commit 4edc5c4808
3 changed files with 15 additions and 7 deletions

View File

@ -1400,9 +1400,13 @@ aacDecoder_DecodeFrame(HANDLE_AACDECODER self, INT_PCM *pTimeData_extern,
mpegSurroundDecoder_ConfigureQmfDomain( mpegSurroundDecoder_ConfigureQmfDomain(
(CMpegSurroundDecoder *)self->pMpegSurroundDecoder, sac_interface, (CMpegSurroundDecoder *)self->pMpegSurroundDecoder, sac_interface,
(UINT)self->streamInfo.aacSampleRate, self->streamInfo.aot); (UINT)self->streamInfo.aacSampleRate, self->streamInfo.aot);
if (self->qmfDomain.globalConf.nBandsAnalysis_requested > 0) {
self->qmfDomain.globalConf.nQmfTimeSlots_requested = self->qmfDomain.globalConf.nQmfTimeSlots_requested =
self->streamInfo.aacSamplesPerFrame / self->streamInfo.aacSamplesPerFrame /
self->qmfDomain.globalConf.nBandsAnalysis_requested; self->qmfDomain.globalConf.nBandsAnalysis_requested;
} else {
self->qmfDomain.globalConf.nQmfTimeSlots_requested = 0;
}
} }
self->qmfDomain.globalConf.TDinput = pTimeData; self->qmfDomain.globalConf.TDinput = pTimeData;

View File

@ -2081,11 +2081,11 @@ static void CConcealment_TDNoise_Apply(CConcealmentInfo *const pConcealmentInfo,
noiseVal = FX_DBL2FX_PCM(fMult(noiseValLong, TDNoiseAtt)); noiseVal = FX_DBL2FX_PCM(fMult(noiseValLong, TDNoiseAtt));
/* add filtered noise - check for clipping, before */ /* add filtered noise - check for clipping, before */
if (pcmdata[ii] > (FIXP_PCM)MAXVAL_FIXP_PCM - noiseVal && if (noiseVal > (FIXP_PCM)0 &&
noiseVal > (FIXP_PCM)0) { pcmdata[ii] > (FIXP_PCM)MAXVAL_FIXP_PCM - noiseVal) {
noiseVal = noiseVal * (FIXP_PCM)-1; noiseVal = noiseVal * (FIXP_PCM)-1;
} else if (pcmdata[ii] < (FIXP_PCM)MINVAL_FIXP_PCM - noiseVal && } else if (noiseVal < (FIXP_PCM)0 &&
noiseVal < (FIXP_PCM)0) { pcmdata[ii] < (FIXP_PCM)MINVAL_FIXP_PCM - noiseVal) {
noiseVal = noiseVal * (FIXP_PCM)-1; noiseVal = noiseVal * (FIXP_PCM)-1;
} }

View File

@ -1658,6 +1658,10 @@ int mpegSurroundDecoder_Apply(CMpegSurroundDecoder *pMpegSurroundDecoder,
initControlFlags = controlFlags; initControlFlags = controlFlags;
/* Check that provided output buffer is large enough. */ /* Check that provided output buffer is large enough. */
if (pMpegSurroundDecoder->pQmfDomain->globalConf.nBandsAnalysis == 0) {
err = MPS_UNSUPPORTED_FORMAT;
goto bail;
}
timeDataRequiredSize = timeDataRequiredSize =
(timeDataFrameSize * (timeDataFrameSize *
pMpegSurroundDecoder->pSpatialDec->numOutputChannelsAT * pMpegSurroundDecoder->pSpatialDec->numOutputChannelsAT *