From df842e6c1129de4f8b5554de9ca1b62d54f8a631 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 27 May 2025 09:29:11 +0200 Subject: [PATCH 1/2] port float MR 1498 --- lib_com/options.h | 1 + lib_dec/waveadjust_fec_dec.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index af91900f7..70aece1ed 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -218,6 +218,7 @@ #define FIX_1003_PARAMISM_BINAURAL_RECONFIG_USAN /* FhG: fix for #1003: fix USAN caused by ParamISM reconfig */ #define FIX_1001_ARI_HM_OVERFLOW /* FhG: fix for undef behaviour in in the harmonic TCX model arithmetic coder */ #define NONBE_FIX_1005_MC_RS_TCBUFFER_UPDATE /* FhG: issue #1005: fix TC Buffer update at a MC rate switch */ +#define NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST /* FhG: address issue 1037 */ /* #################### End BASOP porting switches ############################ */ diff --git a/lib_dec/waveadjust_fec_dec.c b/lib_dec/waveadjust_fec_dec.c index ecfbc919e..bff75e147 100644 --- a/lib_dec/waveadjust_fec_dec.c +++ b/lib_dec/waveadjust_fec_dec.c @@ -742,8 +742,15 @@ void concealment_decode( /* sign randomization */ for ( i = 0; i < hPlcInfo->L_frameTCX; i++ ) { - sign = ( ( own_random( seed ) >> 15 ) << 1 ) + 1; - invkoef[i] *= sign; + +#ifdef NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST + int16_t rnd; + rnd = own_random(seed); + sign = (rnd >= 0) - (rnd < 0); +#else + sign = ((own_random(seed) >> 15) << 1) + 1; +#endif + invkoef[i] *= sign; } } } -- GitLab From a921ebf81434b4fc95a50a73df211914a4aea7dc Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 27 May 2025 09:29:44 +0200 Subject: [PATCH 2/2] fix formatting --- lib_dec/waveadjust_fec_dec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib_dec/waveadjust_fec_dec.c b/lib_dec/waveadjust_fec_dec.c index bff75e147..9d41dab6d 100644 --- a/lib_dec/waveadjust_fec_dec.c +++ b/lib_dec/waveadjust_fec_dec.c @@ -744,13 +744,13 @@ void concealment_decode( { #ifdef NON_BE_FIX_EVS_USAN_ERR_IN_WAVEADJUST - int16_t rnd; - rnd = own_random(seed); - sign = (rnd >= 0) - (rnd < 0); + int16_t rnd; + rnd = own_random( seed ); + sign = ( rnd >= 0 ) - ( rnd < 0 ); #else - sign = ((own_random(seed) >> 15) << 1) + 1; + sign = ( ( own_random( seed ) >> 15 ) << 1 ) + 1; #endif - invkoef[i] *= sign; + invkoef[i] *= sign; } } } -- GitLab