From 39c5a89c0f03681251d90aa86ccfaaad72553a27 Mon Sep 17 00:00:00 2001 From: Tommy Date: Thu, 21 May 2026 12:01:28 -0400 Subject: [PATCH 1/2] fix proposal for 2599 --- lib_com/options.h | 2 +- lib_enc/ivas_stereo_ica_enc_fx.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 1d498d32d..1db0e842d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -106,7 +106,7 @@ #define FIX_BASOP_2592_OVERFLOW /* FhG: BASOP #2592: fix overflow in GetF0() */ #define FIX_BASOP_2591_EDGE_DETECT_COMP /* FhG: BASOP #2591: Wrong comparison in edge_detect_fx() */ #define FIX_NONBE_2580_USE_LENGTH_NOT_CONSTANT /* Dolby: fix 2580: use dynamic length denominator for average energy in unclr_calc_corr_features_fx() */ - +#define FIX_BASOP_2599_TCA_OVERFLOW /* VA: issue 2599, Fix TCA overflow */ /* ##################### End NON-BE switches ########################### */ /* ################## End MAINTENANCE switches ######################### */ diff --git a/lib_enc/ivas_stereo_ica_enc_fx.c b/lib_enc/ivas_stereo_ica_enc_fx.c index f981a2957..b3f8890c3 100644 --- a/lib_enc/ivas_stereo_ica_enc_fx.c +++ b/lib_enc/ivas_stereo_ica_enc_fx.c @@ -1330,7 +1330,11 @@ static void estDownmixGain_fx( exp = 0; move16(); } +#ifdef FIX_BASOP_2599_TCA_OVERFLOW + unclr_instTargetGain = BASOP_Util_Log10( L_add_sat( unclr_instTargetGain, L_shr( MAX_32, sub( Q31, exp ) ) ), exp ); +#else unclr_instTargetGain = BASOP_Util_Log10( L_add( unclr_instTargetGain, L_shr( MAX_32, sub( Q31, exp ) ) ), exp ); +#endif // unclr_fv_fx is expected in Q15 - log result will be in Q25 - hence rightshift by 10. hStereoClassif->unclr_fv_fx[E_ica_instTargetGain] = L_shr( unclr_instTargetGain, Q10 ); /* Q15 */ move32(); -- GitLab From ae2dadec45410f68c43eec71838ef1b8caa5f1dd Mon Sep 17 00:00:00 2001 From: Tommy Date: Thu, 21 May 2026 12:24:32 -0400 Subject: [PATCH 2/2] fix clang --- lib_enc/ivas_stereo_ica_enc_fx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_enc/ivas_stereo_ica_enc_fx.c b/lib_enc/ivas_stereo_ica_enc_fx.c index b3f8890c3..de17deb22 100644 --- a/lib_enc/ivas_stereo_ica_enc_fx.c +++ b/lib_enc/ivas_stereo_ica_enc_fx.c @@ -1330,11 +1330,11 @@ static void estDownmixGain_fx( exp = 0; move16(); } -#ifdef FIX_BASOP_2599_TCA_OVERFLOW +#ifdef FIX_BASOP_2599_TCA_OVERFLOW unclr_instTargetGain = BASOP_Util_Log10( L_add_sat( unclr_instTargetGain, L_shr( MAX_32, sub( Q31, exp ) ) ), exp ); -#else +#else unclr_instTargetGain = BASOP_Util_Log10( L_add( unclr_instTargetGain, L_shr( MAX_32, sub( Q31, exp ) ) ), exp ); -#endif +#endif // unclr_fv_fx is expected in Q15 - log result will be in Q25 - hence rightshift by 10. hStereoClassif->unclr_fv_fx[E_ica_instTargetGain] = L_shr( unclr_instTargetGain, Q10 ); /* Q15 */ move32(); -- GitLab