From 839ae290c1f5a263613bea1a5fde863e757a8849 Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Fri, 10 Aug 2012 00:51:37 +0300 Subject: Use saturating adds to avoid overflow These additions can overflow, triggering assertions later. --- libAACenc/src/aacenc_tns.cpp | 4 ++-- libAACenc/src/grp_data.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'libAACenc/src') diff --git a/libAACenc/src/aacenc_tns.cpp b/libAACenc/src/aacenc_tns.cpp index 933e4e7..fbff424 100644 --- a/libAACenc/src/aacenc_tns.cpp +++ b/libAACenc/src/aacenc_tns.cpp @@ -1150,8 +1150,8 @@ static INT FDKaacEnc_AutoToParcor( for(j=numOfCoeff-i-1; j>=0; j--) { FIXP_DBL accu1 = fMult(tmp, input[j]); FIXP_DBL accu2 = fMult(tmp, workBuffer[j]); - workBuffer[j] += accu1; - input[j] += accu2; + workBuffer[j] = fAddSaturate(workBuffer[j], accu1); + input[j] = fAddSaturate(input[j], accu2); } workBuffer++; diff --git a/libAACenc/src/grp_data.cpp b/libAACenc/src/grp_data.cpp index 03d4976..7adcb21 100644 --- a/libAACenc/src/grp_data.cpp +++ b/libAACenc/src/grp_data.cpp @@ -195,7 +195,7 @@ FDKaacEnc_groupShortData(FIXP_DBL *mdctSpectrum, /* in-out FIXP_DBL energy = sfbEnergy->Short[wnd][sfb]; for (j=1; jShort[wnd+j][sfb]; + energy = fAddSaturate(energy, sfbEnergy->Short[wnd+j][sfb]); } sfbEnergy->Long[i++] = energy; } -- cgit v1.2.3