From fc3ac08d77edc5d2ce9c5bf28195f19e8bd351f7 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 26 Mar 2025 12:32:12 +0100 Subject: [PATCH] issue 1299: fix to 'active_cnt' parameter to be in sync between encoder and decoder; under NONBE_1299_ACTIVE_CNT --- lib_com/options.h | 1 + lib_dec/init_dec.c | 4 ++++ lib_dec/ivas_cpe_dec.c | 15 +++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 9c51fe439b..94fc702849 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,6 +175,7 @@ #define NONBE_FIX_1180_HQMDCT_PHECU_LT_MUTING /* Ericsson: issue 1180, corrected long term mute loop attnuation after 200ms in PhECU-PLC */ #define NONBE_1289_STEREO_SW_TO_MONO /* VA: issue 1289: Fix glitch when stereo signal is decoded to mono n TD->DFT switching */ #define NONBE_1296_TDREND_ITD_OUT_OF_BOUNDS_ACCESS /* Eri: issue 1296: ITD resampling can occasionally read out of bounds, especially when the requested subframes are short (1.25 ms). Seen for headtracking+JBM. */ +#define NONBE_1299_ACTIVE_CNT /* VA: issue 1299: fix to 'active_cnt' parameter to be in sync between encoder and decoder */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 1a37f7e02c..d9907c0f05 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -294,7 +294,11 @@ ivas_error init_decoder( st->last_active_brate = ACELP_7k20; st->last_CNG_L_frame = L_FRAME; +#ifdef NONBE_1299_ACTIVE_CNT + st->active_cnt = CNG_TYPE_HO; +#else st->active_cnt = 20; +#endif if ( idchan == 0 && ( st->element_mode == EVS_MONO || st->element_mode == IVAS_CPE_DFT || st->element_mode == IVAS_CPE_TD ) ) { diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 59be959bd6..dfdf325023 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -401,14 +401,29 @@ ivas_error ivas_cpe_dec( sts[n]->active_cnt = 0; if ( sts[1] != NULL ) { +#ifdef NONBE_1299_ACTIVE_CNT + if ( sts[1]->ini_frame == 0 ) + { + sts[1]->active_cnt = CNG_TYPE_HO; + } + else + { + sts[1]->active_cnt = 0; + } +#else sts[1]->active_cnt = 0; +#endif } } else { sts[n]->VAD = 1; sts[n]->active_cnt++; +#ifdef NONBE_1299_ACTIVE_CNT + sts[n]->active_cnt = min( sts[n]->active_cnt, 200 ); +#else sts[n]->active_cnt = min( sts[n]->active_cnt, 100 ); +#endif } /* set CNA flag */ -- GitLab