Commit b2399e45 authored by vaclav's avatar vaclav
Browse files

Merge branch '1978-encoder-crash-to-saturation-missing' into 'main'

fix 1978, missing saturation in EVS code

Closes #1978

See merge request !2183
parents 6cf87ab2 5c24127c
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@
#define FIX_1942_ASSERTION_LOWSHELF                          /* FhG: Modified the target_gains_db_fx calculation in compute_t60_coeffs_fx() */
#define FIX_1944_CRASH_FOR_STEREO                            /* FhG: improve TonalMDCTConceal_InsertNoise calculation precision */
#define FIX_1970_SBA_CRASH                                   /* Dlb: Fix for issue 1970, SBA crash */
#define FIX_1978_SAT_MISSING_IN_GAIN_ENC                     /* VA:  Fix add saturation missing that lead to a crash in P800-10 */

#define FIX_1946_CRASH_JBM_PROCESSING                        /* FhG: Increased guard bits of DFT_fx */
/* #################### Start BASOP porting switches ############################ */
@@ -86,6 +87,7 @@
#define NONBE_1328_FIX_NON_LINEARITY                    /* VA: Fix possible issue when computing bwe_exc_extended and previous frame were almost 0, float issue 1328  */
#define FIX_1319_STACK_SBA_DECODER                      /* VA: issue 1319: Optimize the definition of buffer lengths in the SBA decoder */


/* #################### End BASOP porting switches ############################ */

#endif
+8 −0
Original line number Diff line number Diff line
@@ -728,10 +728,18 @@ void gain_enc_SQ_fx(

    *gain_pit = round_fx_o( L_shl_o( L_div, add( exp, exp_div ), &Overflow ), &Overflow ); /*Q14*/

#ifdef FIX_1978_SAT_MISSING_IN_GAIN_ENC
    L_tmp1 = L_mult_sat( coeff[1], coeff[4] ); /*Q31*/
#else
    L_tmp1 = L_mult( coeff[1], coeff[4] ); /*Q31*/
#endif
    exp1 = add( exp_coeff[1], exp_coeff[4] );

#ifdef FIX_1978_SAT_MISSING_IN_GAIN_ENC
    L_tmp2 = L_mult_sat( coeff[0], coeff[3] ); /*Q31*/
#else
    L_tmp2 = L_mult( coeff[0], coeff[3] ); /*Q31*/
#endif
    exp2 = add( exp_coeff[0], exp_coeff[3] );

    IF( GT_16( exp1, exp2 ) )