diff --git a/lib_com/options.h b/lib_com/options.h index 9d69888ae722f1054725101db769ab6563c87906..f4c1a91f97c30d07a0c639ac0bb4f1e083d18bdc 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -125,4 +125,5 @@ #define FIX_ISSUE_1186 /* Ittiam: Fix for Issue 1186: Energy/scaling issue for ISM-1 at all bitrates */ #define FIX_ISSUE_1165 /* Ittiam: Fix for issue 1165: Assertion in lpc2lsp_fx for OMASA LTV input */ #define FIX_ISSUE_1185 /* Ittiam: Fix for issue 1185: Assertion in ivas_dirac_dec_binaural_internal_fx() for crash in decoder in fft30_with_cmplx_data()*/ +#define FIX_ISSUE_1209 /* Ittiam: Fix for issue 1209: Assertion exit in BASOP encoder (stereo_dmx_evs)*/ #endif diff --git a/lib_enc/energy_fx.c b/lib_enc/energy_fx.c index 2415ed287d1551c320f219bc7ebb0e70cda322f1..6d81eb82a7b8bd9dfe8261486ebf6330f1bdefbb 100644 --- a/lib_enc/energy_fx.c +++ b/lib_enc/energy_fx.c @@ -451,7 +451,11 @@ void background_update_fx( tmp = L_shr( 2147 /* 0.000001 Q31 */, sub( 31, scale_sb_energy ) ); /* scale_sb_energy */ FOR( i = 0; i < SNR_sb_num; i++ ) { +#ifdef FIX_ISSUE_1209 + sb_bg_energy[i] = L_add_sat( MUL_F( sb_bg_energy[i], 32112 /* 0.98 Q15 */ ), tmp ); /* scale_sb_energy */ +#else sb_bg_energy[i] = L_add( MUL_F( sb_bg_energy[i], 32112 /* 0.98 Q15 */ ), tmp ); /* scale_sb_energy */ +#endif move32(); } } diff --git a/lib_enc/spec_flatness_fx.c b/lib_enc/spec_flatness_fx.c index a495ad681743bb6d4a0dd2a7caa9bb37f43c0abd..c2451886dac977208e677dc5ca833459b53afa5e 100644 --- a/lib_enc/spec_flatness_fx.c +++ b/lib_enc/spec_flatness_fx.c @@ -221,7 +221,12 @@ void spec_flatness_fx( SFM_Qtmp = sub( SFM_Qtmp, SPEC_AMP_Q ); SFM_Qtmp = sub( SFM_Qtmp, SFM_Q ); +#ifdef FIX_ISSUE_1209 + sSFM[1] = add_sat( mult( sSFM[1], 0x6ccc ), shr( mult( SFM, 0x1333 ), SFM_Qtmp ) ); +#else sSFM[1] = add( mult( sSFM[1], 0x6ccc ), shr( mult( SFM, 0x1333 ), SFM_Qtmp ) ); +#endif + move16(); /*sSFM3*/ sums = 0;