From 8feec6e564b2b4568460b2f9d91d4009d44bbcd4 Mon Sep 17 00:00:00 2001 From: rhb Date: Thu, 24 Aug 2023 14:41:00 +0200 Subject: [PATCH 1/2] fix issue 738: ASAN error in SBA bitrate switching when switching to MCT bitrate from ACELP --- lib_com/options.h | 1 + lib_enc/ivas_mct_core_enc.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) mode change 100644 => 100755 lib_com/options.h mode change 100644 => 100755 lib_enc/ivas_mct_core_enc.c diff --git a/lib_com/options.h b/lib_com/options.h old mode 100644 new mode 100755 index be3261f808..0f5d653997 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -180,6 +180,7 @@ #define CR_FIX_586_BPF_DFT_MEM /* FhG: issue 586: set input memory of DFT analysis of BPF signal to zero for HQ core to fix issue with PLC and bitrate switching */ #define CR_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE /* FhG: fix for cng in ISM DTX on sudden silence periods */ #define CR_FIX_698_SBA_MSAN /* Dlb: issue 698: Uninitialized memory read in SBA init */ +#define CR_FIX_738_SBA_BR_SW_ASAN /* FhG: issue 738: fixes bug when switching to an MCT bitrate and previous frame was ACELP */ /* ##################### End NON-BE CR switches ########################### */ diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c old mode 100644 new mode 100755 index bad65750ef..dff20c9293 --- a/lib_enc/ivas_mct_core_enc.c +++ b/lib_enc/ivas_mct_core_enc.c @@ -337,6 +337,13 @@ void ivas_mct_core_enc( } nSubframes = ( sts[ch]->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV; L_subframeTCX = sts[ch]->hTcxEnc->L_frameTCX / nSubframes; +#ifdef CR_FIX_738_SBA_BR_SW_ASAN + /* in MCT only relevant for bitrate switching from non-MCT bitrates */ + if ( sts[ch]->last_core == ACELP_CORE ) + { + L_subframeTCX += L_subframeTCX / 4; + } +#endif for ( n = 0; n < nSubframes; n++ ) { @@ -387,6 +394,13 @@ void ivas_mct_core_enc( } nSubframes = ( st->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV; L_subframeTCX = st->hTcxEnc->L_frameTCX / nSubframes; +#ifdef CR_FIX_738_SBA_BR_SW_ASAN + /* in MCT only relevant for bitrate switching from non-MCT bitrates */ + if ( st->last_core == ACELP_CORE ) + { + L_subframeTCX += L_subframeTCX / 4; + } +#endif if ( ( st->hTcxEnc->tcxMode == TCX_20 ) && ( st->total_brate < HQ_96k || st->igf ) ) { -- GitLab From e73e58e75e5fcf120ab672a13918a83726e801db Mon Sep 17 00:00:00 2001 From: knj Date: Tue, 12 Sep 2023 16:46:08 +0200 Subject: [PATCH 2/2] rename switch --- lib_enc/ivas_mct_core_enc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c index dff20c9293..1bb2667345 100755 --- a/lib_enc/ivas_mct_core_enc.c +++ b/lib_enc/ivas_mct_core_enc.c @@ -337,7 +337,7 @@ void ivas_mct_core_enc( } nSubframes = ( sts[ch]->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV; L_subframeTCX = sts[ch]->hTcxEnc->L_frameTCX / nSubframes; -#ifdef CR_FIX_738_SBA_BR_SW_ASAN +#ifdef NONBE_FIX_738_SBA_BR_SW_ASAN /* in MCT only relevant for bitrate switching from non-MCT bitrates */ if ( sts[ch]->last_core == ACELP_CORE ) { @@ -394,7 +394,7 @@ void ivas_mct_core_enc( } nSubframes = ( st->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV; L_subframeTCX = st->hTcxEnc->L_frameTCX / nSubframes; -#ifdef CR_FIX_738_SBA_BR_SW_ASAN +#ifdef NONBE_FIX_738_SBA_BR_SW_ASAN /* in MCT only relevant for bitrate switching from non-MCT bitrates */ if ( st->last_core == ACELP_CORE ) { -- GitLab