Merge "Limit too large shift exponent in apply_inter_tes()" am: f828d3e16a
am: 2027969e1f

Change-Id: I1c13d0a0fbbeb5c937e3e1391f0974e5caf76a20
diff --git a/libSBRdec/src/env_calc.cpp b/libSBRdec/src/env_calc.cpp
index 10c73ec..cb1474f 100644
--- a/libSBRdec/src/env_calc.cpp
+++ b/libSBRdec/src/env_calc.cpp
@@ -626,7 +626,8 @@
         total_power_low >>= diff;
         total_power_low_sf = new_summand_sf;
       } else if (new_summand_sf < total_power_low_sf) {
-        new_summand >>= total_power_low_sf - new_summand_sf;
+        new_summand >>=
+            fMin(DFRACT_BITS - 1, total_power_low_sf - new_summand_sf);
       }
 
       total_power_low += (new_summand >> preShift2);
@@ -638,7 +639,8 @@
             fMin(DFRACT_BITS - 1, new_summand_sf - total_power_high_sf);
         total_power_high_sf = new_summand_sf;
       } else if (new_summand_sf < total_power_high_sf) {
-        new_summand >>= total_power_high_sf - new_summand_sf;
+        new_summand >>=
+            fMin(DFRACT_BITS - 1, total_power_high_sf - new_summand_sf);
       }
 
       total_power_high += (new_summand >> preShift2);