From 35d6f66c5802138de07f5c01177a014547b6f40c Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Mon, 5 Nov 2018 11:29:37 +0200 Subject: [PATCH] Saturate additions in FDKaacEnc_IntensityStereoProcessing This fixes a crash when encoding a sample from github issue #98. --- libAACenc/src/intensity.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libAACenc/src/intensity.cpp b/libAACenc/src/intensity.cpp index a160a4f..8cb1b45 100644 --- a/libAACenc/src/intensity.cpp +++ b/libAACenc/src/intensity.cpp @@ -747,9 +747,9 @@ void FDKaacEnc_IntensityStereoProcessing( j++) { s = ((mdctSpectrumLeft[j] << s0) >> 1) + ((mdctSpectrumRight[j] << s0) >> 1); - es += fMultDiv2(s, s) >> + es = fAddSaturate(es, fMultDiv2(s, s) >> (MDCT_SPEC_SF - - 1); // scaled 2*(mdctScale - s0 + 1) + MDCT_SPEC_SF + 1)); // scaled 2*(mdctScale - s0 + 1) + MDCT_SPEC_SF } msMask[sfb + sfboffs] = 0; tmp = fDivNorm(sfbEnergyLeft[sfb + sfboffs], es, &s1);