Loading lib_com/ivas_prot.h +3 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,9 @@ ivas_error pre_proc_front_ivas( const int16_t force_front_vad, /* i : flag to force VAD decision */ const int16_t front_vad_dtx_flag, /* i : front-VAD DTX flag to overwrite VAD decision*/ const IVAS_FORMAT ivas_format, /* i : IVAS format */ #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,8 @@ /* any switch which is non-be wrt selection floating point code */ /* all switches in this category should start with "NONBE_" */ #define NONBE_FIX_788_SBA_DTX_BR_SWITCHING /* VA: issue 787: fix Msan error in SBA BR switching with dtx in FOA encoding */ #define NONBE_FIX_856_TCX_LTP_SYNTH_FILTER /* FhG: issue 856: correct filtering length for tcx-ltp synth filtering*/ #define NONBE_UNIFIED_DECODING_PATHS /* FhG: unify decoding paths */ #define NONBE_FIX_874_OMASA_BRSW_2TD /* Nokia: issue 874: Fixes the crashes with the long test vectors that prompted switching to TD*/ Loading lib_enc/init_enc.c 100644 → 100755 +3 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,9 @@ ivas_error init_encoder( st->low_rate_mode = 0; st->ini_frame = 0; st->inactive_coder_type_flag = 0; #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING st->sba_br_sw_while_no_data = 0; #endif st->coder_type_raw = VOICED; st->last_coder_type_raw = st->coder_type_raw; Loading lib_enc/ivas_core_pre_proc.c +6 −1 Original line number Diff line number Diff line Loading @@ -282,8 +282,13 @@ ivas_error pre_proc_ivas( st->hTcxEnc->tfm_mem = 0.75f; } else if ( element_brate != last_element_brate ) { #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING if ( st->core_brate != FRAME_NO_DATA ) #endif { SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, MCT_flag ); } if ( st->extl != -1 && st->extl != IGF_BWE && st->igf == 1 ) { Loading lib_enc/ivas_core_pre_proc_front.c +20 −1 Original line number Diff line number Diff line Loading @@ -108,6 +108,9 @@ ivas_error pre_proc_front_ivas( const int16_t force_front_vad, /* i : flag to force VAD decision */ const int16_t front_vad_dtx_flag, /* i : front-VAD DTX flag to overwrite VAD decision*/ const IVAS_FORMAT ivas_format, /* i : IVAS format */ #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate - for setting the DTX */ ) { Loading Loading @@ -183,7 +186,11 @@ ivas_error pre_proc_front_ivas( st = hSCE->hCoreCoder[n]; signal_in = hSCE->hCoreCoder[n]->input; element_mode = IVAS_SCE; #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING last_element_brate = hSCE->last_element_brate; #else last_element_brate = hSCE->element_brate; /* hack - the past parameter is not really needed */ #endif hStereoClassif = NULL; lr_vad_enabled = 0; } Loading Loading @@ -780,6 +787,18 @@ ivas_error pre_proc_front_ivas( /* SNR-based speech/music classification */ if ( ( element_mode >= IVAS_CPE_DFT && element_brate >= IVAS_24k4 ) || ( element_mode == IVAS_SCE && element_brate >= SCE_SMC_THR ) ) { #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING if ( ivas_format == SBA_FORMAT && st->core_brate != FRAME_NO_DATA && st->last_core_brate == FRAME_NO_DATA && st->sba_br_sw_while_no_data ) { SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, MCT_flag ); st->sba_br_sw_while_no_data = 0; } else if ( ivas_format == SBA_FORMAT && st->core_brate == FRAME_NO_DATA && element_brate != last_element_brate ) { st->sba_br_sw_while_no_data = 1; } #endif if ( flag_16k_smc ) { /* Compute core-coder buffers at internal sampling rate */ Loading Loading
lib_com/ivas_prot.h +3 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,9 @@ ivas_error pre_proc_front_ivas( const int16_t force_front_vad, /* i : flag to force VAD decision */ const int16_t front_vad_dtx_flag, /* i : front-VAD DTX flag to overwrite VAD decision*/ const IVAS_FORMAT ivas_format, /* i : IVAS format */ #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,8 @@ /* any switch which is non-be wrt selection floating point code */ /* all switches in this category should start with "NONBE_" */ #define NONBE_FIX_788_SBA_DTX_BR_SWITCHING /* VA: issue 787: fix Msan error in SBA BR switching with dtx in FOA encoding */ #define NONBE_FIX_856_TCX_LTP_SYNTH_FILTER /* FhG: issue 856: correct filtering length for tcx-ltp synth filtering*/ #define NONBE_UNIFIED_DECODING_PATHS /* FhG: unify decoding paths */ #define NONBE_FIX_874_OMASA_BRSW_2TD /* Nokia: issue 874: Fixes the crashes with the long test vectors that prompted switching to TD*/ Loading
lib_enc/init_enc.c 100644 → 100755 +3 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,9 @@ ivas_error init_encoder( st->low_rate_mode = 0; st->ini_frame = 0; st->inactive_coder_type_flag = 0; #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING st->sba_br_sw_while_no_data = 0; #endif st->coder_type_raw = VOICED; st->last_coder_type_raw = st->coder_type_raw; Loading
lib_enc/ivas_core_pre_proc.c +6 −1 Original line number Diff line number Diff line Loading @@ -282,8 +282,13 @@ ivas_error pre_proc_ivas( st->hTcxEnc->tfm_mem = 0.75f; } else if ( element_brate != last_element_brate ) { #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING if ( st->core_brate != FRAME_NO_DATA ) #endif { SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, MCT_flag ); } if ( st->extl != -1 && st->extl != IGF_BWE && st->igf == 1 ) { Loading
lib_enc/ivas_core_pre_proc_front.c +20 −1 Original line number Diff line number Diff line Loading @@ -108,6 +108,9 @@ ivas_error pre_proc_front_ivas( const int16_t force_front_vad, /* i : flag to force VAD decision */ const int16_t front_vad_dtx_flag, /* i : front-VAD DTX flag to overwrite VAD decision*/ const IVAS_FORMAT ivas_format, /* i : IVAS format */ #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ #endif const int32_t ivas_total_brate /* i : IVAS total bitrate - for setting the DTX */ ) { Loading Loading @@ -183,7 +186,11 @@ ivas_error pre_proc_front_ivas( st = hSCE->hCoreCoder[n]; signal_in = hSCE->hCoreCoder[n]->input; element_mode = IVAS_SCE; #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING last_element_brate = hSCE->last_element_brate; #else last_element_brate = hSCE->element_brate; /* hack - the past parameter is not really needed */ #endif hStereoClassif = NULL; lr_vad_enabled = 0; } Loading Loading @@ -780,6 +787,18 @@ ivas_error pre_proc_front_ivas( /* SNR-based speech/music classification */ if ( ( element_mode >= IVAS_CPE_DFT && element_brate >= IVAS_24k4 ) || ( element_mode == IVAS_SCE && element_brate >= SCE_SMC_THR ) ) { #ifdef NONBE_FIX_788_SBA_DTX_BR_SWITCHING if ( ivas_format == SBA_FORMAT && st->core_brate != FRAME_NO_DATA && st->last_core_brate == FRAME_NO_DATA && st->sba_br_sw_while_no_data ) { SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, MCT_flag ); st->sba_br_sw_while_no_data = 0; } else if ( ivas_format == SBA_FORMAT && st->core_brate == FRAME_NO_DATA && element_brate != last_element_brate ) { st->sba_br_sw_while_no_data = 1; } #endif if ( flag_16k_smc ) { /* Compute core-coder buffers at internal sampling rate */ Loading