diff --git a/lib_com/options.h b/lib_com/options.h old mode 100644 new mode 100755 index 2f28b8ccb330dece097261506063f6675e1beb0a..08a554d4e47820666528fb76f9a9810861101083 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -180,6 +180,7 @@ #define NONBE_FIX_752_OSBA_MISCONFIG_MCT /* FhG: issue 752: misconfiguration of MCT causes crashes for coding with sampling rate under 48kHz at 256kbps*/ #define NONBE_FIX_780_ISM_STARTS_WITH_SID /* VA: issue 780: fix Crash in ISM decoding when bitstream starts with an SID and output_config is not EXT */ #define NONBE_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE /* FhG: fix for cng in ISM DTX on sudden silence periods - JBM addon (issue 552) */ +#define NONBE_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 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 bad65750ef25dd439435aa722318be88545ac464..1bb26673450e2f20f807573456729b8b8d44e75e --- 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 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 ) + { + 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 NONBE_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 ) ) {