From 9ed08a2fc01989649ccd8223fde8e2ecca5f1fa4 Mon Sep 17 00:00:00 2001 From: Vladimir Malenovsky Date: Fri, 18 Oct 2024 14:52:07 +0200 Subject: [PATCH 01/40] fix fix mismatch of coder_type (mod_ct) btw. TD stereo encoder and decoder --- lib_com/options.h | 1 + lib_enc/ivas_decision_matrix_enc.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 30200d09d1..85859cf25e 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -186,6 +186,7 @@ #define NONBE_FIX_1197_OMASA_META_BUFFER /* Nokia: OMASA ISM_MASA_MODE_PARAM_ONE_OBJ history zero in rateswitching */ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ +#define NONBE_FIX_1205_TD_STEREO_MOD_CT /* VA: fix mismatch of coder_type (mod_ct) btw. TD stereo encoder and decoder */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index dec6a9bc59..1a4e4c25c7 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -172,6 +172,23 @@ void ivas_decision_matrix_enc( st->core = ACELP_CORE; } +#ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT + if ( st->element_mode == IVAS_CPE_TD && st->idchan == 0 && element_brate < IVAS_24k4 && st->core == ACELP_CORE ) + { + /* In TD stereo, TRANSITION mode has different bit allocation than other modes */ + /* the two conditions below are replicated from tdm_configure_enc() where mod_ct is derived from coder_type */ + /* it ensures that coder_type is identical in the TD stereo encoder and decoder */ + if ( ( ( st->last_L_frame >= L_FRAME16k && st->flag_ACELP16k == 0 ) || ( st->last_L_frame == L_FRAME && st->flag_ACELP16k == 1 ) ) && st->last_core_brate != FRAME_NO_DATA && st->last_core_brate != SID_2k40 && st->coder_type_raw != VOICED ) + { + st->coder_type = TRANSITION; + } + else if ( st->coder_type != AUDIO && ( st->sp_aud_decision1 == 1 || st->sp_aud_decision2 == 1 ) ) + { + st->coder_type = AUDIO; + } + } +#endif + if ( st->is_ism_format && st->tcxonly ) { st->core = TCX_20_CORE; -- GitLab From 9593a853ed43ac09b176e217c0412e3ab9a7ee1e Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 28 Oct 2024 08:10:01 +0100 Subject: [PATCH 02/40] Fix for test_26444.py when getting objective measures --- scripts/parse_xml_report.py | 2 +- tests/test_26444.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/parse_xml_report.py b/scripts/parse_xml_report.py index 902b31f0ac..d1c5f30e47 100644 --- a/scripts/parse_xml_report.py +++ b/scripts/parse_xml_report.py @@ -44,7 +44,7 @@ IVAS_CATEGORIES = { EVS_CATEGORIES = { "Normal operation": r".*", "DTX": r"DTX", - "PLC": r"b10|f06", + "PLC": r"b10|f06|EPF", "Bitrate switching": r"sw", "JBM": r"JBM", } diff --git a/tests/test_26444.py b/tests/test_26444.py index 08d0ff77c5..2372f0d837 100644 --- a/tests/test_26444.py +++ b/tests/test_26444.py @@ -144,8 +144,8 @@ def test_evs_26444( if enc_opts: for file in [ref, test]: output_config = "" # Empty for EVS operation - in_file = file - out_file = file + ".wav" + in_file = os.path.abspath(file) + out_file = os.path.abspath(file + ".wav") add_option_list = [] ref_decoder_frontend.run( output_config, @@ -155,8 +155,8 @@ def test_evs_26444( add_option_list=add_option_list, ) fs = int(sampling_rate) * 1000 - reffile = ref + ".wav" - testfile = test + ".wav" + reffile = os.path.abspath(ref + ".wav") + testfile = os.path.abspath(test + ".wav") else: fs = int(re.search(r"(\d+)kHz", ref).group(1)) * 1000 # pyaudio3dtools.audiofile.readfile only handles .wav, .pcm and .raw suffixes. -- GitLab From b1164c83b379271fa9d91eca1a3e659fa78e1478 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Mon, 28 Oct 2024 19:08:38 +0100 Subject: [PATCH 03/40] add proposed fix for correct power spec scaling --- lib_com/options.h | 1 + lib_dec/ivas_stereo_mdct_core_dec.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 9bdfec8eed..9bf175b104 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -188,6 +188,7 @@ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ #define NONBE_FIX_1208_DFT_STEREO_PLC_BURST /* Ericsson: Issue 1208, fix for overflow of sample offset counter for burst error in DFT Stereo PLC. */ #define FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE /* FhG: zero out all relevant imdct buffers in MCT decoding of channels with mct_chan_mode == MCT_CHAN_MODE_IGNORE */ +#define NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index 9ee33e7ad7..c96a8d4e86 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -620,14 +620,27 @@ static void run_min_stats( computed only once (for ch == 0) and not again in the second run sive the outcome will be the same anyway */ if ( ( will_estimate_noise_on_channel[0] == will_estimate_noise_on_channel[1] ) || ch == 0 ) { +#ifdef NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING + float power_spec_scale_fac; + + /* calculate power spectrum from MDCT coefficients and estimated MDST coeffs */ + power_spec_scale_fac = 1.f / (float) ( L_FRAME16k * L_FRAME16k ); + power_spec[0] = spec_in[0] * spec_in[0] * power_spec_scale_fac; + power_spec[L_FRAME16k - 1] = spec_in[L_FRAME16k - 1] * spec_in[L_FRAME16k - 1] * power_spec_scale_fac; +#else /* calculate power spectrum from MDCT coefficients and estimated MDST coeffs */ power_spec[0] = spec_in[0] * spec_in[0]; power_spec[L_FRAME16k - 1] = spec_in[L_FRAME16k - 1] * spec_in[L_FRAME16k - 1]; +#endif for ( int16_t i = 1; i < L_FRAME16k - 1; i++ ) { float mdst; mdst = spec_in[i + 1] - spec_in[i - 1]; +#ifdef NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING + power_spec[i] = power_spec_scale_fac * ( spec_in[i] * spec_in[i] + mdst * mdst ); +#else power_spec[i] = spec_in[i] * spec_in[i] + mdst * mdst; +#endif } } -- GitLab From 92416844509a2461e08efa68361b8b04d47f9757 Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Tue, 29 Oct 2024 11:02:40 -0400 Subject: [PATCH 04/40] change to Vladimir proposed fix, moving it to ivas_stereo_td_enc --- lib_enc/ivas_decision_matrix_enc.c | 17 ----------------- lib_enc/ivas_stereo_td_enc.c | 14 +++++++++++++- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index 1a4e4c25c7..dec6a9bc59 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -172,23 +172,6 @@ void ivas_decision_matrix_enc( st->core = ACELP_CORE; } -#ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT - if ( st->element_mode == IVAS_CPE_TD && st->idchan == 0 && element_brate < IVAS_24k4 && st->core == ACELP_CORE ) - { - /* In TD stereo, TRANSITION mode has different bit allocation than other modes */ - /* the two conditions below are replicated from tdm_configure_enc() where mod_ct is derived from coder_type */ - /* it ensures that coder_type is identical in the TD stereo encoder and decoder */ - if ( ( ( st->last_L_frame >= L_FRAME16k && st->flag_ACELP16k == 0 ) || ( st->last_L_frame == L_FRAME && st->flag_ACELP16k == 1 ) ) && st->last_core_brate != FRAME_NO_DATA && st->last_core_brate != SID_2k40 && st->coder_type_raw != VOICED ) - { - st->coder_type = TRANSITION; - } - else if ( st->coder_type != AUDIO && ( st->sp_aud_decision1 == 1 || st->sp_aud_decision2 == 1 ) ) - { - st->coder_type = AUDIO; - } - } -#endif - if ( st->is_ism_format && st->tcxonly ) { st->core = TCX_20_CORE; diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index 701035cc9f..ebfb1bd990 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -449,6 +449,18 @@ void tdm_configure_enc( } mod_ct = AUDIO; +#ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT + if ( hCPE->element_brate < IVAS_24k4 ) + { + mod_ct = AUDIO; + /* Only sure TRANSITION coding modes are important for bit allocation, otherwise mod_ct is set to AUDIO only to easy debugging if needed */ + if ( sts[0]->coder_type == TRANSITION || + ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && sts[0]->last_core_brate != FRAME_NO_DATA && sts[0]->last_core_brate != SID_2k40 && sts[0]->coder_type_raw != VOICED /*in case of CNG, this code is not reached sts[0]->core_brate != FRAME_NO_DATA && sts[0]->core_brate != SID_2k40 &&*/ ) ) + { + mod_ct = TRANSITION; + } + } +#else if ( hCPE->element_brate < IVAS_24k4 ) { mod_ct = sts[0]->coder_type; @@ -462,7 +474,7 @@ void tdm_configure_enc( mod_ct = AUDIO; } } - +#endif /* Correction of tdm_inst_ratio_idx in case of TC in the seecondary channel */ if ( hStereoTD->flag_skip_DMX == 0 && hStereoTD->tdm_LRTD_flag == 1 && sts[1]->tc_cnt > 1 /*&& abs(hStereoTD->tdm_inst_ratio_idx-LRTD_STEREO_MID_IS_PRIM) > 5*/ ) { -- GitLab From 715dc056964adaeecbdd5eae30f25fe226612614 Mon Sep 17 00:00:00 2001 From: malenov Date: Thu, 31 Oct 2024 14:18:04 +0100 Subject: [PATCH 05/40] simplification of logic --- lib_enc/ivas_decision_matrix_enc.c | 11 +++++++++++ lib_enc/ivas_stereo_td_enc.c | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index dec6a9bc59..836cd85c9c 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -465,6 +465,16 @@ void ivas_signaling_enc( if ( st->core == ACELP_CORE ) { +#ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT + /* write coder type */ + push_indice( hBstr, IND_ACELP_SIGNALLING, st->coder_type, 3 ); + + if ( element_brate >= FRMT_SHP_MIN_BRATE_IVAS ) + { + /* write sharpening flag */ + push_indice( hBstr, IND_SHARP_FLAG, st->sharpFlag, 1 ); + } +#else if ( element_brate < FRMT_SHP_MIN_BRATE_IVAS ) { push_indice( hBstr, IND_ACELP_SIGNALLING, st->coder_type, 3 ); @@ -477,6 +487,7 @@ void ivas_signaling_enc( /* write sharpening flag */ push_indice( hBstr, IND_SHARP_FLAG, st->sharpFlag, 1 ); } +#endif /* write extension layer flag to distinguish between TBE (0) and BWE (1) */ if ( st->extl_brate > 0 ) diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index ebfb1bd990..a6fee8b26e 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -452,7 +452,6 @@ void tdm_configure_enc( #ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT if ( hCPE->element_brate < IVAS_24k4 ) { - mod_ct = AUDIO; /* Only sure TRANSITION coding modes are important for bit allocation, otherwise mod_ct is set to AUDIO only to easy debugging if needed */ if ( sts[0]->coder_type == TRANSITION || ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && sts[0]->last_core_brate != FRAME_NO_DATA && sts[0]->last_core_brate != SID_2k40 && sts[0]->coder_type_raw != VOICED /*in case of CNG, this code is not reached sts[0]->core_brate != FRAME_NO_DATA && sts[0]->core_brate != SID_2k40 &&*/ ) ) -- GitLab From c35709f7e4136ffad348967d9a270876cdfb406d Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Fri, 1 Nov 2024 07:53:59 -0400 Subject: [PATCH 06/40] add supplementary condition in case transition of overwritten --- lib_enc/ivas_stereo_td_enc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index ebfb1bd990..938d9ee128 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -454,8 +454,14 @@ void tdm_configure_enc( { mod_ct = AUDIO; /* Only sure TRANSITION coding modes are important for bit allocation, otherwise mod_ct is set to AUDIO only to easy debugging if needed */ - if ( sts[0]->coder_type == TRANSITION || - ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && sts[0]->last_core_brate != FRAME_NO_DATA && sts[0]->last_core_brate != SID_2k40 && sts[0]->coder_type_raw != VOICED /*in case of CNG, this code is not reached sts[0]->core_brate != FRAME_NO_DATA && sts[0]->core_brate != SID_2k40 &&*/ ) ) + /* Enforce GC coder type on inactive signal (this can be later overwritten to INACTIVE) */ + if ( !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && + ( sts[0]->coder_type == TRANSITION || + ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || + ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && + sts[0]->last_core_brate != FRAME_NO_DATA && + sts[0]->last_core_brate != SID_2k40 && + sts[0]->coder_type_raw != VOICED ) ) ) { mod_ct = TRANSITION; } -- GitLab From 7cc651764487910e453978a3571bf37e5ef00ca0 Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Fri, 1 Nov 2024 08:25:54 -0400 Subject: [PATCH 07/40] fix clang --- lib_enc/ivas_stereo_td_enc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index 2a9bf89616..e701e524c5 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -454,12 +454,12 @@ void tdm_configure_enc( { /* Only sure TRANSITION coding modes are important for bit allocation, otherwise mod_ct is set to AUDIO only to easy debugging if needed */ /* Enforce GC coder type on inactive signal (this can be later overwritten to INACTIVE) */ - if ( !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && - ( sts[0]->coder_type == TRANSITION || - ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || - ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && - sts[0]->last_core_brate != FRAME_NO_DATA && - sts[0]->last_core_brate != SID_2k40 && + if ( !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && + ( sts[0]->coder_type == TRANSITION || + ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || + ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && + sts[0]->last_core_brate != FRAME_NO_DATA && + sts[0]->last_core_brate != SID_2k40 && sts[0]->coder_type_raw != VOICED ) ) ) { mod_ct = TRANSITION; -- GitLab From 026f7bda530e42684e4d401a4915c26906b43833 Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Fri, 1 Nov 2024 11:19:09 -0400 Subject: [PATCH 08/40] Adding one more condition --- lib_enc/ivas_stereo_td_enc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index e701e524c5..6bfe85450e 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -454,7 +454,8 @@ void tdm_configure_enc( { /* Only sure TRANSITION coding modes are important for bit allocation, otherwise mod_ct is set to AUDIO only to easy debugging if needed */ /* Enforce GC coder type on inactive signal (this can be later overwritten to INACTIVE) */ - if ( !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && + if ( !( sts[0]->sp_aud_decision1 == 1 && sts[0]->sp_aud_decision2 == 1 && sts[0]->coder_type == TRANSITION && sts[0]->total_brate < STEREO_TCX_MIN_RATE ) && + !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && ( sts[0]->coder_type == TRANSITION || ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && -- GitLab From a7586bd17f24300748401e82597d603ad953101b Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Fri, 1 Nov 2024 11:26:23 -0400 Subject: [PATCH 09/40] fix clang --- lib_enc/ivas_stereo_td_enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index 6bfe85450e..b1f16f9f10 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -455,7 +455,7 @@ void tdm_configure_enc( /* Only sure TRANSITION coding modes are important for bit allocation, otherwise mod_ct is set to AUDIO only to easy debugging if needed */ /* Enforce GC coder type on inactive signal (this can be later overwritten to INACTIVE) */ if ( !( sts[0]->sp_aud_decision1 == 1 && sts[0]->sp_aud_decision2 == 1 && sts[0]->coder_type == TRANSITION && sts[0]->total_brate < STEREO_TCX_MIN_RATE ) && - !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && + !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && ( sts[0]->coder_type == TRANSITION || ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && -- GitLab From b2f433ff3de997a42720ef147cdc3a3236b3726d Mon Sep 17 00:00:00 2001 From: Tommy Date: Wed, 6 Nov 2024 13:19:24 -0500 Subject: [PATCH 10/40] Revert " Adding one more condition" This reverts commit 026f7bda530e42684e4d401a4915c26906b43833. lib_enc/ivas_stereo_td_enc.c --- lib_enc/ivas_stereo_td_enc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index b1f16f9f10..e701e524c5 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -454,8 +454,7 @@ void tdm_configure_enc( { /* Only sure TRANSITION coding modes are important for bit allocation, otherwise mod_ct is set to AUDIO only to easy debugging if needed */ /* Enforce GC coder type on inactive signal (this can be later overwritten to INACTIVE) */ - if ( !( sts[0]->sp_aud_decision1 == 1 && sts[0]->sp_aud_decision2 == 1 && sts[0]->coder_type == TRANSITION && sts[0]->total_brate < STEREO_TCX_MIN_RATE ) && - !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && + if ( !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && ( sts[0]->coder_type == TRANSITION || ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || ( sts[0]->last_L_frame == L_FRAME && sts[0]->flag_ACELP16k == 1 ) ) && -- GitLab From 98a9dc6cb0542368c254063317db0068c463c386 Mon Sep 17 00:00:00 2001 From: Tommy Date: Wed, 6 Nov 2024 15:27:45 -0500 Subject: [PATCH 11/40] complementary fix for 1205 + debugging code --- lib_enc/ivas_decision_matrix_enc.c | 27 ++++++++++++++++++++++++++- lib_enc/ivas_stereo_td_enc.c | 3 +++ lib_enc/stat_enc.h | 4 +++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index 836cd85c9c..e18d571ef2 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -215,7 +215,22 @@ void ivas_decision_matrix_enc( if ( st->core == TCX_20_CORE && st->total_brate < STEREO_TCX_MIN_RATE ) { st->core = ACELP_CORE; +#ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT + /* For TD stereo at 16.4kbps (TD is not allowed at 13k2), we can't overwrite the coder_type here WHEN it is TRANSITION */ + /* as it has been used for TD bit allocation and must remained the same at the decoder side to ensure identical bit allocation */ + if ( st->idchan == 0 && !( element_brate <= IVAS_16k4 && st->coder_type == TRANSITION && st->element_mode == IVAS_CPE_TD ) ) + { + st->coder_type = AUDIO; + } +#ifdef DEBUG_MODE_TD + else + { + printf( "coder type not changed\n" ); + } +#endif +#else st->coder_type = AUDIO; +#endif st->sp_aud_decision2 = 0; if ( st->low_rate_mode ) @@ -371,7 +386,17 @@ void ivas_decision_matrix_enc( { st->inactive_coder_type_flag = 1; /* GSC */ } - +#ifdef DEBUG_MODE_TD + if ( st->idchan == 0 && st->element_mode == IVAS_CPE_TD && st->core == ACELP_CORE && element_brate < IVAS_24k4 ) + { + if ( (st->coder_type == TRANSITION && st->mod_ct_ST != TRANSITION ) || + ( st->coder_type != TRANSITION && st->mod_ct_ST == TRANSITION ) ) + { + printf( "st->coder_type != st->mod_ct_ST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" ); + exit( -555 ); + } + } +#endif return; } diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index e701e524c5..0758430ad6 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -479,6 +479,9 @@ void tdm_configure_enc( mod_ct = AUDIO; } } +#endif +#ifdef DEBUG_MODE_TD + sts[0]->mod_ct_ST = mod_ct; #endif /* Correction of tdm_inst_ratio_idx in case of TC in the seecondary channel */ if ( hStereoTD->flag_skip_DMX == 0 && hStereoTD->tdm_LRTD_flag == 1 && sts[1]->tc_cnt > 1 /*&& abs(hStereoTD->tdm_inst_ratio_idx-LRTD_STEREO_MID_IS_PRIM) > 5*/ ) diff --git a/lib_enc/stat_enc.h b/lib_enc/stat_enc.h index 3b7d7b5901..144ed4c48f 100755 --- a/lib_enc/stat_enc.h +++ b/lib_enc/stat_enc.h @@ -1557,7 +1557,9 @@ typedef struct enc_core_structure int16_t dtx_sce_sba; /* enable use of FD CNG with transform domain cores in SCE SBA */ int16_t sba_br_sw_while_no_data; /* Indicator for SBA bitrate switch while in FRAME_NO_DATA mode */ - +#ifdef DEBUG_MODE_TD + short mod_ct_ST; +#endif } Encoder_State, *ENC_CORE_HANDLE; -- GitLab From 5d8360a55a2e085483e1ea96a1373b41232d5e1f Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Thu, 7 Nov 2024 17:24:02 +0100 Subject: [PATCH 12/40] exclude planar modes from OSBA complexity run --- ci/complexity_measurements/getWmops.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/complexity_measurements/getWmops.sh b/ci/complexity_measurements/getWmops.sh index 23de0b2147..3289a91c34 100755 --- a/ci/complexity_measurements/getWmops.sh +++ b/ci/complexity_measurements/getWmops.sh @@ -80,7 +80,7 @@ ret_val=0 mode_arg="" # for OSBA, there are just too many modes... -> only select HOA3 ones if [ "$ivas_format" == "OSBA" ]; then - osba_hoa3_modes=$(./scripts/runIvasCodec.py -C OSBA -l | grep "HOA3") + osba_hoa3_modes=$(./scripts/runIvasCodec.py -C OSBA -l | grep "HOA3" | grep -v "planar") mode_arg="-m $osba_hoa3_modes" fi -- GitLab From c133ce80268e6c9f84a821973424624d8811b9d0 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Thu, 7 Nov 2024 17:36:20 +0100 Subject: [PATCH 13/40] fix table name for OSBA planar modes --- scripts/config/ivas_modes.json | 48 +++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/scripts/config/ivas_modes.json b/scripts/config/ivas_modes.json index 1ba3983536..05e49d687d 100644 --- a/scripts/config/ivas_modes.json +++ b/scripts/config/ivas_modes.json @@ -7623,7 +7623,7 @@ "EXT": [] }, "in_config": "OSBA_ISM1_HOA3", - "table_name": "OSBA ISM1 HOA3@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM1 Planar HOA3@{table_bitrate} kbps {bandwidth}", "nummetadata": 1, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -7706,7 +7706,7 @@ "EXT": [] }, "in_config": "OSBA_ISM1_HOA2", - "table_name": "OSBA ISM1 HOA2@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM1 Planar HOA2@{table_bitrate} kbps {bandwidth}", "nummetadata": 1, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -7789,7 +7789,7 @@ "EXT": [] }, "in_config": "OSBA_ISM1_FOA", - "table_name": "OSBA ISM1 FOA@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM1 Planar FOA@{table_bitrate} kbps {bandwidth}", "nummetadata": 1, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -7872,7 +7872,7 @@ "EXT": [] }, "in_config": "OSBA_ISM2_HOA3", - "table_name": "OSBA ISM2 HOA3@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM2 Planar HOA3@{table_bitrate} kbps {bandwidth}", "nummetadata": 2, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -7955,7 +7955,7 @@ "EXT": [] }, "in_config": "OSBA_ISM2_HOA2", - "table_name": "OSBA ISM2 HOA2@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM2 Planar HOA2@{table_bitrate} kbps {bandwidth}", "nummetadata": 2, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8038,7 +8038,7 @@ "EXT": [] }, "in_config": "OSBA_ISM2_FOA", - "table_name": "OSBA ISM2 FOA@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM2 Planar FOA@{table_bitrate} kbps {bandwidth}", "nummetadata": 2, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8121,7 +8121,7 @@ "EXT": [] }, "in_config": "OSBA_ISM3_HOA3", - "table_name": "OSBA ISM3 HOA3@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM3 Planar HOA3@{table_bitrate} kbps {bandwidth}", "nummetadata": 3, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8204,7 +8204,7 @@ "EXT": [] }, "in_config": "OSBA_ISM3_HOA2", - "table_name": "OSBA ISM3 HOA2@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM3 Planar HOA2@{table_bitrate} kbps {bandwidth}", "nummetadata": 3, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8287,7 +8287,7 @@ "EXT": [] }, "in_config": "OSBA_ISM3_FOA", - "table_name": "OSBA ISM3 FOA@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM3 Planar FOA@{table_bitrate} kbps {bandwidth}", "nummetadata": 3, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8370,7 +8370,7 @@ "EXT": [] }, "in_config": "OSBA_ISM4_HOA3", - "table_name": "OSBA ISM4 HOA3@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM4 Planar HOA3@{table_bitrate} kbps {bandwidth}", "nummetadata": 4, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8453,7 +8453,7 @@ "EXT": [] }, "in_config": "OSBA_ISM4_HOA2", - "table_name": "OSBA ISM4 HOA2@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM4 Planar HOA2@{table_bitrate} kbps {bandwidth}", "nummetadata": 4, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8536,7 +8536,7 @@ "EXT": [] }, "in_config": "OSBA_ISM4_FOA", - "table_name": "OSBA ISM4 FOA@{table_bitrate} kbps {bandwidth}", + "table_name": "OSBA ISM4 Planar FOA@{table_bitrate} kbps {bandwidth}", "nummetadata": 4, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8619,7 +8619,7 @@ "EXT": [] }, "in_config": "OSBA_ISM1_HOA3", - "table_name": "OSBA ISM1 HOA3 RS {bandwidth}", + "table_name": "OSBA ISM1 Planar HOA3 RS {bandwidth}", "nummetadata": 1, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8666,7 +8666,7 @@ "EXT": [] }, "in_config": "OSBA_ISM1_HOA2", - "table_name": "OSBA ISM1 HOA2 RS {bandwidth}", + "table_name": "OSBA ISM1 Planar HOA2 RS {bandwidth}", "nummetadata": 1, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8713,7 +8713,7 @@ "EXT": [] }, "in_config": "OSBA_ISM1_FOA", - "table_name": "OSBA ISM1 FOA RS {bandwidth}", + "table_name": "OSBA ISM1 Planar FOA RS {bandwidth}", "nummetadata": 1, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8760,7 +8760,7 @@ "EXT": [] }, "in_config": "OSBA_ISM2_HOA3", - "table_name": "OSBA ISM2 HOA RS {bandwidth}", + "table_name": "OSBA ISM2 Planar HOA RS {bandwidth}", "nummetadata": 2, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8807,7 +8807,7 @@ "EXT": [] }, "in_config": "OSBA_ISM2_HOA2", - "table_name": "OSBA ISM2 HOA2 RS {bandwidth}", + "table_name": "OSBA ISM2 Planar HOA2 RS {bandwidth}", "nummetadata": 2, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8854,7 +8854,7 @@ "EXT": [] }, "in_config": "OSBA_ISM2_FOA", - "table_name": "OSBA ISM2 FOA RS {bandwidth}", + "table_name": "OSBA ISM2 Planar FOA RS {bandwidth}", "nummetadata": 2, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8901,7 +8901,7 @@ "EXT": [] }, "in_config": "OSBA_ISM3_HOA3", - "table_name": "OSBA ISM3 HOA3 RS {bandwidth}", + "table_name": "OSBA ISM3 Planar HOA3 RS {bandwidth}", "nummetadata": 3, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8948,7 +8948,7 @@ "EXT": [] }, "in_config": "OSBA_ISM3_HOA2", - "table_name": "OSBA ISM3 HOA2 RS {bandwidth}", + "table_name": "OSBA ISM3 Planar HOA2 RS {bandwidth}", "nummetadata": 3, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -8995,7 +8995,7 @@ "EXT": [] }, "in_config": "OSBA_ISM3_FOA", - "table_name": "OSBA ISM3 FOA RS {bandwidth}", + "table_name": "OSBA ISM3 Planar FOA RS {bandwidth}", "nummetadata": 3, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -9042,7 +9042,7 @@ "EXT": [] }, "in_config": "OSBA_ISM4_HOA3", - "table_name": "OSBA ISM4 HOA3 RS {bandwidth}", + "table_name": "OSBA ISM4 Planar HOA3 RS {bandwidth}", "nummetadata": 4, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -9089,7 +9089,7 @@ "EXT": [] }, "in_config": "OSBA_ISM4_HOA2", - "table_name": "OSBA ISM4 HOA2 RS {bandwidth}", + "table_name": "OSBA ISM4 Planar HOA2 RS {bandwidth}", "nummetadata": 4, "metadatafilenames": [ "stvISM{mdi}.csv" @@ -9136,7 +9136,7 @@ "EXT": [] }, "in_config": "OSBA_ISM4_FOA", - "table_name": "OSBA ISM4 FOA RS {bandwidth}", + "table_name": "OSBA ISM4 Planar FOA RS {bandwidth}", "nummetadata": 4, "metadatafilenames": [ "stvISM{mdi}.csv" -- GitLab From afcec1e39c9e81d05c852e918c311ddad0df9a75 Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Thu, 7 Nov 2024 13:35:58 -0500 Subject: [PATCH 14/40] fix clang format --- lib_enc/ivas_decision_matrix_enc.c | 6 +++--- lib_enc/stat_enc.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index e18d571ef2..b2291fb6d2 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -219,7 +219,7 @@ void ivas_decision_matrix_enc( /* For TD stereo at 16.4kbps (TD is not allowed at 13k2), we can't overwrite the coder_type here WHEN it is TRANSITION */ /* as it has been used for TD bit allocation and must remained the same at the decoder side to ensure identical bit allocation */ if ( st->idchan == 0 && !( element_brate <= IVAS_16k4 && st->coder_type == TRANSITION && st->element_mode == IVAS_CPE_TD ) ) - { + { st->coder_type = AUDIO; } #ifdef DEBUG_MODE_TD @@ -389,8 +389,8 @@ void ivas_decision_matrix_enc( #ifdef DEBUG_MODE_TD if ( st->idchan == 0 && st->element_mode == IVAS_CPE_TD && st->core == ACELP_CORE && element_brate < IVAS_24k4 ) { - if ( (st->coder_type == TRANSITION && st->mod_ct_ST != TRANSITION ) || - ( st->coder_type != TRANSITION && st->mod_ct_ST == TRANSITION ) ) + if ( ( st->coder_type == TRANSITION && st->mod_ct_ST != TRANSITION ) || + ( st->coder_type != TRANSITION && st->mod_ct_ST == TRANSITION ) ) { printf( "st->coder_type != st->mod_ct_ST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" ); exit( -555 ); diff --git a/lib_enc/stat_enc.h b/lib_enc/stat_enc.h index 144ed4c48f..323cc90037 100755 --- a/lib_enc/stat_enc.h +++ b/lib_enc/stat_enc.h @@ -1558,7 +1558,7 @@ typedef struct enc_core_structure int16_t sba_br_sw_while_no_data; /* Indicator for SBA bitrate switch while in FRAME_NO_DATA mode */ #ifdef DEBUG_MODE_TD - short mod_ct_ST; + short mod_ct_ST; #endif } Encoder_State, *ENC_CORE_HANDLE; -- GitLab From 4040d977eda7bada1107d3ef059c369581200ba5 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Fri, 8 Nov 2024 14:48:03 +0100 Subject: [PATCH 15/40] explicitly pass nullptr to param that is anyway unused --- lib_dec/ivas_stereo_mdct_core_dec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index c96a8d4e86..c20dfdd5a5 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -644,7 +644,11 @@ static void run_min_stats( } } +#ifdef NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING + noisy_speech_detection( st->hFdCngDec, st->VAD && st->m_frame_type == ACTIVE_FRAME, NULL ); +#else noisy_speech_detection( st->hFdCngDec, st->VAD && st->m_frame_type == ACTIVE_FRAME, power_spec ); +#endif st->hFdCngDec->hFdCngCom->likelihood_noisy_speech = 0.99f * st->hFdCngDec->hFdCngCom->likelihood_noisy_speech + 0.01f * (float) st->hFdCngDec->hFdCngCom->flag_noisy_speech; -- GitLab From 5e9fb905b784214d741624f8e1f96371ef09232b Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Fri, 8 Nov 2024 16:06:32 +0100 Subject: [PATCH 16/40] fix noisy_speech_detection for MDCT-Stereo --- lib_dec/ivas_stereo_mdct_core_dec.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index c20dfdd5a5..20e4dcc8a0 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -643,18 +643,25 @@ static void run_min_stats( #endif } } +#ifndef NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING -#ifdef NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING - noisy_speech_detection( st->hFdCngDec, st->VAD && st->m_frame_type == ACTIVE_FRAME, NULL ); -#else noisy_speech_detection( st->hFdCngDec, st->VAD && st->m_frame_type == ACTIVE_FRAME, power_spec ); -#endif st->hFdCngDec->hFdCngCom->likelihood_noisy_speech = 0.99f * st->hFdCngDec->hFdCngCom->likelihood_noisy_speech + 0.01f * (float) st->hFdCngDec->hFdCngCom->flag_noisy_speech; st->lp_noise = st->hFdCngDec->lp_noise; +#endif } +#ifdef NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING + if ( st->core == TCX_20_CORE ) + { + noisy_speech_detection( st->hFdCngDec, save_VAD[ch] && st->m_frame_type == ACTIVE_FRAME, x[ch][0] ); + st->hFdCngDec->hFdCngCom->likelihood_noisy_speech = 0.99f * st->hFdCngDec->hFdCngCom->likelihood_noisy_speech + 0.01f * (float) st->hFdCngDec->hFdCngCom->flag_noisy_speech; + st->lp_noise = st->hFdCngDec->lp_noise; + } +#endif + if ( will_estimate_noise_on_channel[0] || will_estimate_noise_on_channel[1] || st->bfi ) { ApplyFdCng( NULL, st->bfi ? NULL : power_spec, NULL, NULL, st, st->bfi, 0 ); -- GitLab From 611a738efab340455a94154724a4bffd65fa0298 Mon Sep 17 00:00:00 2001 From: vaclav Date: Fri, 8 Nov 2024 16:09:24 +0100 Subject: [PATCH 17/40] add FIX_1209_SID_SIGNALING when DEBUGGING is activated --- lib_com/bitstream.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index babb9f3e0e..9dd2819283 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -2624,9 +2624,11 @@ ivas_error preview_indices( case SID_ISM: st_ivas->ivas_format = ISM_FORMAT; break; +#ifndef FIX_1209_SID_SIGNALING case SID_MULTICHANNEL: st_ivas->ivas_format = MC_FORMAT; break; +#endif case SID_SBA_1TC: st_ivas->ivas_format = SBA_FORMAT; st_ivas->element_mode_init = IVAS_SCE; @@ -2651,7 +2653,9 @@ ivas_error preview_indices( } break; default: +#ifndef FIX_1209_SID_SIGNALING /* This should actually be impossible, since only 3 bits are read, so if this happens something is broken */ +#endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } } -- GitLab From 0c6a51a03392d3faff26947e1af4468347de97a0 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:21:56 +0100 Subject: [PATCH 18/40] [cleanup] accept OBJ_EDITING_INTERFACE, OBJ_EDITING_API, OBJ_EDITING_EXAMPLE, OMASA_OBJECT_EDITING, OBJ_EDITING_PARAMISM_BIN --- apps/decoder.c | 44 --- lib_com/common_api_types.h | 4 - lib_com/ivas_cnst.h | 2 - lib_com/ivas_error.h | 4 - lib_com/ivas_ism_com.c | 2 - lib_com/ivas_prot.h | 12 - lib_com/ivas_stat_com.h | 2 - lib_com/options.h | 7 - lib_dec/ivas_dirac_dec.c | 9 - lib_dec/ivas_init_dec.c | 16 - lib_dec/ivas_ism_dec.c | 8 - lib_dec/ivas_ism_param_dec.c | 185 ----------- lib_dec/ivas_ism_renderer.c | 20 -- lib_dec/ivas_jbm_dec.c | 170 ---------- lib_dec/ivas_masa_dec.c | 6 - lib_dec/ivas_mc_param_dec.c | 165 ---------- lib_dec/ivas_objectRenderer_internal.c | 2 - lib_dec/ivas_omasa_dec.c | 90 ------ lib_dec/ivas_osba_dec.c | 2 - lib_dec/ivas_sba_dec.c | 2 - lib_dec/ivas_stat_dec.h | 21 -- lib_dec/lib_dec.c | 202 ------------ lib_dec/lib_dec.h | 14 - lib_rend/ivas_dirac_dec_binaural_functions.c | 317 ------------------- lib_rend/ivas_dirac_output_synthesis_dec.c | 14 - lib_rend/ivas_objectRenderer.c | 6 - lib_rend/ivas_objectRenderer_sources.c | 10 - lib_rend/ivas_prot_rend.h | 4 - 28 files changed, 1340 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index c2c64e6ade..ffeb49748b 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -197,9 +197,7 @@ static ivas_error printBitstreamInfoVoip( DecArguments arg, BS_READER_HANDLE hBs static int16_t app_own_random( int16_t *seed ); static IVAS_DEC_FORCED_REND_MODE parseForcedRendModeDec( char *forcedRendModeChar ); #endif -#ifdef OBJ_EDITING_EXAMPLE static void do_object_editing( IVAS_EDITABLE_PARAMETERS *editableParameters ); -#endif /*------------------------------------------------------------------------------------------* @@ -2506,11 +2504,9 @@ static ivas_error decodeG192( #else /* Feed into decoder */ if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, bit_stream, num_bits, bfi -#ifdef OBJ_EDITING_API , isSplitRend, splitRendBits -#endif ) ) != IVAS_ERR_OK ) #endif { @@ -2547,7 +2543,6 @@ static ivas_error decodeG192( } #endif -#ifdef OBJ_EDITING_API /* Object metadata editing */ if ( arg.objEditEnabled ) { @@ -2561,10 +2556,8 @@ static ivas_error decodeG192( } /* Do object metadata editing here ... */ -#ifdef OBJ_EDITING_EXAMPLE do_object_editing( &editableParameters ); -#endif /* set new object parameters */ if ( ( error = IVAS_DEC_SetEditableParameters( hIvasDec, editableParameters ) ) != IVAS_ERR_OK ) { @@ -2580,7 +2573,6 @@ static ivas_error decodeG192( goto cleanup; } } -#endif /* Render */ if ( isSplitRend ) @@ -2596,19 +2588,11 @@ static ivas_error decodeG192( } else { -#ifdef OBJ_EDITING_API if ( ( error = IVAS_DEC_GetSamplesRenderer( hIvasDec, nSamplesToRender, IVAS_DEC_PCM_INT16, (void *) ( pcmBuf + nOutChannels * nSamplesRendered ), &nSamplesRendered_loop, &needNewFrame ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError in IVAS_DEC_GetSamplesRenderer(): %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } -#else - if ( ( error = IVAS_DEC_GetSamples( hIvasDec, nSamplesToRender, IVAS_DEC_PCM_INT16, (void *) ( pcmBuf + nOutChannels * nSamplesRendered ), &nSamplesRendered_loop, &needNewFrame ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nError in IVAS_DEC_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) ); - goto cleanup; - } -#endif nSamplesRendered += nSamplesRendered_loop; nSamplesToRender -= nSamplesRendered_loop; @@ -3147,10 +3131,8 @@ static ivas_error decodeVoIP( bool bitstreamReadDone = false; #endif -#ifdef OBJ_EDITING_API bool parameterAvailableForEditing = false; uint16_t nSamplesRendered = 0; -#endif vec_pos_update = 0; if ( ( error = IVAS_DEC_GetRenderFramesizeMs( hIvasDec, &systemTimeInc_ms ) ) != IVAS_ERR_OK ) @@ -3268,9 +3250,7 @@ static ivas_error decodeVoIP( while ( 1 ) { -#ifdef OBJ_EDITING_API nSamplesRendered = 0; -#endif /* reference vector */ if ( arg.enableReferenceVectorTracking && vec_pos_update == 0 ) @@ -3433,37 +3413,19 @@ static ivas_error decodeVoIP( /* decode and get samples */ -#ifdef OBJ_EDITING_API while ( nSamplesRendered < nOutSamples ) { -#endif #ifdef SUPPORT_JBM_TRACEFILE #ifdef FIX_HRTF_LOAD -#ifdef OBJ_EDITING_API if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &bitstreamReadDone, &nSamplesRendered, ¶meterAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) #else - if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &bitstreamReadDone, systemTime_ms ) ) != IVAS_ERR_OK ) -#endif -#else -#ifdef OBJ_EDITING_API if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &nSamplesRendered, ¶meterAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, systemTime_ms ) ) != IVAS_ERR_OK ) -#endif #endif #else #ifdef FIX_HRTF_LOAD -#ifdef OBJ_EDITING_API if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, &bitstreamReadDone, &nSamplesRendered, ¶meterAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) #else - if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, &bitstreamReadDone, systemTime_ms ) ) != IVAS_ERR_OK ) -#endif -#else -#ifdef OBJ_EDITING_API if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, systemTime_ms, &nSamplesRendered, ¶meterAvailableForEditing ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, systemTime_ms ) ) != IVAS_ERR_OK ) -#endif #endif #endif { @@ -3497,7 +3459,6 @@ static ivas_error decodeVoIP( } #endif -#ifdef OBJ_EDITING_API /* Object metadata editing */ if ( arg.objEditEnabled && parameterAvailableForEditing == true ) { @@ -3511,10 +3472,8 @@ static ivas_error decodeVoIP( } /* Do object metadata editing here ... */ -#ifdef OBJ_EDITING_EXAMPLE do_object_editing( &editableParameters ); -#endif /* set new object parameters */ if ( ( error = IVAS_DEC_SetEditableParameters( hIvasDec, editableParameters ) ) != IVAS_ERR_OK ) { @@ -3523,7 +3482,6 @@ static ivas_error decodeVoIP( } } } /* while ( nSamplesRendered < nOutSamples ) */ -#endif /* write JBM Offset file entry */ if ( jbmOffsetWriter != NULL ) @@ -3806,7 +3764,6 @@ cleanup: return error; } -#ifdef OBJ_EDITING_EXAMPLE /*---------------------------------------------------------------------* * do_object_editing() @@ -3859,7 +3816,6 @@ static void do_object_editing( return; } -#endif #ifdef DEBUGGING diff --git a/lib_com/common_api_types.h b/lib_com/common_api_types.h index c0123bf7fd..766772dec8 100644 --- a/lib_com/common_api_types.h +++ b/lib_com/common_api_types.h @@ -128,13 +128,10 @@ typedef struct _IVAS_ISM_METADATA float yaw; float pitch; int16_t non_diegetic_flag; -#ifdef OBJ_EDITING_API float gain; -#endif } IVAS_ISM_METADATA; -#ifdef OBJ_EDITING_API typedef struct _IVAS_EDITABLE_PARAMETERS { int16_t num_obj; @@ -142,7 +139,6 @@ typedef struct _IVAS_EDITABLE_PARAMETERS float gain_bed; } IVAS_EDITABLE_PARAMETERS; -#endif typedef struct { diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 4e6ad47f24..4a56f13237 100755 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1219,11 +1219,9 @@ enum #define MASA_MAXIMUM_TWO_DIR_BANDS 24 #define NBITS_HR_COH 4 #define OMASA_TDREND_MATCHING_GAIN 0.7943f -#ifdef OMASA_OBJECT_EDITING #define OMASA_GAIN_EDIT_THR 0.06f /* OMASA gain change threshold */ #define OMASA_AZI_EDIT_THR 1.0f /* OMASA-DISC azimuth change threshold */ #define OMASA_ELE_EDIT_THR 2.0f /* OMASA-DISC elevation change threshold */ -#endif #define MASA_JBM_RINGBUFFER_FRAMES 3 diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index 905be753a5..50b6c2d9bc 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -77,9 +77,7 @@ typedef enum IVAS_ERR_EXT_ORIENTATION_NOT_SUPPORTED, IVAS_ERR_DIRECTIVITY_NOT_SUPPORTED, IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED, -#ifdef OBJ_EDITING_API IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED, -#endif IVAS_ERR_INVALID_HRTF, IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA, IVAS_ERR_INVALID_INPUT_FORMAT, @@ -257,10 +255,8 @@ static inline const char *ivas_error_to_string( ivas_error error_code ) return "Directivity not supported"; case IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED: return "Acoustic environment not supported"; -#ifdef OBJ_EDITING_API case IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED: return "Objects editing not supported"; -#endif case IVAS_ERR_INVALID_HRTF: return "Unsupported HRTF filter set"; case IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA: diff --git a/lib_com/ivas_ism_com.c b/lib_com/ivas_ism_com.c index 99131d5e0f..82aec26acc 100644 --- a/lib_com/ivas_ism_com.c +++ b/lib_com/ivas_ism_com.c @@ -418,7 +418,6 @@ void ivas_ism_reset_metadata( hIsmMeta->ism_metadata_flag = 0; hIsmMeta->non_diegetic_flag = 0; -#ifdef OBJ_EDITING_API hIsmMeta->edited_gain = 1.0f; hIsmMeta->edited_azimuth = 0.0f; hIsmMeta->edited_elevation = 0.0f; @@ -427,7 +426,6 @@ void ivas_ism_reset_metadata( hIsmMeta->edited_radius = 1.0f; hIsmMeta->gain = 1.0f; hIsmMeta->non_diegetic_flag = 0; -#endif return; } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 847cb924f4..f1f3ddf218 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -821,11 +821,9 @@ void ivas_jbm_dec_feed_tc_to_renderer( float *data /* i/o: transport channels/output synthesis signal */ ); -#ifdef OBJ_EDITING_API void ivas_dec_prepare_renderer( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); -#endif ivas_error ivas_jbm_dec_set_discard_samples( Decoder_Struct *st_ivas /* i/o: main IVAS decoder structre */ @@ -1113,7 +1111,6 @@ void ivas_param_ism_dec_digest_tc( float *transport_channels_f[] /* i : synthesized core-coder transport channels/DirAC output */ ); -#ifdef OBJ_EDITING_API void ivas_param_ism_dec_dequant_md( Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ ); @@ -1122,7 +1119,6 @@ void ivas_param_ism_dec_prepare_renderer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ const uint16_t nCldfbSlots /* i : number of CLDFB slots in transport channels */ ); -#endif void ivas_ism_param_dec_tc_gain_ajust( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ @@ -3880,12 +3876,10 @@ void ivas_param_mc_dec_digest_tc( float *transport_channels_f[] /* i/o: synthesized core-coder transport channels/DirAC output*/ ); -#ifdef OBJ_EDITING_API void ivas_param_mc_dec_prepare_renderer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ const uint8_t nCldfbSlots /* i : number of CLDFB slots in the transport channels */ ); -#endif void ivas_param_mc_dec_render( Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ @@ -5625,7 +5619,6 @@ ivas_error ivas_osba_render_sf( float *output_f[] /* o : rendered time signal */ ); -#ifdef OBJ_EDITING_API void ivas_osba_stereo_add_channels( float *tc_f[], /* i : transport channels */ float *output_f[], /* i/o: output channels */ @@ -5635,7 +5628,6 @@ void ivas_osba_stereo_add_channels( const int16_t ism_mode, /* i : ISM mode */ const int16_t n_samples_to_render /* i : output frame length per channel */ ); -#endif void ivas_osba_data_close( SBA_ISM_DATA_HANDLE *hSbaIsmData /* i/o: OSBA rendering handle */ @@ -5824,11 +5816,7 @@ void ivas_omasa_dirac_rend_jbm( float *output_f[] /* o : rendered time signal */ ); -#ifdef OMASA_OBJECT_EDITING void ivas_omasa_preProcessStereoTransportsForEditedObjects( -#else -void ivas_omasa_preProcessStereoTransportsForMovedObjects( -#endif Decoder_Struct *st_ivas, float inRe[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], float inIm[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index 594e30ff26..aa3720a1f0 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -65,7 +65,6 @@ typedef struct float yaw; /* yaw value read from the input metadata file */ float pitch; /* pitch value read from the input metadata file */ -#ifdef OBJ_EDITING_API float gain; float edited_azimuth; @@ -75,7 +74,6 @@ typedef struct float edited_yaw; float edited_pitch; float edited_gain; -#endif int16_t non_diegetic_flag; /* Non-diegetic (non-headtracked) object flag */ diff --git a/lib_com/options.h b/lib_com/options.h index b82706a7eb..89c48d5a52 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -154,15 +154,8 @@ /* ################## Start DEVELOPMENT switches ######################### */ -#define OBJ_EDITING_INTERFACE /* Interface for object editing */ -#ifdef OBJ_EDITING_INTERFACE -#define OBJ_EDITING_API /* object editing changes related to the API */ #define OBJ_EDITING_COMMANDLINE /* obj editing command-line option */ -#define OBJ_EDITING_EXAMPLE /* obj editing example code in decoder.c */ -#define OMASA_OBJECT_EDITING /* Nokia: object editing interface for OMASA */ -#define OBJ_EDITING_PARAMISM_BIN /* Nokia: object editing for ParamISM to binaural */ #define FIX_BRATE_SWITCHING /* VA: fix bitrate switching cases in OMASA and OSBA */ -#endif /* ################### Start BE switches ################################# */ /* only BE switches wrt selection floating point code */ diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index f28378698f..274ad432dd 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -1839,17 +1839,10 @@ void ivas_dirac_dec_render_sf( } } -#ifdef OMASA_OBJECT_EDITING if ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ ) { ivas_omasa_preProcessStereoTransportsForEditedObjects( st_ivas, Cldfb_RealBuffer_Temp, Cldfb_ImagBuffer_Temp, hSpatParamRendCom->num_freq_bands, subframe_idx ); } -#else - if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC && st_ivas->ism_mode != ISM_MASA_MODE_MASA_ONE_OBJ ) - { - ivas_omasa_preProcessStereoTransportsForMovedObjects( st_ivas, Cldfb_RealBuffer_Temp, Cldfb_ImagBuffer_Temp, hSpatParamRendCom->num_freq_bands, subframe_idx ); - } -#endif } for ( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ ) @@ -2258,9 +2251,7 @@ void ivas_dirac_dec_render_sf( if ( st_ivas->hEFAPdata != NULL ) { efap_determine_gains( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains[i], az1, el1, EFAP_MODE_EFAP ); -#ifdef OBJ_EDITING_API v_multc( st_ivas->hIsmRendererData->gains[i], st_ivas->hIsmMetaData[i]->edited_gain, st_ivas->hIsmRendererData->gains[i], nchan_out_woLFE ); -#endif } } diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 0984693976..36c1abf31c 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1580,7 +1580,6 @@ ivas_error ivas_init_decoder( { st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed2 = st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed3; -#ifdef OBJ_EDITING_PARAMISM_BIN if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) { /* reusing OMASA function for allocating and initializing MASA_ISM rendering handle (even though not in OMASA) */ @@ -1589,7 +1588,6 @@ ivas_error ivas_init_decoder( return error; } } -#endif } else if ( st_ivas->ism_mode == ISM_MODE_DISC ) { @@ -1907,24 +1905,10 @@ ivas_error ivas_init_decoder( reset_indices_dec( st_ivas->hSCE[0]->hCoreCoder[0] ); -#ifndef OMASA_OBJECT_EDITING - if ( hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) - { -#endif if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) { return error; } -#ifndef OMASA_OBJECT_EDITING - } - else - { - if ( ( error = ivas_ism_metadata_dec_create( st_ivas, 1, NULL ) ) != IVAS_ERR_OK ) - { - return error; - } - } -#endif } else if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index bd0e7075e6..69a6c832d8 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -204,11 +204,9 @@ static ivas_error ivas_ism_bitrate_switching_dec( /* close the parametric binaural renderer */ ivas_dirac_dec_close_binaural_data( st_ivas->hDiracDecBin ); -#ifdef OBJ_EDITING_PARAMISM_BIN /* Close omasa data struct (used for object editing) */ ivas_omasa_data_close( &st_ivas->hMasaIsmData ); -#endif /* Open the TD Binaural renderer */ if ( st_ivas->hHrtfTD == NULL || st_ivas->hBinRendererTd == NULL ) { @@ -241,10 +239,8 @@ static ivas_error ivas_ism_bitrate_switching_dec( /* close the parametric binaural renderer */ ivas_dirac_dec_close_binaural_data( st_ivas->hDiracDecBin ); -#ifdef OBJ_EDITING_PARAMISM_BIN /* Close omasa data struct (used for object editing) */ ivas_omasa_data_close( &st_ivas->hMasaIsmData ); -#endif /* Open Crend Binaural renderer */ if ( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hRenderConfig, st_ivas->hSetOfHRTF, st_ivas->hHrtfStatistics, st_ivas->hDecoderConfig->output_Fs, ( st_ivas->hSplitBinRend == NULL ) ? 1 : st_ivas->hSplitBinRend->splitrend.multiBinPoseData.num_poses ) ) != IVAS_ERR_OK ) @@ -278,13 +274,11 @@ static ivas_error ivas_ism_bitrate_switching_dec( return error; } -#ifdef OBJ_EDITING_PARAMISM_BIN /* Open omasa data struct (used for object editing) */ if ( ( error = ivas_omasa_data_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } -#endif /* Close the TD Binaural renderer */ ivas_td_binaural_close( &st_ivas->hBinRendererTd ); @@ -313,13 +307,11 @@ static ivas_error ivas_ism_bitrate_switching_dec( return error; } -#ifdef OBJ_EDITING_PARAMISM_BIN /* Open omasa data struct (used for object editing) */ if ( ( error = ivas_omasa_data_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } -#endif /* close the crend binaural renderer */ ivas_rend_closeCrend( &( st_ivas->hCrendWrapper ), ( st_ivas->hSplitBinRend == NULL ) ? 1 : st_ivas->hSplitBinRend->splitrend.multiBinPoseData.num_poses ); diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index db93983e59..a751903bd4 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -740,23 +740,14 @@ void ivas_ism_dec_digest_tc( if ( st_ivas->intern_config == IVAS_AUDIO_CONFIG_STEREO ) { -#ifdef OBJ_EDITING_API ivas_ism_get_stereo_gains( st_ivas->hIsmMetaData[i]->edited_azimuth, st_ivas->hIsmMetaData[i]->edited_elevation, &st_ivas->hIsmRendererData->gains[i][0], &st_ivas->hIsmRendererData->gains[i][1] ); v_multc( st_ivas->hIsmRendererData->gains[i], st_ivas->hIsmMetaData[i]->edited_gain, st_ivas->hIsmRendererData->gains[i], CPE_CHANNELS ); -#else - ivas_ism_get_stereo_gains( st_ivas->hIsmMetaData[i]->azimuth, st_ivas->hIsmMetaData[i]->elevation, &st_ivas->hIsmRendererData->gains[i][0], &st_ivas->hIsmRendererData->gains[i][1] ); -#endif } else { // TODO tmu review when #215 is resolved -#ifdef OBJ_EDITING_API azimuth = (int16_t) floorf( st_ivas->hIsmMetaData[i]->edited_azimuth + 0.5f ); elevation = (int16_t) floorf( st_ivas->hIsmMetaData[i]->edited_elevation + 0.5f ); -#else - azimuth = (int16_t) floorf( st_ivas->hIsmMetaData[i]->azimuth + 0.5f ); - elevation = (int16_t) floorf( st_ivas->hIsmMetaData[i]->elevation + 0.5f ); -#endif if ( ( st_ivas->renderer_type == RENDERER_TD_PANNING || st_ivas->renderer_type == RENDERER_OSBA_LS || @@ -772,9 +763,7 @@ void ivas_ism_dec_digest_tc( if ( st_ivas->hEFAPdata != NULL ) { efap_determine_gains( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains[i], azimuth, elevation, EFAP_MODE_EFAP ); -#ifdef OBJ_EDITING_API v_multc( st_ivas->hIsmRendererData->gains[i], st_ivas->hIsmMetaData[i]->edited_gain, st_ivas->hIsmRendererData->gains[i], st_ivas->hEFAPdata->numSpk ); -#endif } } else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || @@ -783,9 +772,7 @@ void ivas_ism_dec_digest_tc( { /*get HOA gets for direction (ACN/SN3D)*/ ivas_dirac_dec_get_response( azimuth, elevation, st_ivas->hIsmRendererData->gains[i], st_ivas->hIntSetup.ambisonics_order ); -#ifdef OBJ_EDITING_API v_multc( st_ivas->hIsmRendererData->gains[i], st_ivas->hIsmMetaData[i]->edited_gain, st_ivas->hIsmRendererData->gains[i], ivas_sba_get_nchan( st_ivas->hIntSetup.ambisonics_order, 0 ) ); -#endif } } } @@ -807,21 +794,9 @@ void ivas_param_ism_dec_digest_tc( float *transport_channels_f[] /* i/o: synthesized core-coder transport channels/DirAC output */ ) { -#ifndef OBJ_EDITING_API - int16_t ch, nchan_transport, nchan_out, nchan_out_woLFE, i; - int16_t slot_idx, bin_idx; - int32_t ivas_total_brate; -#else int16_t ch, nchan_transport; int16_t slot_idx; -#endif int16_t output_frame; -#ifndef OBJ_EDITING_API - float ref_power[CLDFB_NO_CHANNELS_MAX]; - float cx_diag[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_DMX]; - /* Direct Response/EFAP Gains */ - float direct_response[MAX_NUM_OBJECTS][PARAM_ISM_MAX_CHAN]; -#endif PARAM_ISM_DEC_HANDLE hParamIsmDec; SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; int16_t fade_len; @@ -836,101 +811,8 @@ void ivas_param_ism_dec_digest_tc( nchan_transport = st_ivas->nchan_transport; -#ifndef OBJ_EDITING_API - ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; - - if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) - { - nchan_out = st_ivas->nchan_ism; - nchan_out_woLFE = nchan_out; - st_ivas->hDecoderConfig->nchan_out = nchan_out; - } - else - { - nchan_out = st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe; - nchan_out_woLFE = st_ivas->hIntSetup.nchan_out_woLFE; - } - -#endif push_wmops( "ivas_param_ism_dec_digest_tc" ); -#ifndef OBJ_EDITING_API - /* general setup */ - ivas_jbm_dec_get_adapted_linear_interpolator( DEFAULT_JBM_CLDFB_TIMESLOTS, nCldfbSlots, hParamIsmDec->hParamIsmRendering->interpolator ); - - ivas_dirac_dec_set_md_map( st_ivas, nCldfbSlots ); - - /* set buffers to zero */ - for ( bin_idx = 0; bin_idx < CLDFB_NO_CHANNELS_MAX; bin_idx++ ) - { - set_zero( cx_diag[bin_idx], PARAM_ISM_MAX_DMX ); - } - set_zero( ref_power, CLDFB_NO_CHANNELS_MAX ); - - /* Frame-level Processing */ - /* De-quantization */ - if ( !( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) ) - { - ivas_param_ism_dec_dequant_DOA( hParamIsmDec, st_ivas->nchan_ism ); - ivas_param_ism_dec_dequant_powrat( hParamIsmDec ); - st_ivas->hISMDTX.dtx_flag = 0; - } - else - { - st_ivas->hISMDTX.dtx_flag = 1; - } - - /* obtain the direct response using EFAP */ - if ( !( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) ) - { - for ( i = 0; i < st_ivas->nchan_ism; i++ ) - { - efap_determine_gains( st_ivas->hEFAPdata, direct_response[i], hParamIsmDec->azimuth_values[i], hParamIsmDec->elevation_values[i], EFAP_MODE_EFAP ); - } - } - else - { - int16_t j; - - for ( i = 0; i < st_ivas->nchan_ism; i++ ) - { - for ( j = 0; j < nchan_out_woLFE; j++ ) - { - if ( i == j ) - { - direct_response[i][j] = 1.0f; - } - else - { - direct_response[i][j] = 0.0f; - } - } - } - - for ( j = 0; j < nchan_out_woLFE; j++ ) - { - if ( hParamIsmDec->azimuth_values[j] > 0.0f ) - { - hParamIsmDec->hParamIsmRendering->proto_matrix[j] = 1.0f; - hParamIsmDec->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.0f; - } - else - { - if ( hParamIsmDec->azimuth_values[j] < 0.0f ) - { - hParamIsmDec->hParamIsmRendering->proto_matrix[j] = 0.0f; - hParamIsmDec->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 1.0f; - } - else /* == 0.0f */ - { - hParamIsmDec->hParamIsmRendering->proto_matrix[j] = 0.5f; - hParamIsmDec->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.5f; - } - } - } - } - -#endif if ( st_ivas->hDecoderConfig->Opt_tsm ) { /*TODO : FhG to check*/ @@ -951,23 +833,9 @@ void ivas_param_ism_dec_digest_tc( mvr2r( RealBuffer, &hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], hSpatParamRendCom->num_freq_bands ); mvr2r( ImagBuffer, &hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], hSpatParamRendCom->num_freq_bands ); } -#ifndef OBJ_EDITING_API - - ivas_param_ism_collect_slot( hParamIsmDec, &hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], &hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], ch, ref_power, cx_diag ); -#endif } } -#ifndef OBJ_EDITING_API - /* Obtain Mixing Matrix on a frame-level */ - for ( bin_idx = 0; bin_idx < hSpatParamRendCom->num_freq_bands; bin_idx++ ) - { - set_f( hParamIsmDec->hParamIsmRendering->mixing_matrix_lin[bin_idx], 0.0f, nchan_transport * nchan_out_woLFE ); - } - - /* Compute mixing matrix */ - ivas_param_ism_compute_mixing_matrix( st_ivas->nchan_ism, hParamIsmDec, st_ivas->hISMDTX, direct_response, nchan_transport, nchan_out_woLFE, cx_diag, ref_power, hParamIsmDec->hParamIsmRendering->mixing_matrix_lin ); -#endif pop_wmops(); @@ -975,7 +843,6 @@ void ivas_param_ism_dec_digest_tc( } -#ifdef OBJ_EDITING_API /*-------------------------------------------------------------------------* * ivas_param_ism_dec_dequant_md() * @@ -1061,11 +928,7 @@ void ivas_param_ism_dec_prepare_renderer( { for ( i = 0; i < st_ivas->nchan_ism; i++ ) { -#ifdef OBJ_EDITING_API efap_determine_gains( st_ivas->hEFAPdata, direct_response[i], hParamIsmDec->edited_azimuth_values[i], hParamIsmDec->edited_elevation_values[i], EFAP_MODE_EFAP ); -#else - efap_determine_gains( st_ivas->hEFAPdata, direct_response[i], hParamIsmDec->azimuth_values[i], hParamIsmDec->elevation_values[i], EFAP_MODE_EFAP ); -#endif } } else @@ -1132,7 +995,6 @@ void ivas_param_ism_dec_prepare_renderer( return; } -#endif /*-------------------------------------------------------------------------* @@ -1373,7 +1235,6 @@ void ivas_param_ism_dec_render( /* store MetaData parameters */ for ( ch = 0; ch < st_ivas->nchan_ism; ch++ ) { -#ifdef OBJ_EDITING_API if ( st_ivas->hParamIsmDec->azimuth_values[ch] > 180.0f ) { st_ivas->hIsmMetaData[ch]->azimuth = st_ivas->hParamIsmDec->edited_azimuth_values[ch] - 360.0f; @@ -1383,18 +1244,6 @@ void ivas_param_ism_dec_render( st_ivas->hIsmMetaData[ch]->azimuth = st_ivas->hParamIsmDec->edited_azimuth_values[ch]; } st_ivas->hIsmMetaData[ch]->elevation = st_ivas->hParamIsmDec->edited_elevation_values[ch]; -#else - if ( st_ivas->hParamIsmDec->azimuth_values[ch] > 180.0f ) - { - st_ivas->hIsmMetaData[ch]->azimuth = st_ivas->hParamIsmDec->azimuth_values[ch] - 360.0f; - } - else - { - st_ivas->hIsmMetaData[ch]->azimuth = st_ivas->hParamIsmDec->azimuth_values[ch]; - } - - st_ivas->hIsmMetaData[ch]->elevation = st_ivas->hParamIsmDec->elevation_values[ch]; -#endif } } @@ -1422,37 +1271,15 @@ void ivas_param_ism_params_to_masa_param_mapping( int16_t azimuth[2]; int16_t elevation[2]; float power_ratio[2]; -#ifdef OBJ_EDITING_PARAMISM_BIN MASA_ISM_DATA_HANDLE hMasaIsmData; int16_t obj; int16_t obj_idx; -#endif -#ifndef OBJ_EDITING_API - int32_t ivas_total_brate; -#endif hParamIsmDec = st_ivas->hParamIsmDec; hSpatParamRendCom = st_ivas->hSpatParamRendCom; -#ifdef OBJ_EDITING_PARAMISM_BIN hMasaIsmData = st_ivas->hMasaIsmData; -#endif nBins = hSpatParamRendCom->num_freq_bands; -#ifndef OBJ_EDITING_API - ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; - - if ( !( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) ) - { - ivas_param_ism_dec_dequant_DOA( hParamIsmDec, st_ivas->nchan_ism ); - ivas_param_ism_dec_dequant_powrat( hParamIsmDec ); - st_ivas->hISMDTX.dtx_flag = 0; - } - else - { - st_ivas->hISMDTX.dtx_flag = 1; - } - -#endif if ( st_ivas->hISMDTX.dtx_flag ) { float energy_ratio; @@ -1484,22 +1311,12 @@ void ivas_param_ism_params_to_masa_param_mapping( brange[0] = hParamIsmDec->hParamIsm->band_grouping[band_idx]; brange[1] = hParamIsmDec->hParamIsm->band_grouping[band_idx + 1]; -#ifdef OBJ_EDITING_API azimuth[0] = (int16_t) roundf( hParamIsmDec->edited_azimuth_values[hParamIsmDec->hParamIsm->obj_indices[band_idx][0][0]] ); elevation[0] = (int16_t) roundf( hParamIsmDec->edited_elevation_values[hParamIsmDec->hParamIsm->obj_indices[band_idx][0][0]] ); -#else - azimuth[0] = (int16_t) roundf( hParamIsmDec->azimuth_values[hParamIsmDec->hParamIsm->obj_indices[band_idx][0][0]] ); - elevation[0] = (int16_t) roundf( hParamIsmDec->elevation_values[hParamIsmDec->hParamIsm->obj_indices[band_idx][0][0]] ); -#endif power_ratio[0] = hParamIsmDec->power_ratios[band_idx][0][0]; -#ifdef OBJ_EDITING_API azimuth[1] = (int16_t) roundf( hParamIsmDec->edited_azimuth_values[hParamIsmDec->hParamIsm->obj_indices[band_idx][0][1]] ); elevation[1] = (int16_t) roundf( hParamIsmDec->edited_elevation_values[hParamIsmDec->hParamIsm->obj_indices[band_idx][0][1]] ); -#else - azimuth[1] = (int16_t) roundf( hParamIsmDec->azimuth_values[hParamIsmDec->hParamIsm->obj_indices[band_idx][0][1]] ); - elevation[1] = (int16_t) roundf( hParamIsmDec->elevation_values[hParamIsmDec->hParamIsm->obj_indices[band_idx][0][1]] ); -#endif power_ratio[1] = hParamIsmDec->power_ratios[band_idx][0][1]; for ( sf_idx = 0; sf_idx < MAX_PARAM_SPATIAL_SUBFRAMES; sf_idx++ ) @@ -1526,7 +1343,6 @@ void ivas_param_ism_params_to_masa_param_mapping( } } -#ifdef OBJ_EDITING_PARAMISM_BIN for ( obj = 0; obj < st_ivas->nchan_ism; obj++ ) { for ( sf_idx = 0; sf_idx < MAX_PARAM_SPATIAL_SUBFRAMES; sf_idx++ ) @@ -1563,7 +1379,6 @@ void ivas_param_ism_params_to_masa_param_mapping( } } } -#endif } return; diff --git a/lib_dec/ivas_ism_renderer.c b/lib_dec/ivas_ism_renderer.c index 4e4fb628a4..c9a6dcb65a 100644 --- a/lib_dec/ivas_ism_renderer.c +++ b/lib_dec/ivas_ism_renderer.c @@ -233,27 +233,17 @@ void ivas_ism_render_sf( { if ( subframe_idx >= ism_md_subframe_update_jbm ) { -#ifdef OBJ_EDITING_API rotateAziEle( st_ivas->hIsmMetaData[i]->edited_azimuth, st_ivas->hIsmMetaData[i]->edited_elevation, &azimuth, &elevation, st_ivas->hCombinedOrientationData->Rmat[st_ivas->hCombinedOrientationData->subframe_idx], st_ivas->hIntSetup.is_planar_setup ); -#else - rotateAziEle( st_ivas->hIsmMetaData[i]->azimuth, st_ivas->hIsmMetaData[i]->elevation, &azimuth, &elevation, st_ivas->hCombinedOrientationData->Rmat[st_ivas->hCombinedOrientationData->subframe_idx], st_ivas->hIntSetup.is_planar_setup ); -#endif } else { -#ifdef OBJ_EDITING_API rotateAziEle( st_ivas->hIsmMetaData[i]->edited_azimuth, st_ivas->hIsmMetaData[i]->edited_elevation, &azimuth, &elevation, st_ivas->hCombinedOrientationData->Rmat[st_ivas->hCombinedOrientationData->subframe_idx], st_ivas->hIntSetup.is_planar_setup ); -#else - rotateAziEle( st_ivas->hIsmMetaData[i]->last_azimuth, st_ivas->hIsmMetaData[i]->last_elevation, &azimuth, &elevation, st_ivas->hCombinedOrientationData->Rmat[st_ivas->hCombinedOrientationData->subframe_idx], st_ivas->hIntSetup.is_planar_setup ); -#endif } if ( st_ivas->hEFAPdata != NULL ) { efap_determine_gains( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains[i], azimuth, elevation, EFAP_MODE_EFAP ); -#ifdef OBJ_EDITING_API v_multc( st_ivas->hIsmRendererData->gains[i], st_ivas->hIsmMetaData[i]->edited_gain, st_ivas->hIsmRendererData->gains[i], nchan_out_woLFE ); -#endif } } @@ -536,7 +526,6 @@ void ivas_omasa_separate_object_render_jbm( if ( single_separated ) { -#ifdef OMASA_OBJECT_EDITING if ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ && st_ivas->hMasaIsmData->ism_dir_is_edited[st_ivas->hMasaIsmData->idx_separated_ism] ) { azimuth = st_ivas->hMasaIsmData->azimuth_ism_edited[st_ivas->hMasaIsmData->idx_separated_ism]; @@ -547,14 +536,9 @@ void ivas_omasa_separate_object_render_jbm( azimuth = st_ivas->hMasaIsmData->azimuth_separated_ism[md_idx]; elevation = st_ivas->hMasaIsmData->elevation_separated_ism[md_idx]; } -#else - azimuth = st_ivas->hMasaIsmData->azimuth_separated_ism[md_idx]; - elevation = st_ivas->hMasaIsmData->elevation_separated_ism[md_idx]; -#endif } else { -#ifdef OMASA_OBJECT_EDITING if ( st_ivas->hMasaIsmData->ism_dir_is_edited[obj] ) { azimuth = st_ivas->hMasaIsmData->azimuth_ism_edited[obj]; @@ -565,10 +549,6 @@ void ivas_omasa_separate_object_render_jbm( azimuth = st_ivas->hMasaIsmData->azimuth_ism[obj][md_idx]; elevation = st_ivas->hMasaIsmData->elevation_ism[obj][md_idx]; } -#else - azimuth = st_ivas->hMasaIsmData->azimuth_ism[obj][md_idx]; - elevation = st_ivas->hMasaIsmData->elevation_ism[obj][md_idx]; -#endif } if ( st_ivas->hOutSetup.is_planar_setup ) diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index f096ff4116..870337b9b8 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -151,9 +151,7 @@ ivas_error ivas_jbm_dec_tc( ivas_ism_dtx_limit_noise_energy_for_near_silence( st_ivas->hSCE, st_ivas->hISMDTX.sce_id_dtx, st_ivas->nchan_transport ); -#ifdef OBJ_EDITING_API ivas_param_ism_dec_dequant_md( st_ivas ); -#endif } else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { @@ -162,9 +160,7 @@ ivas_error ivas_jbm_dec_tc( return error; } -#ifdef OBJ_EDITING_API ivas_param_ism_dec_dequant_md( st_ivas ); -#endif } else /* ISM_MODE_DISC */ { @@ -818,165 +814,17 @@ void ivas_jbm_dec_feed_tc_to_renderer( } n_render_timeslots = st_ivas->hTcBuffer->n_samples_available / st_ivas->hTcBuffer->n_samples_granularity; -#ifndef OBJ_EDITING_API - if ( st_ivas->hTcBuffer->tc_buffer_mode == TC_BUFFER_MODE_BUFFER ) - { - ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas ); - - if ( ( st_ivas->ivas_format == MASA_FORMAT || st_ivas->ivas_format == MASA_ISM_FORMAT ) && st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL && st_ivas->hDecoderConfig->Opt_tsm ) - { - ivas_jbm_masa_sf_to_slot_map( st_ivas, n_render_timeslots ); - } - } - else if ( st_ivas->ivas_format == STEREO_FORMAT ) - { - ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas ); - } - else -#endif if ( st_ivas->ivas_format == ISM_FORMAT ) { /* Rendering */ if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { -#ifndef OBJ_EDITING_API - if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) - { - ivas_dirac_dec_set_md_map( st_ivas, n_render_timeslots ); - - ivas_param_ism_params_to_masa_param_mapping( st_ivas ); - } - else -#endif if ( st_ivas->renderer_type == RENDERER_PARAM_ISM || st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ) { ivas_param_ism_dec_digest_tc( st_ivas, n_render_timeslots, p_data_f ); } } -#ifndef OBJ_EDITING_API - else /* ISM_MODE_DISC */ - { - ivas_ism_dec_digest_tc( st_ivas ); - } -#endif - } -#ifndef OBJ_EDITING_API - else if ( st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == MASA_FORMAT ) - { - ivas_sba_dec_digest_tc( st_ivas, n_render_timeslots, st_ivas->hTcBuffer->n_samples_available ); - } - else if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) - { - - if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) - { - ivas_ism_dec_digest_tc( st_ivas ); - - /* delay the objects here for all renderers where it is needed */ - if ( - ( - st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || - st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || - st_ivas->renderer_type == RENDERER_OSBA_AMBI || - st_ivas->renderer_type == RENDERER_OSBA_LS || - st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) && - ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED && st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) - { - for ( n = 0; n < st_ivas->nchan_ism; n++ ) - { - delay_signal( st_ivas->hTcBuffer->tc[n], st_ivas->hTcBuffer->n_samples_available, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); - } - } - - if ( !st_ivas->sba_dirac_stereo_flag ) - { - if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ) - { - n_render_timeslots *= ( st_ivas->hTcBuffer->n_samples_granularity / st_ivas->hSpatParamRendCom->slot_size ); - } - - ivas_sba_dec_digest_tc( st_ivas, n_render_timeslots, st_ivas->hTcBuffer->n_samples_available ); - } - } - else - { - ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas ); - - ivas_sba_dec_digest_tc( st_ivas, n_render_timeslots, st_ivas->hTcBuffer->n_samples_available ); - } - } - else if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) - { - if ( st_ivas->renderer_type == RENDERER_OMASA_MIX_EXT || st_ivas->renderer_type == RENDERER_OMASA_OBJECT_EXT ) - { - ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas ); - - if ( st_ivas->hDecoderConfig->Opt_tsm ) - { - ivas_jbm_masa_sf_to_slot_map( st_ivas, n_render_timeslots ); - } - } - else - { - if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC && st_ivas->ism_mode == ISM_MASA_MODE_DISC ) - { - n_render_timeslots *= ( st_ivas->hTcBuffer->n_samples_granularity / st_ivas->hSpatParamRendCom->slot_size ); - } - - ivas_sba_dec_digest_tc( st_ivas, n_render_timeslots, st_ivas->hTcBuffer->n_samples_available ); - - if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) - { - ivas_ism_dec_digest_tc( st_ivas ); - } - - if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_DIRAC ) - { - int16_t num_objects; - /* Delay the signal to match CLDFB delay. Delay the whole buffer. */ - num_objects = 0; - if ( ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ ) && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC ) - { - num_objects = 1; - } - else if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) - { - num_objects = st_ivas->nchan_ism; - } - for ( n = 0; n < num_objects; n++ ) - { - if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC && st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC ) - { - v_multc( st_ivas->hTcBuffer->tc[CPE_CHANNELS + n], OMASA_TDREND_MATCHING_GAIN, st_ivas->hTcBuffer->tc[CPE_CHANNELS + n], st_ivas->hTcBuffer->n_samples_available ); - } - if ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED && st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) - { - delay_signal( st_ivas->hTcBuffer->tc[CPE_CHANNELS + n], st_ivas->hTcBuffer->n_samples_available, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); - } - } - } - } } - else if ( st_ivas->ivas_format == MC_FORMAT ) - { - if ( st_ivas->mc_mode == MC_MODE_MCT ) - { - ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas ); - } - else if ( st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) - { - ivas_mc_paramupmix_dec_digest_tc( st_ivas, (uint8_t) n_render_timeslots, st_ivas->hTcBuffer->n_samples_available ); - } - else if ( st_ivas->mc_mode == MC_MODE_PARAMMC ) - { - ivas_param_mc_dec_digest_tc( st_ivas, (uint8_t) n_render_timeslots, p_data_f ); - } - else if ( st_ivas->mc_mode == MC_MODE_MCMASA ) - { - ivas_sba_dec_digest_tc( st_ivas, n_render_timeslots, st_ivas->hTcBuffer->n_samples_available ); - } - } -#else else if ( st_ivas->ivas_format == MC_FORMAT ) { if ( st_ivas->mc_mode == MC_MODE_PARAMMC && st_ivas->hTcBuffer->tc_buffer_mode == TC_BUFFER_MODE_RENDERER ) @@ -984,7 +832,6 @@ void ivas_jbm_dec_feed_tc_to_renderer( ivas_param_mc_dec_digest_tc( st_ivas, (uint8_t) n_render_timeslots, p_data_f ); } } -#endif pop_wmops(); return; @@ -1249,16 +1096,7 @@ ivas_error ivas_jbm_dec_render( ivas_ism_render_sf( st_ivas, st_ivas->renderer_type, p_output, *nSamplesRendered ); /* add already rendered SBA part */ -#ifdef OBJ_EDITING_API ivas_osba_stereo_add_channels( p_tc, p_output, st_ivas->hSbaIsmData->gain_bed, nchan_out, st_ivas->nchan_ism, st_ivas->ism_mode, *nSamplesRendered ); -#else - { - for ( n = 0; n < nchan_out; n++ ) - { - v_add( p_output[n], p_tc[n + st_ivas->nchan_ism], p_output[n], *nSamplesRendered ); - } - } -#endif } else if ( st_ivas->renderer_type == RENDERER_OSBA_AMBI || st_ivas->renderer_type == RENDERER_OSBA_LS || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { @@ -2981,7 +2819,6 @@ void ivas_jbm_masa_sf_to_sf_map( } -#ifdef OBJ_EDITING_API /*--------------------------------------------------------------------------* * ivas_dec_prepare_renderer() * @@ -3115,7 +2952,6 @@ void ivas_dec_prepare_renderer( { if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC && st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC ) { -#ifdef OMASA_OBJECT_EDITING float gainIsm; gainIsm = OMASA_TDREND_MATCHING_GAIN; @@ -3125,9 +2961,6 @@ void ivas_dec_prepare_renderer( } v_multc( st_ivas->hTcBuffer->tc[CPE_CHANNELS + n], gainIsm, st_ivas->hTcBuffer->tc[CPE_CHANNELS + n], st_ivas->hTcBuffer->n_samples_available ); -#else - v_multc( st_ivas->hTcBuffer->tc[CPE_CHANNELS + n], OMASA_TDREND_MATCHING_GAIN, st_ivas->hTcBuffer->tc[CPE_CHANNELS + n], st_ivas->hTcBuffer->n_samples_available ); -#endif } if ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED && st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) @@ -3135,7 +2968,6 @@ void ivas_dec_prepare_renderer( delay_signal( st_ivas->hTcBuffer->tc[CPE_CHANNELS + n], st_ivas->hTcBuffer->n_samples_available, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); } } -#ifdef OMASA_OBJECT_EDITING if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC && st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC ) { @@ -3150,7 +2982,6 @@ void ivas_dec_prepare_renderer( } } } -#endif } } } @@ -3177,4 +3008,3 @@ void ivas_dec_prepare_renderer( pop_wmops(); return; } -#endif diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 26732a868b..62a664caf9 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -650,11 +650,7 @@ ivas_error ivas_masa_dec_open( ism_total_brate = 0; /* ISM metadata */ -#ifdef OMASA_OBJECT_EDITING if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hIsmMetaData[0] != NULL ) -#else - if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hIsmMetaData[0] != NULL && st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) -#endif { /* these are not needed -> clean. EXT metafile writer in OMASA needs only the number of ISMs and writes default null-data */ ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 ); @@ -2443,9 +2439,7 @@ static int16_t ivas_decode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { -#ifdef OMASA_OBJECT_EDITING hMasaIsmData->bits_ism[obj] = bits_ism[obj]; -#endif index = 0; if ( bits_ism[obj] < 8 ) /* if low resolution, can look to the past */ { diff --git a/lib_dec/ivas_mc_param_dec.c b/lib_dec/ivas_mc_param_dec.c index 59d3c1cb79..3279c8fb86 100644 --- a/lib_dec/ivas_mc_param_dec.c +++ b/lib_dec/ivas_mc_param_dec.c @@ -1327,107 +1327,21 @@ void ivas_param_mc_dec_digest_tc( ) { PARAM_MC_DEC_HANDLE hParamMC; -#ifdef OBJ_EDITING_API int16_t ch, slot_idx; int16_t nchan_transport; -#else - int16_t i, ch; - int16_t is_next_band, skip_next_band; - int16_t slot_idx, param_band_idx; - int16_t nchan_transport, nchan_out_transport, nchan_out_cldfb; - int16_t nchan_out_cov; -#endif - -#ifndef OBJ_EDITING_API - /*CLDFB*/ - float *pCx, *pCx_imag; - float cx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS]; - float cx_imag[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS]; - float cx_next_band[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS]; - float cx_imag_next_band[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS]; - float real_part, imag_part; - /* format converter */ - int16_t channel_active[MAX_OUTPUT_CHANNELS]; - IVAS_OUTPUT_SETUP *hSynthesisOutputSetup; -#endif hParamMC = st_ivas->hParamMC; assert( hParamMC ); push_wmops( "param_mc_dec_digest_tc" ); -#ifndef OBJ_EDITING_API - set_s( channel_active, 0, MAX_CICP_CHANNELS ); -#endif nchan_transport = st_ivas->nchan_transport; -#ifndef OBJ_EDITING_API - nchan_out_transport = st_ivas->hTransSetup.nchan_out_woLFE + st_ivas->hTransSetup.num_lfe; - - if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) - { - nchan_out_cldfb = BINAURAL_CHANNELS; - set_s( channel_active, 1, nchan_out_cldfb ); - nchan_out_cov = st_ivas->hTransSetup.nchan_out_woLFE + st_ivas->hTransSetup.num_lfe; - hSynthesisOutputSetup = &st_ivas->hTransSetup; - } - else if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_CLDFB ) - { - nchan_out_cov = nchan_out_transport; - nchan_out_cldfb = st_ivas->hOutSetup.nchan_out_woLFE + st_ivas->hOutSetup.num_lfe; - hSynthesisOutputSetup = &st_ivas->hTransSetup; - } - else if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_COV || hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) - { - nchan_out_cov = st_ivas->hOutSetup.nchan_out_woLFE + st_ivas->hOutSetup.num_lfe; - nchan_out_cldfb = nchan_out_cov; - set_s( channel_active, 1, nchan_out_cov ); - hSynthesisOutputSetup = &st_ivas->hOutSetup; - } - else - { - nchan_out_cov = nchan_out_transport; - nchan_out_cldfb = nchan_out_transport; - set_s( channel_active, 1, nchan_out_cov ); - hSynthesisOutputSetup = &st_ivas->hTransSetup; - } - - /* adapt transient position */ - if ( hParamMC->hMetadataPMC->bAttackPresent ) - { - hParamMC->hMetadataPMC->attackIndex = (int16_t) max( 0, hParamMC->hMetadataPMC->attackIndex + ( ( nCldfbSlots - DEFAULT_JBM_CLDFB_TIMESLOTS ) / 2 ) ); - } - /* adapt subframes */ - hParamMC->num_slots = nCldfbSlots; - hParamMC->slots_rendered = 0; - hParamMC->subframes_rendered = 0; - ivas_jbm_dec_get_adapted_subframes( nCldfbSlots, hParamMC->subframe_nbslots, &hParamMC->nb_subframes ); - st_ivas->hTcBuffer->nb_subframes = hParamMC->nb_subframes; - mvs2s( hParamMC->subframe_nbslots, st_ivas->hTcBuffer->subframe_nbslots, hParamMC->nb_subframes ); - - ivas_param_mc_dec_compute_interpolator( hParamMC->hMetadataPMC->bAttackPresent, hParamMC->hMetadataPMC->attackIndex, nCldfbSlots, hParamMC->h_output_synthesis_params.interpolator ); - - - /* loop over two bands at a time */ - for ( param_band_idx = 0; param_band_idx < hParamMC->num_param_bands_synth; param_band_idx += 2 ) - { - /* don't process next band if it exceeds the limit */ - skip_next_band = ( ( param_band_idx + 1 ) == hParamMC->num_param_bands_synth ) ? 1 : 0; - - set_zero( cx, PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS ); - set_zero( cx_imag, PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS ); - set_zero( cx_next_band, PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS ); - set_zero( cx_imag_next_band, PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS ); -#endif /* slot loop for gathering the input data */ for ( slot_idx = 0; slot_idx < nCldfbSlots; slot_idx++ ) { if ( st_ivas->hDecoderConfig->Opt_tsm ) { -#if !defined( OBJ_EDITING_API ) - if ( param_band_idx == 0 ) /* only run cldfbAna once */ - { -#endif float RealBuffer[CLDFB_NO_CHANNELS_MAX]; float ImagBuffer[CLDFB_NO_CHANNELS_MAX]; @@ -1439,93 +1353,15 @@ void ivas_param_mc_dec_digest_tc( mvr2r( RealBuffer, &hParamMC->Cldfb_RealBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport + ch * hParamMC->num_freq_bands], hParamMC->num_freq_bands ); mvr2r( ImagBuffer, &hParamMC->Cldfb_ImagBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport + ch * hParamMC->num_freq_bands], hParamMC->num_freq_bands ); } -#if !defined( OBJ_EDITING_API ) - } -#endif } -#ifndef OBJ_EDITING_API - if ( slot_idx >= 2 * hParamMC->hMetadataPMC->attackIndex ) - { - for ( is_next_band = 0; is_next_band < 2; is_next_band++ ) - { - if ( is_next_band && skip_next_band ) - { - continue; - } - ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( &hParamMC->Cldfb_RealBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport], - &hParamMC->Cldfb_ImagBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport], - is_next_band ? cx_next_band : cx, - is_next_band ? cx_imag_next_band : cx_imag, - param_band_idx + is_next_band, - hParamMC, - nchan_transport ); - } - } -#endif } -#ifndef OBJ_EDITING_API - /* map from complex input covariance to real values */ - for ( is_next_band = 0; is_next_band < 2; is_next_band++ ) - { - if ( is_next_band && skip_next_band ) - { - continue; - } - /* Cx for transport channels */ - pCx = is_next_band ? &cx_next_band[0] : &cx[0]; - pCx_imag = is_next_band ? &cx_imag_next_band[0] : &cx_imag[0]; - for ( i = 0; i < nchan_transport * nchan_transport; i++ ) - { - real_part = pCx[i]; - imag_part = pCx_imag[i]; - - /* (a-ib)(c+id) = ac + bd + i(ad-bc) */ - if ( param_band_idx < hParamMC->max_param_band_abs_cov ) - { - pCx[i] = sqrtf( real_part * real_part + imag_part * imag_part ); - } - else - { - pCx[i] = real_part; - } - } - } - - /* we have to do it similar to the encoder in case of attacks (i.e. accumulate two bands) to ensure correct DMX of the target covariance*/ - if ( hParamMC->hMetadataPMC->bAttackPresent && ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_COV || hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) ) - { - v_add( cx, cx_next_band, cx, nchan_transport * nchan_transport ); - mvr2r( cx, cx_next_band, nchan_transport * nchan_transport ); - } - - for ( is_next_band = 0; is_next_band < 2; is_next_band++ ) - { - if ( is_next_band && skip_next_band ) - { - continue; - } - /* generate mixing matrices */ - ivas_param_mc_get_mixing_matrices( hParamMC, - hSynthesisOutputSetup, - is_next_band ? cx_next_band : cx, - param_band_idx + is_next_band, - hParamMC->h_output_synthesis_cov_state.mixing_matrix, - hParamMC->h_output_synthesis_cov_state.mixing_matrix_res, - nchan_out_transport, - hParamMC->synthesis_conf, - nchan_transport, - nchan_out_cov ); - } - } -#endif pop_wmops(); return; } -#ifdef OBJ_EDITING_API /*------------------------------------------------------------------------- * ivas_param_mc_dec_prepare_renderer() * @@ -1700,7 +1536,6 @@ void ivas_param_mc_dec_prepare_renderer( return; } -#endif /*------------------------------------------------------------------------- diff --git a/lib_dec/ivas_objectRenderer_internal.c b/lib_dec/ivas_objectRenderer_internal.c index 0e6c1025df..5785db4851 100644 --- a/lib_dec/ivas_objectRenderer_internal.c +++ b/lib_dec/ivas_objectRenderer_internal.c @@ -183,7 +183,6 @@ ivas_error ivas_td_binaural_renderer_sf( if ( subframe_idx == ism_md_subframe_update_jbm ) { -#ifdef OBJ_EDITING_API if ( st_ivas->ivas_format == ISM_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT ) { ISM_METADATA_FRAME ismMetaData[MAX_NUM_OBJECTS]; @@ -207,7 +206,6 @@ ivas_error ivas_td_binaural_renderer_sf( } } else -#endif { if ( ( error = TDREND_Update_object_positions( st_ivas->hBinRendererTd, nchan_ism, st_ivas->ivas_format, st_ivas->hIsmMetaData ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 439a6baba1..d8a71cf589 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -60,11 +60,7 @@ ivas_error ivas_omasa_data_open( ) { MASA_ISM_DATA_HANDLE hMasaIsmData; -#ifdef OMASA_OBJECT_EDITING int16_t ch; -#else - int16_t ch, bin; -#endif int16_t sf, obj_idx; if ( ( hMasaIsmData = (MASA_ISM_DATA_HANDLE) malloc( sizeof( MASA_ISM_DATA ) ) ) == NULL ) @@ -72,7 +68,6 @@ ivas_error ivas_omasa_data_open( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MASA ISM data\n" ) ); } -#ifdef OMASA_OBJECT_EDITING for ( int16_t band_idx = 0; band_idx < MASA_FREQUENCY_BANDS; band_idx++ ) { for ( ch = 0; ch < 2; ch++ ) @@ -88,39 +83,17 @@ ivas_error ivas_omasa_data_open( } hMasaIsmData->objectsEdited = 0; -#else - for ( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) - { - for ( ch = 0; ch < 2; ch++ ) - { - hMasaIsmData->ismPreprocMatrix[ch][ch][bin] = 1.0f; - hMasaIsmData->ismPreprocMatrix[1 - ch][ch][bin] = 0.0f; - hMasaIsmData->eneMoveIIR[ch][bin] = 0.0f; - hMasaIsmData->enePreserveIIR[ch][bin] = 0.0f; - } - hMasaIsmData->preprocEneTarget[bin] = 0.0f; - hMasaIsmData->preprocEneRealized[bin] = 0.0f; - } - - hMasaIsmData->objectsMoved = 0; -#endif hMasaIsmData->delayBuffer = NULL; for ( ch = 0; ch < MAX_NUM_OBJECTS; ch++ ) { -#ifdef OMASA_OBJECT_EDITING hMasaIsmData->ism_dir_is_edited[ch] = 0; hMasaIsmData->ism_gain_is_edited[ch] = 0; -#else - hMasaIsmData->ism_is_edited[ch] = 0; -#endif hMasaIsmData->q_elevation_old[ch] = 0.0f; hMasaIsmData->q_azimuth_old[ch] = 0.0f; } -#ifdef OMASA_OBJECT_EDITING hMasaIsmData->masa_gain_is_edited = 0; hMasaIsmData->idx_separated_ism = -1; -#endif for ( obj_idx = 0; obj_idx < MAX_NUM_OBJECTS; obj_idx++ ) { @@ -229,11 +202,7 @@ ivas_error ivas_omasa_dec_config( #endif ) { -#ifdef OMASA_OBJECT_EDITING int16_t k, sce_id, nSCE_old, nchan_hp20_old, numCldfbAnalyses_old, numCldfbSyntheses_old; -#else - int16_t k, sce_id, nSCE_old, nchan_hp20_old, numCldfbAnalyses_old, numCldfbSyntheses_old, n_MD; -#endif int32_t ivas_total_brate, ism_total_brate, cpe_brate; ISM_MODE ism_mode_old; IVAS_FORMAT ivas_format_orig; @@ -329,7 +298,6 @@ ivas_error ivas_omasa_dec_config( if ( ism_mode_old != st_ivas->ism_mode ) { /* ISM MD reconfig. */ -#ifdef OMASA_OBJECT_EDITING if ( st_ivas->hIsmMetaData[0] == NULL ) { if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) @@ -344,58 +312,6 @@ ivas_error ivas_omasa_dec_config( ivas_ism_reset_metadata_handle_dec( st_ivas->hIsmMetaData[k] ); } } -#else - n_MD = 0; - - if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) - { - /* the full number of hIsmMetaData are needed for EXT output */ - if ( st_ivas->hIsmMetaData[0] == NULL ) - { - if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else - { - for ( k = 0; k < st_ivas->nchan_ism; k++ ) - { - ivas_ism_reset_metadata_handle_dec( st_ivas->hIsmMetaData[k] ); - } - } - } - else - { - if ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ ) - { - n_MD = 1; - - if ( st_ivas->hIsmMetaData[0] == NULL ) - { - if ( ( error = ivas_ism_metadata_dec_create( st_ivas, 1, NULL ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else - { - ivas_ism_reset_metadata_handle_dec( st_ivas->hIsmMetaData[0] ); - } - } - else if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) - { - n_MD = st_ivas->nchan_ism; - - if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - ivas_ism_metadata_close( st_ivas->hIsmMetaData, n_MD ); - } -#endif st_ivas->hCPE[0]->element_brate = ivas_total_brate - ism_total_brate; @@ -781,7 +697,6 @@ void ivas_omasa_dirac_rend_jbm( { mvr2r( &output_f[CPE_CHANNELS][st_ivas->hTcBuffer->n_samples_rendered], data_separated_objects[0], *nSamplesRendered ); -#ifdef OMASA_OBJECT_EDITING if ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ ) { /* Gain separated object, if edited */ @@ -793,7 +708,6 @@ void ivas_omasa_dirac_rend_jbm( } } } -#endif } else { @@ -801,16 +715,13 @@ void ivas_omasa_dirac_rend_jbm( { mvr2r( &output_f[n + CPE_CHANNELS][st_ivas->hTcBuffer->n_samples_rendered], data_separated_objects[n], *nSamplesRendered ); -#ifdef OMASA_OBJECT_EDITING /* Gain discrete objects, if edited */ if ( st_ivas->hMasaIsmData->ism_gain_is_edited[n] ) { v_multc( data_separated_objects[n], st_ivas->hMasaIsmData->gain_ism_edited[n], data_separated_objects[n], *nSamplesRendered ); } -#endif } -#ifdef OMASA_OBJECT_EDITING /* Gain MASA part, if edited */ if ( st_ivas->hMasaIsmData->masa_gain_is_edited ) { @@ -819,7 +730,6 @@ void ivas_omasa_dirac_rend_jbm( v_multc( output_f[ch], st_ivas->hMasaIsmData->gain_masa_edited, output_f[ch], *nSamplesRendered ); } } -#endif } } diff --git a/lib_dec/ivas_osba_dec.c b/lib_dec/ivas_osba_dec.c index bb5f547beb..18493968bf 100644 --- a/lib_dec/ivas_osba_dec.c +++ b/lib_dec/ivas_osba_dec.c @@ -302,7 +302,6 @@ ivas_error ivas_osba_render_sf( } -#ifdef OBJ_EDITING_API /*-------------------------------------------------------------------------* * ivas_osba_stereo_add_channels() * @@ -352,4 +351,3 @@ void ivas_osba_stereo_add_channels( return; } -#endif diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 0f3dfba4c0..4f6e8a0587 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -809,7 +809,6 @@ ivas_error ivas_sba_dec_render( ivas_spar_dec_upmixer_sf( st_ivas, output_f_local, nchan_internal ); -#ifdef OBJ_EDITING_API if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { float gain = st_ivas->hSbaIsmData->gain_bed; @@ -825,7 +824,6 @@ ivas_error ivas_sba_dec_render( } } } -#endif for ( ch = 0; ch < nchan_out; ch++ ) { diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 9ed05b1ae2..787802f9e7 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -422,10 +422,8 @@ typedef struct ivas_param_ism_dec_data_structure float elevation_values[MAX_PARAM_SPATIAL_SUBFRAMES * IVAS_MAX_NUM_BANDS]; float power_ratios[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS][MAX_PARAM_ISM_WAVE]; -#ifdef OBJ_EDITING_API float edited_azimuth_values[MAX_PARAM_SPATIAL_SUBFRAMES * IVAS_MAX_NUM_BANDS]; float edited_elevation_values[MAX_PARAM_SPATIAL_SUBFRAMES * IVAS_MAX_NUM_BANDS]; -#endif /*sub-modules*/ PARAM_ISM_CONFIG_HANDLE hParamIsm; /* Parametric ISM common handle */ @@ -679,9 +677,7 @@ typedef struct ivas_osba_data float **delayBuffer; int16_t delayBuffer_size; int16_t delayBuffer_nchan; -#ifdef OBJ_EDITING_API float gain_bed; -#endif } SBA_ISM_DATA, *SBA_ISM_DATA_HANDLE; @@ -908,22 +904,14 @@ typedef struct ivas_masa_ism_data_structure int16_t azimuth_ism_edited[MAX_NUM_OBJECTS]; int16_t elevation_ism_edited[MAX_NUM_OBJECTS]; -#ifdef OMASA_OBJECT_EDITING uint8_t ism_dir_is_edited[MAX_NUM_OBJECTS]; -#else - uint8_t ism_is_edited[MAX_NUM_OBJECTS]; -#endif -#ifdef OBJ_EDITING_API float gain_ism[MAX_NUM_OBJECTS]; float gain_masa; -#endif -#ifdef OMASA_OBJECT_EDITING float gain_ism_edited[MAX_NUM_OBJECTS]; uint8_t ism_gain_is_edited[MAX_NUM_OBJECTS]; float gain_masa_edited; uint8_t masa_gain_is_edited; -#endif int16_t idx_separated_ism; int16_t azimuth_separated_ism[MAX_PARAM_SPATIAL_SUBFRAMES + DELAY_MASA_PARAM_DEC_SFR]; @@ -932,7 +920,6 @@ typedef struct ivas_masa_ism_data_structure float q_azimuth_old[MAX_NUM_OBJECTS]; float q_elevation_old[MAX_NUM_OBJECTS]; -#ifdef OMASA_OBJECT_EDITING uint8_t objectsEdited; float preprocEneTarget[MASA_FREQUENCY_BANDS]; float preprocEneRealized[MASA_FREQUENCY_BANDS]; @@ -941,14 +928,6 @@ typedef struct ivas_masa_ism_data_structure float enePreserveIIR[2][MASA_FREQUENCY_BANDS]; float eneOrigIIR[MASA_FREQUENCY_BANDS]; int16_t bits_ism[MAX_NUM_OBJECTS]; -#else - float ismPreprocMatrix[2][2][CLDFB_NO_CHANNELS_MAX]; - uint8_t objectsMoved; - float eneMoveIIR[2][CLDFB_NO_CHANNELS_MAX]; - float enePreserveIIR[2][CLDFB_NO_CHANNELS_MAX]; - float preprocEneTarget[CLDFB_NO_CHANNELS_MAX]; - float preprocEneRealized[CLDFB_NO_CHANNELS_MAX]; -#endif float **delayBuffer; int16_t delayBuffer_size; diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 66d70060c8..3d9b616e5b 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -35,9 +35,7 @@ #include "ivas_prot.h" #include "ivas_prot_rend.h" #include "isar_prot.h" -#ifdef OMASA_OBJECT_EDITING #include "ivas_rom_com.h" -#endif #include "lib_isar_pre_rend.h" #include "prot.h" #include "jbm_jb4sb.h" @@ -99,12 +97,10 @@ struct IVAS_DEC int16_t prev_ft_speech; /* RXDTX handler: previous frametype flag for G.192 format AMRWB SID_FIRST detection */ int16_t CNG; /* RXDTX handler: CNG=1, nonCNG=0 */ -#ifdef OBJ_EDITING_API uint16_t nSamplesFlushed; void *flushbuffer; IVAS_DEC_PCM_TYPE pcmType; bool hasBeenPreparedRendering; -#endif }; @@ -186,12 +182,10 @@ ivas_error IVAS_DEC_Open( hIvasDec->hasDecodedFirstGoodFrame = false; hIvasDec->isInitialized = false; hIvasDec->updateOrientation = false; -#ifdef OBJ_EDITING_API hIvasDec->flushbuffer = NULL; hIvasDec->pcmType = IVAS_DEC_PCM_INVALID; hIvasDec->nSamplesFlushed = 0; hIvasDec->hasBeenPreparedRendering = false; -#endif hIvasDec->mode = mode; @@ -369,12 +363,10 @@ void IVAS_DEC_Close( free( ( *phIvasDec )->apaExecBuffer ); } -#ifdef OBJ_EDITING_API if ( ( *phIvasDec )->flushbuffer != NULL ) { free( ( *phIvasDec )->flushbuffer ); } -#endif free( *phIvasDec ); *phIvasDec = NULL; @@ -547,7 +539,6 @@ ivas_error IVAS_DEC_Configure( hIvasDec->tsm_max_scaling = 0; hIvasDec->tsm_quality = 1.0f; -#ifdef OBJ_EDITING_API /* init flush buffer if necessary (only needed for binaural)*/ if ( tsmEnabled && ( outputConfig == IVAS_AUDIO_CONFIG_BINAURAL || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { @@ -559,7 +550,6 @@ ivas_error IVAS_DEC_Configure( hIvasDec->pcmType = IVAS_DEC_PCM_INT16; set_s( (int16_t *) hIvasDec->flushbuffer, 0, CPE_CHANNELS * hIvasDec->nSamplesFrame / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ); } -#endif return IVAS_ERR_OK; } @@ -814,7 +804,6 @@ ivas_error IVAS_DEC_EnableVoIP( return IVAS_ERR_FAILED_ALLOC; } -#ifdef OBJ_EDITING_API /* init flush buffer if necessary (only needed for binaural)*/ if ( hIvasDec->flushbuffer == NULL && ( hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL || hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { @@ -822,7 +811,6 @@ ivas_error IVAS_DEC_EnableVoIP( hIvasDec->pcmType = IVAS_DEC_PCM_INT16; set_s( (int16_t *) hIvasDec->flushbuffer, 0, CPE_CHANNELS * hIvasDec->nSamplesFrame / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ); } -#endif return IVAS_ERR_OK; } @@ -841,13 +829,9 @@ ivas_error IVAS_DEC_FeedFrame_Serial( #ifdef FIX_HRTF_LOAD int16_t bfi /* i : bad frame indicator flag */ #else -#ifdef OBJ_EDITING_API int16_t bfi, /* i : bad frame indicator flag */ const int16_t isSplitRend, /* i : split rendering enabled flag */ ISAR_SPLIT_REND_BITS_DATA *splitRendBits /* o : output split rendering bits */ -#else - int16_t bfi /* i : bad frame indicator flag */ -#endif #endif ) { @@ -926,14 +910,12 @@ ivas_error IVAS_DEC_FeedFrame_Serial( hIvasDec->nSamplesAvailableNext = hIvasDec->nSamplesFrame; #ifndef FIX_HRTF_LOAD -#ifdef OBJ_EDITING_API /* Decode TCs, do TSM and feed to renderer */; if ( ( error = IVAS_DEC_GetSamplesDecoder( hIvasDec, isSplitRend, splitRendBits ) ) != IVAS_ERR_OK ) { return error; } -#endif #endif return IVAS_ERR_OK; } @@ -1076,7 +1058,6 @@ ivas_error IVAS_DEC_ReadFormat( } #endif -#if ( defined FIX_HRTF_LOAD || defined OBJ_EDITING_API ) /*---------------------------------------------------------------------* * IVAS_DEC_GetSamplesDecoder( ) @@ -1183,18 +1164,13 @@ ivas_error IVAS_DEC_GetSamplesDecoder( hIvasDec->hasBeenFedFrame = false; } -#ifdef OBJ_EDITING_API hIvasDec->hasBeenPreparedRendering = false; if ( hIvasDec->st_ivas->hIsmMetaData[0] ) { if ( hIvasDec->st_ivas->ivas_format == ISM_FORMAT || hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT || hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ) { -#ifdef OMASA_OBJECT_EDITING if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) -#else - if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_DISC || hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) -#endif { int16_t obj; ISM_METADATA_HANDLE *hIsmMetaData = hIvasDec->st_ivas->hIsmMetaData; @@ -1229,14 +1205,11 @@ ivas_error IVAS_DEC_GetSamplesDecoder( } } } -#endif return IVAS_ERR_OK; } -#endif -#ifdef OBJ_EDITING_API /*---------------------------------------------------------------------* * IVAS_DEC_GetEditableParameters( ) * @@ -1320,7 +1293,6 @@ ivas_error IVAS_DEC_GetEditableParameters( } #endif } -#ifdef OMASA_OBJECT_EDITING else if ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT && ( hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) { /* object editing possible only in two highest OMASA modes */ @@ -1368,7 +1340,6 @@ ivas_error IVAS_DEC_GetEditableParameters( } } } -#endif return IVAS_ERR_OK; } @@ -1443,7 +1414,6 @@ ivas_error IVAS_DEC_SetEditableParameters( { for ( obj = 0; obj < hIvasEditableParameters.num_obj; obj++ ) { -#ifdef OBJ_EDITING_PARAMISM_BIN hIvasDec->st_ivas->hParamIsmDec->edited_azimuth_values[obj] = hIvasEditableParameters.ism_metadata[obj].azimuth; hIvasDec->st_ivas->hParamIsmDec->edited_elevation_values[obj] = hIvasEditableParameters.ism_metadata[obj].elevation; hIvasDec->st_ivas->hMasaIsmData->gain_ism_edited[obj] = hIvasEditableParameters.ism_metadata[obj].gain; @@ -1468,13 +1438,10 @@ ivas_error IVAS_DEC_SetEditableParameters( { hIvasDec->st_ivas->hMasaIsmData->ism_gain_is_edited[obj] = 0u; } -#endif } -#ifdef OBJ_EDITING_PARAMISM_BIN /* MASA is not present with the ISM format */ hIvasDec->st_ivas->hMasaIsmData->masa_gain_is_edited = 0u; -#endif } else if ( hIvasDec->st_ivas->ism_mode == ISM_MODE_NONE ) { @@ -1488,7 +1455,6 @@ ivas_error IVAS_DEC_SetEditableParameters( assert( 0 && "This should never happen!" ); } } -#ifdef OMASA_OBJECT_EDITING else if ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT && ( hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) { int16_t id_th; @@ -1606,7 +1572,6 @@ ivas_error IVAS_DEC_SetEditableParameters( hIvasDec->st_ivas->hMasaIsmData->masa_gain_is_edited = 0u; } } -#endif return IVAS_ERR_OK; } @@ -1633,9 +1598,7 @@ ivas_error IVAS_DEC_PrepareRenderer( return IVAS_ERR_OK; } -#endif -#ifdef OBJ_EDITING_API /*---------------------------------------------------------------------* * IVAS_DEC_GetSamplesRenderer( ) @@ -1644,16 +1607,6 @@ ivas_error IVAS_DEC_PrepareRenderer( *---------------------------------------------------------------------*/ ivas_error IVAS_DEC_GetSamplesRenderer( -#else -/*---------------------------------------------------------------------* - * IVAS_DEC_GetSamples( ) - * - * Main function to decode to PCM data - *---------------------------------------------------------------------*/ - - -ivas_error IVAS_DEC_GetSamples( -#endif IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ const int16_t nSamplesAsked, /* i : number of samples wanted by the caller */ const IVAS_DEC_PCM_TYPE pcmType, /* i : type for the decoded PCM resolution */ @@ -1663,36 +1616,24 @@ ivas_error IVAS_DEC_GetSamples( ) { ivas_error error; -#ifdef OBJ_EDITING_API int16_t nSamplesToRender; uint16_t nSamplesRendered, nSamplesRendered_loop; uint8_t nOutChannels; -#else - int16_t nOutSamplesElse, nSamplesToRender; - uint16_t nSamplesRendered, nSamplesRendered_loop, l_ts, nTimeScalerOutSamples; - uint8_t nTransportChannels, nOutChannels; -#endif nSamplesRendered = 0; nOutChannels = 0; nSamplesRendered_loop = 0; -#ifndef OBJ_EDITING_API - l_ts = 0; - nTransportChannels = 0; -#endif if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL ) { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } -#ifdef OBJ_EDITING_API /* the rendering needs to be prepared at this point */ if ( hIvasDec->hasBeenPreparedRendering == false ) { return IVAS_ERR_UNKNOWN; } -#endif if ( hIvasDec->updateOrientation ) { @@ -1742,83 +1683,6 @@ ivas_error IVAS_DEC_GetSamples( } else { -#ifndef OBJ_EDITING_API - /* check if we need to run the setup function */ - if ( !hIvasDec->isInitialized || hIvasDec->hasBeenFedFrame ) - { - /* setup */ - if ( ( error = IVAS_DEC_Setup( hIvasDec, &l_ts, &nTransportChannels, &nOutChannels, &nSamplesRendered_loop, pcmType, pcm_buffer_offset( pcmBuf, pcmType, nSamplesRendered * nOutChannels ) ) ) != IVAS_ERR_OK ) - - { - return error; - } - } -#endif -#ifndef OBJ_EDITING_API - { - /* check if we need to run the setup function, tc decoding and feeding the renderer */ - if ( !hIvasDec->isInitialized || hIvasDec->hasBeenFedFrame ) - { - int16_t nResidualSamples, nSamplesTcsScaled; - nSamplesRendered += nSamplesRendered_loop; - - if ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm && nTransportChannels != hIvasDec->nTransportChannelsOld ) - { - if ( ( error = IVAS_DEC_VoIP_reconfigure( hIvasDec, nTransportChannels, l_ts ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - /* IVAS decoder */ - if ( ( error = IVAS_DEC_GetTcSamples( hIvasDec, hIvasDec->apaExecBuffer, &nOutSamplesElse ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* JBM */ - if ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm ) - { - if ( apa_set_scale( hIvasDec->hTimeScaler, hIvasDec->tsm_scale ) != 0 ) - { - return IVAS_ERR_UNKNOWN; - } - - if ( apa_exec( hIvasDec->hTimeScaler, hIvasDec->apaExecBuffer, hIvasDec->nSamplesFrame * nTransportChannels, (uint16_t) hIvasDec->tsm_max_scaling, hIvasDec->apaExecBuffer, &nTimeScalerOutSamples ) != 0 ) - { - return IVAS_ERR_UNKNOWN; - } - - assert( nTimeScalerOutSamples <= APA_BUF ); - nSamplesTcsScaled = nTimeScalerOutSamples / nTransportChannels; - hIvasDec->timeScalingDone = 1; - } - else - { - nSamplesTcsScaled = hIvasDec->nSamplesFrame; - } -#ifdef DEBUG_MODE_JBM - dbgwrite( &nTimeScalerOutSamples, sizeof( uint16_t ), 1, 1, "./res/JBM_nTimeScaleOutSamples.dat" ); -#endif - /* Feed decoded transport channels samples to the renderer */ - if ( ( error = IVAS_DEC_RendererFeedTcSamples( hIvasDec, nSamplesTcsScaled, &nResidualSamples, hIvasDec->apaExecBuffer ) ) != IVAS_ERR_OK ) - { - return error; - } -#ifdef DEBUG_MODE_JBM - dbgwrite( &nResidualSamples, sizeof( int16_t ), 1, 1, "./res/JBM_nResidualSamples.dat" ); -#endif - if ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm ) - { - /* feed residual samples to TSM for the next call */ - if ( apa_set_renderer_residual_samples( hIvasDec->hTimeScaler, (uint16_t) nResidualSamples ) != 0 ) - { - return IVAS_ERR_UNKNOWN; - } - } - hIvasDec->hasBeenFedFrame = false; - } -#else nOutChannels = (uint8_t) hIvasDec->st_ivas->hDecoderConfig->nchan_out; hIvasDec->hasBeenFedFrame = false; /* check for possible flushed samples from a rate switch */ @@ -1846,7 +1710,6 @@ ivas_error IVAS_DEC_GetSamples( nSamplesRendered += hIvasDec->nSamplesFlushed; hIvasDec->nSamplesFlushed = 0; } -#endif /* render IVAS frames directly to the output buffer */ nSamplesToRender = nSamplesAsked - nSamplesRendered; @@ -1866,9 +1729,6 @@ ivas_error IVAS_DEC_GetSamples( { *needNewFrame = false; } -#ifndef OBJ_EDITING_API - } -#endif } *nOutSamples = nSamplesRendered; @@ -1925,16 +1785,8 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( *needNewFrame = false; hSplitBinRend = st_ivas->hSplitBinRend; -#ifndef OBJ_EDITING_API - if ( ( error = isar_set_split_rend_setup( hSplitBinRend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hCombinedOrientationData, splitRendBits ) ) != IVAS_ERR_OK ) - { - return error; - } - -#endif numPoses = hSplitBinRend->splitrend.multiBinPoseData.num_poses; -#ifdef OBJ_EDITING_API /* init flush buffer for rate switch if not already initizalized */ if ( hIvasDec->flushbuffer == NULL ) { @@ -1946,7 +1798,6 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( hIvasDec->pcmType = IVAS_DEC_PCM_FLOAT; set_zero( (float *) hIvasDec->flushbuffer, numPoses * BINAURAL_CHANNELS * hIvasDec->nSamplesFrame / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ); } -#endif if ( st_ivas->hDecoderConfig->render_framesize != IVAS_RENDER_FRAMESIZE_20MS && ( hIvasDec->st_ivas->hRenderConfig->split_rend_config.poseCorrectionMode == ISAR_SPLIT_REND_POSE_CORRECTION_MODE_NONE || @@ -1978,19 +1829,11 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( } } -#ifdef OBJ_EDITING_API /* render */ if ( ( error = IVAS_DEC_GetSamplesRenderer( hIvasDec, numSamplesPerChannelToDecode, IVAS_DEC_PCM_FLOAT, pcmBuf, nOutSamples, needNewFrame ) ) != IVAS_ERR_OK ) { return error; } -#else - /* Decode and render */ - if ( ( error = IVAS_DEC_GetSamples( hIvasDec, numSamplesPerChannelToDecode, IVAS_DEC_PCM_FLOAT, pcmBuf, nOutSamples, needNewFrame ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif /* change buffer layout */ for ( i = 0; i < numSamplesPerChannelToDecode; ++i ) @@ -2556,7 +2399,6 @@ ivas_error IVAS_DEC_GetObjectMetadata( } else { -#ifdef OBJ_EDITING_API if ( st_ivas->ism_mode == ISM_MODE_DISC ) { metadata->azimuth = hIsmMeta->edited_azimuth; @@ -2593,7 +2435,6 @@ ivas_error IVAS_DEC_GetObjectMetadata( metadata->non_diegetic_flag = st_ivas->hIsmMetaData[objectIdx]->non_diegetic_flag; } else -#endif { metadata->azimuth = hIsmMeta->azimuth; metadata->elevation = hIsmMeta->elevation; @@ -3659,10 +3500,8 @@ ivas_error IVAS_DEC_VoIP_GetSamples( #ifdef FIX_HRTF_LOAD bool *bitstreamReadDone, /* o : flag indicating that bitstream was read */ #endif -#ifdef OBJ_EDITING_API uint16_t *nSamplesRendered, /* o : number of samples rendered */ bool *parametersAvailableForEditing, /* o : indicates whether objects editing is available */ -#endif const uint32_t systemTimestamp_ms /* i : current system timestamp */ ) { @@ -3674,9 +3513,6 @@ ivas_error IVAS_DEC_VoIP_GetSamples( uint16_t extBufferedSamples; int16_t result; ivas_error error; -#ifndef OBJ_EDITING_API - int16_t nSamplesRendered; -#endif uint8_t nOutChannels; if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL || hIvasDec->hVoIP == NULL ) @@ -3688,12 +3524,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( hDecoderConfig = st_ivas->hDecoderConfig; hVoIP = hIvasDec->hVoIP; nOutChannels = (uint8_t) st_ivas->hDecoderConfig->nchan_out; -#ifndef OBJ_EDITING_API - nSamplesRendered = 0; -#endif -#ifdef OBJ_EDITING_API *parametersAvailableForEditing = false; -#endif if ( nSamplesPerChannel == 0 ) { @@ -3709,11 +3540,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( #endif /* make sure that the FIFO after decoder/scaler contains at least one sound card frame (i.e. 20ms) */ -#ifdef OBJ_EDITING_API while ( *nSamplesRendered < nSamplesPerChannel ) -#else - while ( nSamplesRendered < nSamplesPerChannel ) -#endif { if ( hIvasDec->nSamplesAvailableNext == 0 ) { @@ -3781,11 +3608,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( #ifdef FIX_HRTF_LOAD if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize, 0 ) ) != IVAS_ERR_OK ) #else -#ifdef OBJ_EDITING_API if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize, 0, 0, 0 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize, 0 ) ) != IVAS_ERR_OK ) -#endif #endif { return error; @@ -3801,11 +3624,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( #ifdef FIX_HRTF_LOAD if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, 0, 1 ) ) != IVAS_ERR_OK ) #else -#ifdef OBJ_EDITING_API if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, 0, 1, 0, 0 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, 0, 1 ) ) != IVAS_ERR_OK ) -#endif #endif { return error; @@ -3854,13 +3673,11 @@ ivas_error IVAS_DEC_VoIP_GetSamples( hIvasDec->nSamplesRendered = 0; } -#ifdef OBJ_EDITING_API if ( hIvasDec->hasBeenFedFirstGoodFrame ) { *parametersAvailableForEditing = true; return IVAS_ERR_OK; } -#endif } /* decode */ @@ -3869,13 +3686,8 @@ ivas_error IVAS_DEC_VoIP_GetSamples( /* codec mode to use not known yet - simply output silence */ /* directly set output zero */ int16_t nSamplesToZero = min( nSamplesPerChannel, hIvasDec->nSamplesAvailableNext ); -#ifdef OBJ_EDITING_API set_pcm_buffer_to_zero( pcm_buffer_offset( pcmBuf, pcmType, ( *nSamplesRendered ) * nOutChannels ), pcmType, nSamplesToZero * nOutChannels ); *nSamplesRendered += nSamplesToZero; -#else - set_pcm_buffer_to_zero( pcm_buffer_offset( pcmBuf, pcmType, nSamplesRendered * nOutChannels ), pcmType, nSamplesToZero * nOutChannels ); - nSamplesRendered += nSamplesToZero; -#endif hIvasDec->nSamplesRendered += nSamplesToZero; hIvasDec->nSamplesAvailableNext -= nSamplesToZero; @@ -3906,13 +3718,8 @@ ivas_error IVAS_DEC_VoIP_GetSamples( } #endif -#ifdef OBJ_EDITING_API nSamplesToRender = nSamplesPerChannel - *nSamplesRendered; -#else - nSamplesToRender = nSamplesPerChannel - nSamplesRendered; -#endif -#ifdef OBJ_EDITING_API /* check if we still need to prepare the renderer */ if ( hIvasDec->hasBeenPreparedRendering == false ) { @@ -3921,23 +3728,14 @@ ivas_error IVAS_DEC_VoIP_GetSamples( return error; } } -#endif /* render IVAS frames directly to the output buffer */ -#ifdef OBJ_EDITING_API if ( ( error = IVAS_DEC_GetSamplesRenderer( hIvasDec, nSamplesToRender, pcmType, pcm_buffer_offset( pcmBuf, pcmType, *nSamplesRendered * nOutChannels ), &nSamplesRendered_loop, &tmp ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_GetSamples( hIvasDec, nSamplesToRender, pcmType, pcm_buffer_offset( pcmBuf, pcmType, nSamplesRendered * nOutChannels ), &nSamplesRendered_loop, &tmp ) ) != IVAS_ERR_OK ) -#endif { return error; } -#ifdef OBJ_EDITING_API *nSamplesRendered += nSamplesRendered_loop; -#else - nSamplesRendered += nSamplesRendered_loop; -#endif update_voip_rendered20ms( hIvasDec, nSamplesRendered_loop ); } } diff --git a/lib_dec/lib_dec.h b/lib_dec/lib_dec.h index fb5cee39fa..be272e48f8 100644 --- a/lib_dec/lib_dec.h +++ b/lib_dec/lib_dec.h @@ -155,13 +155,9 @@ ivas_error IVAS_DEC_FeedFrame_Serial( #ifdef FIX_HRTF_LOAD int16_t bfi /* i : bad frame indicator flag */ #else -#ifdef OBJ_EDITING_API int16_t bfi, /* i : bad frame indicator flag */ const int16_t isSplitRend, /* i : split rendering enabled flag */ ISAR_SPLIT_REND_BITS_DATA *splitRendBits /* o : output split rendering bits */ -#else - int16_t bfi /* i : bad frame indicator flag */ -#endif #endif ); @@ -175,7 +171,6 @@ ivas_error IVAS_DEC_ReadFormat( ); #endif -#if( defined FIX_HRTF_LOAD || defined OBJ_EDITING_API) /*! r: decoder error code */ ivas_error IVAS_DEC_GetSamplesDecoder( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ @@ -183,8 +178,6 @@ ivas_error IVAS_DEC_GetSamplesDecoder( ISAR_SPLIT_REND_BITS_DATA *splitRendBits /* o : output split rendering bits */ ); -#endif -#ifdef OBJ_EDITING_API ivas_error IVAS_DEC_GetEditableParameters( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_EDITABLE_PARAMETERS *hIvasEditableParameters /* o : object editing parameters handle */ @@ -198,14 +191,9 @@ ivas_error IVAS_DEC_SetEditableParameters( ivas_error IVAS_DEC_PrepareRenderer( IVAS_DEC_HANDLE hIvasDec ); -#endif /*! r: decoder error code */ -#ifdef OBJ_EDITING_API ivas_error IVAS_DEC_GetSamplesRenderer( -#else -ivas_error IVAS_DEC_GetSamples( -#endif IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ const int16_t nSamplesAsked, /* i : number of samples wanted by the caller */ const IVAS_DEC_PCM_TYPE pcmType, /* i : type for the decoded PCM resolution */ @@ -337,10 +325,8 @@ ivas_error IVAS_DEC_VoIP_GetSamples( #ifdef FIX_HRTF_LOAD bool *bitstreamReadDone, /* o : flag indicating that bitstream was read */ #endif -#ifdef OBJ_EDITING_API uint16_t *nSamplesRendered, /* o : number of samples rendered */ bool *parametersAvailableForEditing, /* o : indicates whether objects editing is available */ -#endif const uint32_t systemTimestamp_ms /* i : current system timestamp */ ); diff --git a/lib_rend/ivas_dirac_dec_binaural_functions.c b/lib_rend/ivas_dirac_dec_binaural_functions.c index 19b08dbe81..00e4d10968 100644 --- a/lib_rend/ivas_dirac_dec_binaural_functions.c +++ b/lib_rend/ivas_dirac_dec_binaural_functions.c @@ -755,21 +755,10 @@ static void ivas_dirac_dec_binaural_internal( ivas_sba_prototype_renderer( st_ivas, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, subframe ); } -#ifdef OMASA_OBJECT_EDITING -#ifdef OBJ_EDITING_PARAMISM_BIN if ( ( st_ivas->ivas_format == MASA_ISM_FORMAT && ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || ( st_ivas->ism_mode == ISM_MASA_MODE_DISC && ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) ) ) ) || st_ivas->ivas_format == ISM_FORMAT ) -#else - if ( st_ivas->ivas_format == MASA_ISM_FORMAT && ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || ( st_ivas->ism_mode == ISM_MASA_MODE_DISC && ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) ) ) ) -#endif { ivas_omasa_preProcessStereoTransportsForEditedObjects( st_ivas, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, nBins, subframe ); } -#else - if ( st_ivas->ivas_format == MASA_ISM_FORMAT && nchan_transport == 2 && st_ivas->ism_mode != ISM_MASA_MODE_DISC && st_ivas->ism_mode != ISM_MASA_MODE_MASA_ONE_OBJ ) - { - ivas_omasa_preProcessStereoTransportsForMovedObjects( st_ivas, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, nBins, subframe ); - } -#endif if ( hCombinedOrientationData ) { @@ -1247,19 +1236,11 @@ static void ivas_dirac_dec_binaural_formulate_target_covariance_matrices( ismDirIndex = dirIndex - hSpatParamRendCom->numParametricDirections; assert( hMasaIsmData != NULL && "hMasaIsmData should not be NULL if we use it" ); -#ifdef OMASA_OBJECT_EDITING if ( hMasaIsmData->ism_dir_is_edited[ismDirIndex] ) { aziDeg = hMasaIsmData->azimuth_ism_edited[ismDirIndex]; eleDeg = hMasaIsmData->elevation_ism_edited[ismDirIndex]; } -#else - if ( hMasaIsmData->ism_is_edited[ismDirIndex] ) - { - aziDeg = hMasaIsmData->azimuth_ism_edited[ismDirIndex]; - eleDeg = hMasaIsmData->elevation_ism_edited[ismDirIndex]; - } -#endif else { aziDeg = hMasaIsmData->azimuth_ism[ismDirIndex][dirac_read_idx]; @@ -1693,7 +1674,6 @@ static void ivas_dirac_dec_binaural_determine_processing_matrices( { if ( ism_mode == ISM_MASA_MODE_DISC ) { -#ifdef OMASA_OBJECT_EDITING if ( hMasaIsmData->ism_dir_is_edited[chB] ) { aziDeg = hMasaIsmData->azimuth_ism_edited[chB]; @@ -1704,14 +1684,9 @@ static void ivas_dirac_dec_binaural_determine_processing_matrices( aziDeg = hMasaIsmData->azimuth_ism[chB][dirac_read_idx]; eleDeg = hMasaIsmData->elevation_ism[chB][dirac_read_idx]; } -#else - aziDeg = hMasaIsmData->azimuth_ism[chB][dirac_read_idx]; - eleDeg = hMasaIsmData->elevation_ism[chB][dirac_read_idx]; -#endif } else { -#ifdef OMASA_OBJECT_EDITING if ( ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ && hMasaIsmData->ism_dir_is_edited[hMasaIsmData->idx_separated_ism] ) { aziDeg = hMasaIsmData->azimuth_ism_edited[hMasaIsmData->idx_separated_ism]; @@ -1722,10 +1697,6 @@ static void ivas_dirac_dec_binaural_determine_processing_matrices( aziDeg = hMasaIsmData->azimuth_separated_ism[dirac_read_idx]; eleDeg = hMasaIsmData->elevation_separated_ism[dirac_read_idx]; } -#else - aziDeg = hMasaIsmData->azimuth_separated_ism[dirac_read_idx]; - eleDeg = hMasaIsmData->elevation_separated_ism[dirac_read_idx]; -#endif instantChange = 1; } } @@ -2500,7 +2471,6 @@ static void getDirectPartGains( if ( renderStereoOutputInsteadOfBinaural ) /* In stereo (i.e. non-binaural) rendering mode */ { -#ifdef OMASA_OBJECT_EDITING *lImagp = 0.0f; *rImagp = 0.0f; if ( aziDeg == gainCache->azi && eleDeg == gainCache->ele ) @@ -2546,40 +2516,6 @@ static void getDirectPartGains( gainCache->shVec[0] = *lRealp; /* Reuse memory */ gainCache->shVec[1] = *rRealp; /* Reuse memory */ } -#else - /* Convert azi and ele to an azi value of the cone of confusion */ - aziRad = (float) aziDeg * PI_OVER_180; - eleRad = (float) eleDeg * PI_OVER_180; - y = ( sinf( aziRad ) * cosf( eleRad ) ); - mappedX = sqrtf( max( 0.0f, 1.0f - ( y * y ) ) ); - aziRadMapped = atan2f( y, mappedX ); - - /* Determine the real valued amplitude panning gains */ - *lImagp = 0.0f; - *rImagp = 0.0f; - if ( aziRadMapped >= LsAngleRad ) - { /* Left side */ - *lRealp = 1.0f; - *rRealp = 0.0f; - } - else if ( aziRadMapped <= -LsAngleRad ) - { /* Right side */ - *lRealp = 0.0f; - *rRealp = 1.0f; - } - else /* Tangent panning law */ - { - A = tanf( aziRadMapped ) / tanf( LsAngleRad ); - A2 = ( A - 1.0f ) / max( 0.001f, A + 1.0f ); - A3 = 1.0f / ( A2 * A2 + 1.0f ); - *lRealp = sqrtf( A3 ); - *rRealp = sqrtf( 1.0f - A3 ); - } - - /* Scaling to have the same expected gain as for the HRTF rendering */ - *lRealp *= SQRT2; - *rRealp *= SQRT2; -#endif } else /* In regular binaural rendering mode */ { @@ -2733,7 +2669,6 @@ float configure_reqularization_factor( } -#ifdef OMASA_OBJECT_EDITING /*-------------------------------------------------------------------* * ivas_omasa_preProcessStereoTransportsForEditedObjects() * @@ -2750,9 +2685,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( int16_t bin, ch, inCh, outCh, ismDirIndex, slot, band_idx, bin_lo, bin_hi, max_band, n_ism; SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; MASA_ISM_DATA_HANDLE hMasaIsmData; -#ifdef OBJ_EDITING_PARAMISM_BIN PARAM_ISM_DEC_HANDLE hParamIsmDec; -#endif uint8_t enableCentering; int16_t dirac_read_idx; int16_t nSlots; @@ -2763,13 +2696,10 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( uint8_t ismGainEdited[4]; uint8_t ismDirEdited[4]; uint8_t masaGainEdited; -#ifdef OBJ_EDITING_PARAMISM_BIN uint8_t masaIsmMode; -#endif hSpatParamRendCom = st_ivas->hSpatParamRendCom; hMasaIsmData = st_ivas->hMasaIsmData; -#ifdef OBJ_EDITING_PARAMISM_BIN hParamIsmDec = st_ivas->hParamIsmDec; if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) @@ -2780,7 +2710,6 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( { masaIsmMode = 0u; } -#endif if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_FOA || st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_HOA2 || st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_HOA3 ) { @@ -2791,11 +2720,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( enableCentering = 1; } -#ifdef OBJ_EDITING_PARAMISM_BIN if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC || st_ivas->ivas_format == ISM_FORMAT ) -#else - if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) -#endif { n_ism = st_ivas->nchan_ism; } @@ -2872,7 +2797,6 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( } } } -#ifdef OBJ_EDITING_PARAMISM_BIN else if ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->hISMDTX.dtx_flag ) /* If dtx on, perform just the smoothing of the processing gains */ { float totalTargetEne; @@ -2980,7 +2904,6 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( } } } -#endif else /* Other processing modes */ { float subframeEne; @@ -3060,15 +2983,12 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( /* Determine the highest band */ max_band = 0; -#ifdef OBJ_EDITING_PARAMISM_BIN if ( masaIsmMode ) { -#endif while ( max_band < MASA_FREQUENCY_BANDS && MASA_band_grouping_24[max_band] < nBins ) { max_band++; } -#ifdef OBJ_EDITING_PARAMISM_BIN } else { @@ -3077,7 +2997,6 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( max_band++; } } -#endif /* Init out array */ for ( int k = 0; k < nSlots; k++ ) @@ -3101,20 +3020,16 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( set_zero( ismPreprocMtxNew[1], 2 ); set_zero( eneMove, 2 ); set_zero( enePreserve, 2 ); -#ifdef OBJ_EDITING_PARAMISM_BIN if ( masaIsmMode ) { -#endif bin_lo = MASA_band_grouping_24[band_idx]; bin_hi = min( MASA_band_grouping_24[band_idx + 1], nBins ); -#ifdef OBJ_EDITING_PARAMISM_BIN } else { bin_lo = hParamIsmDec->hParamIsm->band_grouping[band_idx]; bin_hi = min( hParamIsmDec->hParamIsm->band_grouping[band_idx + 1], nBins ); } -#endif /* Determine transport normalized energies and subframe energy */ for ( slot = 0; slot < nSlots; slot++ ) @@ -3188,10 +3103,8 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( ratioAccNew += ratio; } -#ifdef OBJ_EDITING_PARAMISM_BIN if ( masaIsmMode ) { -#endif /* MASA original ratios */ ratio = hSpatParamRendCom->energy_ratio1[dirac_read_idx][bin_lo] + hSpatParamRendCom->energy_ratio2[dirac_read_idx][bin_lo]; ratioAccOrig += ratio; @@ -3213,9 +3126,7 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( } ratioAccNew += ratio; -#ifdef OBJ_EDITING_PARAMISM_BIN } -#endif /* Limit target energies to non-negative values */ #ifdef NONBE_FIX_1197_OMASA_META_BUFFER @@ -3388,7 +3299,6 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( } } -#ifdef OBJ_EDITING_PARAMISM_BIN if ( !masaIsmMode ) { int16_t obj_idx1, obj_idx2; @@ -3408,237 +3318,10 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( } } } -#endif - } - - return; -} -#else -/*-------------------------------------------------------------------* - * ivas_omasa_preProcessStereoTransportsForMovedObjects() - * - * - *-------------------------------------------------------------------*/ - -void ivas_omasa_preProcessStereoTransportsForMovedObjects( - Decoder_Struct *st_ivas, - float inRe[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], - float inIm[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], - const int16_t nBins, - const int16_t subframe ) -{ - int16_t bin, ch, inCh, outCh, ismDirIndex, slot; - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; - MASA_ISM_DATA_HANDLE hMasaIsmData; - uint8_t enableCentering; - int16_t dirac_read_idx; - int16_t nSlots; - - hSpatParamRendCom = st_ivas->hSpatParamRendCom; - hMasaIsmData = st_ivas->hMasaIsmData; - - if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_FOA || st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_HOA2 || st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_HOA3 ) - { - enableCentering = 0; - } - else - { - enableCentering = 1; - } - - /* Bypass processing until first object is moved */ - if ( hMasaIsmData->objectsMoved == 0 ) - { - for ( ismDirIndex = 0; ismDirIndex < hSpatParamRendCom->numIsmDirections; ismDirIndex++ ) - { - if ( hMasaIsmData->ism_is_edited[ismDirIndex] ) - { - hMasaIsmData->objectsMoved = 1; - } - } - if ( hMasaIsmData->objectsMoved == 0 ) - { - /* No objects have moved so far */ - return; - } - } - - /* Perform object-movement based processing */ - nSlots = hSpatParamRendCom->subframe_nbslots[subframe]; - dirac_read_idx = hSpatParamRendCom->render_to_md_map[subframe]; - - for ( bin = 0; bin < nBins; bin++ ) - { - float ismPreprocMtxNew[2][2]; - float ismPreprocMtxIncrement[2][2]; - float eneMove[2]; - float enePreserve[2]; - float ismRatioAcc; - float subframeEne; - float normEnes[2]; - float remainderNormEne; - - set_zero( ismPreprocMtxNew[0], 2 ); - set_zero( ismPreprocMtxNew[1], 2 ); - set_zero( ismPreprocMtxIncrement[0], 2 ); - set_zero( ismPreprocMtxIncrement[1], 2 ); - set_zero( eneMove, 2 ); - set_zero( enePreserve, 2 ); - ismRatioAcc = 0.0f; - subframeEne = 0.0f; - set_zero( normEnes, 2 ); - - /* Determine transport normalized energies and subframe energy */ - for ( slot = 0; slot < nSlots; slot++ ) - { - for ( ch = 0; ch < 2; ch++ ) - { - normEnes[ch] += inRe[ch][slot][bin] * inRe[ch][slot][bin]; - normEnes[ch] += inIm[ch][slot][bin] * inIm[ch][slot][bin]; - } - } - subframeEne = normEnes[0] + normEnes[1]; - normEnes[0] /= fmaxf( 1e-12f, subframeEne ); - normEnes[1] /= fmaxf( 1e-12f, subframeEne ); - - /* For each ismDir, formulate a mix-matrix that moves object audio signals between - * left and right channels when needed. Make a combined matrix by a ratio-weighted sum */ - for ( ismDirIndex = 0; ismDirIndex < hSpatParamRendCom->numIsmDirections; ismDirIndex++ ) - { - float panGainsOut[2]; - float panGainsIn[2]; - float ratio; - float panEnesOut[2]; - float panEnesIn[2]; - float centeringFactor; - - ratio = hMasaIsmData->energy_ratio_ism[ismDirIndex][dirac_read_idx][bin]; - - ismRatioAcc += ratio; - - /* Get input and output panning gains */ - ivas_get_stereo_panning_gains( hMasaIsmData->azimuth_ism[ismDirIndex][dirac_read_idx], - hMasaIsmData->elevation_ism[ismDirIndex][dirac_read_idx], - panGainsIn ); - - if ( hMasaIsmData->ism_is_edited[ismDirIndex] ) - { - ivas_get_stereo_panning_gains( hMasaIsmData->azimuth_ism_edited[ismDirIndex], - hMasaIsmData->elevation_ism_edited[ismDirIndex], - panGainsOut ); - } - else - { - /* When not edited, input and output pan gains are the same */ - for ( ch = 0; ch < 2; ch++ ) - { - panGainsOut[ch] = panGainsIn[ch]; - } - } - - /* Determine pan enes */ - for ( ch = 0; ch < 2; ch++ ) - { - panEnesOut[ch] = panGainsOut[ch] * panGainsOut[ch]; - panEnesIn[ch] = panGainsIn[ch] * panGainsIn[ch]; - } - - if ( enableCentering ) - { - centeringFactor = fmaxf( 0.0f, 2.0f * fabsf( panEnesIn[0] - panEnesOut[0] ) - 1.0f ); - for ( ch = 0; ch < 2; ch++ ) - { - panEnesOut[ch] *= ( 1.0f - centeringFactor ); - panEnesOut[ch] += 0.5f * centeringFactor; - } - } - - for ( ch = 0; ch < 2; ch++ ) - { - float eneMoveThis; - float enePreserveThis; - eneMoveThis = fmaxf( 0.0f, panEnesIn[ch] - panEnesOut[ch] ); - enePreserveThis = panEnesIn[ch] - eneMoveThis; - - eneMove[ch] += ratio * eneMoveThis; - enePreserve[ch] += ratio * enePreserveThis; - - /* Subtract object parts from normEnes */ - normEnes[ch] -= panEnesIn[ch] * ratio; - } - } - - /* Any remaining (non-object) energy is set to be preserved at both channels */ - remainderNormEne = fmaxf( 0.0f, ( 1.0f - ismRatioAcc ) - normEnes[0] - normEnes[1] ); - for ( ch = 0; ch < 2; ch++ ) - { - enePreserve[ch] += fmaxf( 0.0f, normEnes[ch] + remainderNormEne / 2.0f ); - } - - /* Temporally average energy moving and preserving, and generate the transport signal preprocessing matrix */ - for ( ch = 0; ch < 2; ch++ ) - { - float normVal; - hMasaIsmData->eneMoveIIR[ch][bin] *= STEREO_PREPROCESS_IIR_FACTOR; - hMasaIsmData->eneMoveIIR[ch][bin] += eneMove[ch] * subframeEne; - hMasaIsmData->enePreserveIIR[ch][bin] *= STEREO_PREPROCESS_IIR_FACTOR; - hMasaIsmData->enePreserveIIR[ch][bin] += enePreserve[ch] * subframeEne; - normVal = fmaxf( EPSILON, hMasaIsmData->eneMoveIIR[ch][bin] + hMasaIsmData->enePreserveIIR[ch][bin] ); - ismPreprocMtxNew[ch][ch] = sqrtf( hMasaIsmData->enePreserveIIR[ch][bin] / normVal ); - ismPreprocMtxNew[1 - ch][ch] = sqrtf( hMasaIsmData->eneMoveIIR[ch][bin] / normVal ); - } - - /* Get increment value for temporal interpolation */ - for ( inCh = 0; inCh < 2; inCh++ ) - { - for ( outCh = 0; outCh < 2; outCh++ ) - { - ismPreprocMtxIncrement[outCh][inCh] = ( ismPreprocMtxNew[outCh][inCh] - hMasaIsmData->ismPreprocMatrix[outCh][inCh][bin] ) / (float) nSlots; - } - } - - /* Mix signals */ - for ( slot = 0; slot < nSlots; slot++ ) - { - float eqVal; - float outSlotRe[2]; - float outSlotIm[2]; - - set_zero( outSlotRe, 2 ); - set_zero( outSlotIm, 2 ); - - for ( outCh = 0; outCh < 2; outCh++ ) - { - for ( inCh = 0; inCh < 2; inCh++ ) - { - hMasaIsmData->ismPreprocMatrix[outCh][inCh][bin] += ismPreprocMtxIncrement[outCh][inCh]; - outSlotRe[outCh] += inRe[inCh][slot][bin] * hMasaIsmData->ismPreprocMatrix[outCh][inCh][bin]; - outSlotIm[outCh] += inIm[inCh][slot][bin] * hMasaIsmData->ismPreprocMatrix[outCh][inCh][bin]; - } - } - - /* IIR average the energy measures and determine and apply energy-preserving equalizer */ - hMasaIsmData->preprocEneTarget[bin] *= STEREO_PREPROCESS_IIR_FACTOR; - hMasaIsmData->preprocEneRealized[bin] *= STEREO_PREPROCESS_IIR_FACTOR; - for ( ch = 0; ch < 2; ch++ ) - { - hMasaIsmData->preprocEneTarget[bin] += inRe[ch][slot][bin] * inRe[ch][slot][bin]; - hMasaIsmData->preprocEneTarget[bin] += inIm[ch][slot][bin] * inIm[ch][slot][bin]; - hMasaIsmData->preprocEneRealized[bin] += outSlotRe[ch] * outSlotRe[ch]; - hMasaIsmData->preprocEneRealized[bin] += outSlotIm[ch] * outSlotIm[ch]; - } - eqVal = fminf( 4.0f, sqrtf( hMasaIsmData->preprocEneTarget[bin] / fmaxf( 1e-12f, hMasaIsmData->preprocEneRealized[bin] ) ) ); - for ( ch = 0; ch < 2; ch++ ) - { - inRe[ch][slot][bin] = outSlotRe[ch] * eqVal; - inIm[ch][slot][bin] = outSlotIm[ch] * eqVal; - } - } } return; } -#endif static void ivas_masa_ext_rend_parambin_internal( diff --git a/lib_rend/ivas_dirac_output_synthesis_dec.c b/lib_rend/ivas_dirac_output_synthesis_dec.c index 0bfd43ddd8..9aafded8f3 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec.c @@ -1700,17 +1700,10 @@ void ivas_dirac_dec_compute_directional_responses( for ( dir = 0; dir < hSpatParamRendCom->numIsmDirections; dir++ ) { -#ifdef OMASA_OBJECT_EDITING if ( hMasaIsm->ism_dir_is_edited[dir] ) { ivas_dirac_dec_get_response( hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], direct_response_temp, hDirACRend->hOutSetup.ambisonics_order ); } -#else - if ( hMasaIsm->ism_is_edited[dir] ) - { - ivas_dirac_dec_get_response( hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], direct_response_temp, hDirACRend->hOutSetup.ambisonics_order ); - } -#endif else { ivas_dirac_dec_get_response( hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], direct_response_temp, hDirACRend->hOutSetup.ambisonics_order ); @@ -1817,17 +1810,10 @@ void ivas_dirac_dec_compute_directional_responses( for ( dir = 0; dir < hSpatParamRendCom->numIsmDirections; dir++ ) { -#ifdef OMASA_OBJECT_EDITING if ( hMasaIsm->ism_dir_is_edited[dir] ) { vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 ); } -#else - if ( hMasaIsm->ism_is_edited[dir] ) - { - vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 ); - } -#endif else { vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 ); diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index 4b1c5764b7..43bfe3c7a9 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -503,9 +503,7 @@ static void TDREND_Clear_Update_flags( for ( i = 0; i < hBinRendererTd->NumOfSrcs; i++ ) { hBinRendererTd->Sources[i]->SrcSpatial_p->Updated = FALSE; -#ifdef OBJ_EDITING_API hBinRendererTd->Sources[i]->SrcRend_p->SrcGainUpdated = FALSE; -#endif } return; @@ -553,12 +551,10 @@ ivas_error TDREND_Update_object_positions( return error; } -#ifdef OBJ_EDITING_INTERFACE if ( ( error = TDREND_MIX_SRC_SetGain( hBinRendererTd, nS, hIsmMetaData[nS]->gain ) ) != IVAS_ERR_OK ) { return error; } -#endif if ( hIsmMetaData[nS]->non_diegetic_flag ) { @@ -784,9 +780,7 @@ ivas_error ivas_td_binaural_renderer_ext( hIsmMetaData[0]->yaw = currentPos->yaw; hIsmMetaData[0]->pitch = currentPos->pitch; hIsmMetaData[0]->radius = currentPos->radius; -#ifdef OBJ_EDITING_INTERFACE hIsmMetaData[0]->gain = 1.0f; -#endif hIsmMetaData[0]->non_diegetic_flag = currentPos->non_diegetic_flag; } diff --git a/lib_rend/ivas_objectRenderer_sources.c b/lib_rend/ivas_objectRenderer_sources.c index 6079f93b5b..27c7801ad1 100644 --- a/lib_rend/ivas_objectRenderer_sources.c +++ b/lib_rend/ivas_objectRenderer_sources.c @@ -53,9 +53,7 @@ static void TDREND_SRC_SPATIAL_SetDirAtten( TDREND_SRC_SPATIAL_t *SrcSpatial_p, static void TDREND_SRC_SPATIAL_SetDistAtten( TDREND_SRC_SPATIAL_t *SrcSpatial_p, const TDREND_DistAtten_t *DistAtten_p ); -#ifdef OBJ_EDITING_INTERFACE static void TDREND_SRC_SPATIAL_SetGain( const TDREND_SRC_t *Src_p, const float Gain ); -#endif static float TDREND_SRC_SPATIAL_GetDirGain( const TDREND_DirAtten_t *DirAtten_p, const float *Front_p, const float *RelPos_p ); @@ -133,7 +131,6 @@ ivas_error TDREND_MIX_SRC_SetDir( } -#ifdef OBJ_EDITING_INTERFACE /*-------------------------------------------------------------------* * TDREND_MIX_SRC_SetGain() * @@ -150,7 +147,6 @@ ivas_error TDREND_MIX_SRC_SetGain( return IVAS_ERR_OK; } -#endif /*-------------------------------------------------------------------* @@ -275,11 +271,7 @@ static void TDREND_SRC_REND_Init( { SrcRend_p->SrcGainMin_p[nC] = 0.0f; SrcRend_p->SrcGain_p[nC] = 1.0f; -#ifdef OBJ_EDITING_API SrcRend_p->SrcGainMax_p[nC] = 2.0f; -#else - SrcRend_p->SrcGainMax_p[nC] = 1.0f; -#endif } SrcRend_p->SrcGainUpdated = FALSE; @@ -559,7 +551,6 @@ static void TDREND_SRC_SPATIAL_SetDistAtten( } -#ifdef OBJ_EDITING_INTERFACE /*-------------------------------------------------------------------* * TDREND_SRC_SPATIAL_SetGain() * @@ -575,7 +566,6 @@ static void TDREND_SRC_SPATIAL_SetGain( return; } -#endif /*-------------------------------------------------------------------* diff --git a/lib_rend/ivas_prot_rend.h b/lib_rend/ivas_prot_rend.h index b3a826e71e..612f2656f4 100644 --- a/lib_rend/ivas_prot_rend.h +++ b/lib_rend/ivas_prot_rend.h @@ -720,13 +720,11 @@ ivas_error TDREND_MIX_SRC_SetDir( const float *Vec_p /* i : Direction vector */ ); -#ifdef OBJ_EDITING_INTERFACE ivas_error TDREND_MIX_SRC_SetGain( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const float Gain /* i : Gain */ ); -#endif ivas_error TDREND_MIX_SRC_SetDirAtten( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ @@ -744,13 +742,11 @@ ivas_error TDREND_MIX_SRC_SetPlayState( const TDREND_PlayStatus_t PlayStatus /* i : Play state */ ); -#ifdef OBJ_EDITING_API ivas_error TDREND_MIX_SRC_SetSrcGain( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const float SrcGain_p /* i : Source gain */ ); -#endif void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ -- GitLab From d7d7ab8aeb85caa9b39cc81189f925e477d46e84 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:23:30 +0100 Subject: [PATCH 19/40] [cleanup] accept FIX_587_DEFAULT_REVERB --- apps/decoder.c | 3 --- apps/renderer.c | 3 --- lib_com/common_api_types.h | 3 --- lib_com/options.h | 1 - lib_dec/ivas_binRenderer_internal.c | 18 ------------- lib_dec/lib_dec.c | 6 ----- lib_rend/ivas_dirac_dec_binaural_functions.c | 22 --------------- lib_rend/ivas_render_config.c | 3 --- lib_rend/ivas_reverb.c | 7 ----- lib_rend/lib_rend.c | 28 -------------------- 10 files changed, 94 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index ffeb49748b..59dda20d12 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -698,9 +698,6 @@ int main( fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", aeID ); goto cleanup; } -#ifndef FIX_587_DEFAULT_REVERB - renderConfig.roomAcoustics.override = true; -#endif } /* ISAR frame size is set from command line, not renderer config file. diff --git a/apps/renderer.c b/apps/renderer.c index 767d4bb60d..9f3be788ea 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -1052,9 +1052,6 @@ int main( fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", aeID ); exit( -1 ); } -#ifndef FIX_587_DEFAULT_REVERB - renderConfig.roomAcoustics.override = 1; -#endif } /* ISAR frame size is set from command line, not renderer config file. diff --git a/lib_com/common_api_types.h b/lib_com/common_api_types.h index 766772dec8..4a9ca4665e 100644 --- a/lib_com/common_api_types.h +++ b/lib_com/common_api_types.h @@ -327,9 +327,6 @@ typedef enum typedef struct _IVAS_ROOM_ACOUSTICS_CONFIG { -#ifndef FIX_587_DEFAULT_REVERB - int16_t override; -#endif int16_t nBands; /* Number of frequency bands for which reverb properties are provided, integer, range [2..256] */ float pFc_input[IVAS_CLDFB_NO_CHANNELS_MAX]; /* Center frequencies for which following values are provided: */ float pAcoustic_rt60[IVAS_CLDFB_NO_CHANNELS_MAX]; /* - The room's T60 per center frequency */ diff --git a/lib_com/options.h b/lib_com/options.h index 89c48d5a52..d66f1003a1 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -164,7 +164,6 @@ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ -#define FIX_587_DEFAULT_REVERB /* Philips: issue 587: inconsistent default reverb parameters across renderers */ #define FIX_HRTF_LOAD /* VA: issue 1187: fix memory issue when HRTFs are loaded from a binary file */ #define FIX_1209_SID_SIGNALING /* VA: issue 1209: remove dead code in IVAS SID signaling */ diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index 269c6bff98..e8a0e996c6 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -1075,9 +1075,7 @@ ivas_error ivas_binRenderer_open( BINAURAL_RENDERER_HANDLE hBinRenderer; int16_t convBand, k; ivas_error error; -#ifdef FIX_587_DEFAULT_REVERB const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *pRoomAcoustics; -#endif error = IVAS_ERR_OK; @@ -1224,7 +1222,6 @@ ivas_error ivas_binRenderer_open( /* Allocate memories needed for reverb module */ if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { -#ifdef FIX_587_DEFAULT_REVERB pRoomAcoustics = ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ? &( st_ivas->hRenderConfig->roomAcoustics ) : NULL; if ( ( error = ivas_binaural_reverb_init( &( hBinRenderer->hReverb ), st_ivas->hHrtfStatistics, @@ -1239,21 +1236,6 @@ ivas_error ivas_binRenderer_open( hBinRenderer->earlyPartEneCorrection #endif ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_binaural_reverb_init( &( hBinRenderer->hReverb ), - st_ivas->hHrtfStatistics, - hBinRenderer->conv_band, - hBinRenderer->timeSlots, - &( st_ivas->hRenderConfig->roomAcoustics ), - st_ivas->hDecoderConfig->output_Fs, - st_ivas->hHrtfFastConv->fastconvReverberationTimes, - st_ivas->hHrtfFastConv->fastconvReverberationEneCorrections -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 - , - hBinRenderer->earlyPartEneCorrection -#endif - ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 3d9b616e5b..d46f569feb 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -2961,9 +2961,6 @@ static ivas_error copyRendererConfigStruct( hRCout->renderer_type_override = IVAS_RENDER_TYPE_OVERRIDE_NONE; break; } -#endif -#ifndef FIX_587_DEFAULT_REVERB - hRCout->roomAcoustics.override = hRCin->roomAcoustics.override; #endif hRCout->roomAcoustics.nBands = hRCin->roomAcoustics.nBands; hRCout->roomAcoustics.acousticPreDelay = hRCin->roomAcoustics.acousticPreDelay; @@ -3058,9 +3055,6 @@ ivas_error IVAS_DEC_FeedRenderConfig( { hRenderConfig->renderer_type_override = IVAS_RENDER_TYPE_OVERRIDE_CREND; } -#endif -#ifndef FIX_587_DEFAULT_REVERB - hRenderConfig->roomAcoustics.override = renderConfig.roomAcoustics.override; #endif hRenderConfig->roomAcoustics.nBands = renderConfig.roomAcoustics.nBands; hRenderConfig->roomAcoustics.acousticPreDelay = renderConfig.roomAcoustics.acousticPreDelay; diff --git a/lib_rend/ivas_dirac_dec_binaural_functions.c b/lib_rend/ivas_dirac_dec_binaural_functions.c index 00e4d10968..f6ceba8a3d 100644 --- a/lib_rend/ivas_dirac_dec_binaural_functions.c +++ b/lib_rend/ivas_dirac_dec_binaural_functions.c @@ -143,9 +143,7 @@ ivas_error ivas_dirac_dec_init_binaural_data( ivas_error error; float frequency_axis[CLDFB_NO_CHANNELS_MAX]; int16_t num_poses, pos_idx; -#ifdef FIX_587_DEFAULT_REVERB const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *pRoomAcoustics; -#endif num_poses = 1; if ( st_ivas->hSplitBinRend != NULL ) @@ -223,16 +221,12 @@ ivas_error ivas_dirac_dec_init_binaural_data( if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) { mvr2r( ( *phHrtfParambin )->parametricEarlyPartEneCorrection, hDiracDecBin->earlyPartEneCorrection, nBins ); -#ifdef FIX_587_DEFAULT_REVERB pRoomAcoustics = NULL; -#endif } else { set_f( hDiracDecBin->earlyPartEneCorrection, 1.0f, CLDFB_NO_CHANNELS_MAX ); -#ifdef FIX_587_DEFAULT_REVERB pRoomAcoustics = &( st_ivas->hRenderConfig->roomAcoustics ); -#endif } /* reconfiguration needed when Reverb. parameters are changed -> close and open the handle again */ @@ -244,7 +238,6 @@ ivas_error ivas_dirac_dec_init_binaural_data( if ( hDiracDecBin->hReverb == NULL && pos_idx == 0 ) /* open reverb only for the main direction */ { -#ifdef FIX_587_DEFAULT_REVERB if ( ( error = ivas_binaural_reverb_init( &hDiracDecBin->hReverb, st_ivas->hHrtfStatistics, nBins, @@ -258,21 +251,6 @@ ivas_error ivas_dirac_dec_init_binaural_data( hDiracDecBin->earlyPartEneCorrection #endif ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_binaural_reverb_init( &hDiracDecBin->hReverb, - st_ivas->hHrtfStatistics, - nBins, - CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, - &( st_ivas->hRenderConfig->roomAcoustics ), - output_Fs, - ( *phHrtfParambin )->parametricReverberationTimes, - ( *phHrtfParambin )->parametricReverberationEneCorrections -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 - , - hDiracDecBin->earlyPartEneCorrection -#endif - ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_rend/ivas_render_config.c b/lib_rend/ivas_render_config.c index 950e9ee8bf..cc03379e9f 100644 --- a/lib_rend/ivas_render_config.c +++ b/lib_rend/ivas_render_config.c @@ -112,9 +112,6 @@ ivas_error ivas_render_config_init_from_rom( #ifdef DEBUGGING ( *hRenderConfig )->renderer_type_override = IVAS_RENDER_TYPE_OVERRIDE_NONE; -#endif -#ifndef FIX_587_DEFAULT_REVERB - ( *hRenderConfig )->roomAcoustics.override = FALSE; #endif ( *hRenderConfig )->roomAcoustics.nBands = IVAS_REVERB_DEFAULT_N_BANDS; ( *hRenderConfig )->roomAcoustics.acousticPreDelay = IVAS_REVERB_DEFAULT_PRE_DELAY; diff --git a/lib_rend/ivas_reverb.c b/lib_rend/ivas_reverb.c index bc3bd4c605..484cb43bb0 100644 --- a/lib_rend/ivas_reverb.c +++ b/lib_rend/ivas_reverb.c @@ -1132,9 +1132,6 @@ ivas_error ivas_reverb_open( /* set reverb acoustic configuration based on renderer config */ #ifdef DEBUGGING pState->pConfig.renderer_type_override = hRenderConfig->renderer_type_override; -#endif -#ifndef FIX_587_DEFAULT_REVERB - pState->pConfig.roomAcoustics.override = hRenderConfig->roomAcoustics.override; #endif pState->pConfig.roomAcoustics.nBands = hRenderConfig->roomAcoustics.nBands; @@ -1902,11 +1899,7 @@ ivas_error ivas_binaural_reverb_init( error = IVAS_ERR_OK; -#ifdef FIX_587_DEFAULT_REVERB if ( roomAcoustics != NULL ) -#else - if ( ( roomAcoustics != NULL ) && roomAcoustics->override ) -#endif { #ifndef FIX_1139_REV_COLORATION_SHORT_T60 revTimes = t60; diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 1d16f0d2f0..2ca20ede50 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -4206,9 +4206,6 @@ ivas_error IVAS_REND_GetRenderConfig( hRCout->renderer_type_override = IVAS_RENDER_TYPE_OVERRIDE_NONE; break; } -#endif -#ifndef FIX_587_DEFAULT_REVERB - hRCout->roomAcoustics.override = hRCin->roomAcoustics.override; #endif hRCout->roomAcoustics.nBands = hRCin->roomAcoustics.nBands; hRCout->roomAcoustics.acousticPreDelay = hRCin->roomAcoustics.acousticPreDelay; @@ -4265,9 +4262,6 @@ ivas_error IVAS_REND_FeedRenderConfig( hRenderConfig = hIvasRend->hRendererConfig; #ifdef DEBUGGING hRenderConfig->renderer_type_override = renderConfig.renderer_type_override; -#endif -#ifndef FIX_587_DEFAULT_REVERB - hRenderConfig->roomAcoustics.override = renderConfig.roomAcoustics.override; #endif hRenderConfig->roomAcoustics.nBands = renderConfig.roomAcoustics.nBands; hRenderConfig->roomAcoustics.acousticPreDelay = renderConfig.roomAcoustics.acousticPreDelay; @@ -8360,9 +8354,7 @@ static ivas_error ivas_masa_ext_rend_parambin_init( ivas_error error; float frequency_axis[CLDFB_NO_CHANNELS_MAX]; int16_t pos_idx; -#ifdef FIX_587_DEFAULT_REVERB const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *pRoomAcoustics; -#endif error = IVAS_ERR_OK; @@ -8441,21 +8433,16 @@ static ivas_error ivas_masa_ext_rend_parambin_init( if ( *inputMasa->base.ctx.pOutConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) { mvr2r( ( *phHrtfParambin )->parametricEarlyPartEneCorrection, hDiracDecBin->earlyPartEneCorrection, nBins ); -#ifdef FIX_587_DEFAULT_REVERB pRoomAcoustics = NULL; -#endif } else { set_f( hDiracDecBin->earlyPartEneCorrection, 1.0f, CLDFB_NO_CHANNELS_MAX ); -#ifdef FIX_587_DEFAULT_REVERB pRoomAcoustics = &( hRendCfg->roomAcoustics ); -#endif } if ( hDiracDecBin->hReverb == NULL && pos_idx == 0 ) /* open reverb only for the main direction */ { -#ifdef FIX_587_DEFAULT_REVERB if ( ( error = ivas_binaural_reverb_init( &hDiracDecBin->hReverb, hHrtfStatistics, nBins, @@ -8469,21 +8456,6 @@ static ivas_error ivas_masa_ext_rend_parambin_init( hDiracDecBin->earlyPartEneCorrection #endif ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_binaural_reverb_init( &hDiracDecBin->hReverb, - hHrtfStatistics, - nBins, - CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, - &( hRendCfg->roomAcoustics ), - output_Fs, - ( *phHrtfParambin )->parametricReverberationTimes, - ( *phHrtfParambin )->parametricReverberationEneCorrections -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 - , - hDiracDecBin->earlyPartEneCorrection -#endif - ) ) != IVAS_ERR_OK ) -#endif { return error; } -- GitLab From af5df438bc8f30afb20f9cd7d6e3730f4b4098bf Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:24:22 +0100 Subject: [PATCH 20/40] [cleanup] accept FIX_HRTF_LOAD --- apps/decoder.c | 166 ------------------------- apps/renderer.c | 8 -- lib_com/common_api_types.h | 17 --- lib_com/ivas_prot.h | 38 ------ lib_com/options.h | 1 - lib_dec/ivas_binRenderer_internal.c | 2 - lib_dec/ivas_init_dec.c | 78 ------------ lib_dec/ivas_ism_dec.c | 63 ---------- lib_dec/ivas_masa_dec.c | 29 ----- lib_dec/ivas_mct_dec.c | 45 ------- lib_dec/ivas_objectRenderer_internal.c | 2 - lib_dec/ivas_omasa_dec.c | 10 -- lib_dec/ivas_sba_dec.c | 28 ----- lib_dec/lib_dec.c | 73 ----------- lib_dec/lib_dec.h | 12 -- lib_isar/lib_isar_post_rend.c | 4 - lib_rend/ivas_render_config.c | 4 - lib_rend/lib_rend.c | 24 ---- lib_util/hrtf_file_reader.c | 6 - lib_util/hrtf_file_reader.h | 2 - lib_util/render_config_reader.c | 16 --- 21 files changed, 628 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 59dda20d12..31d34ee4f0 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -156,7 +156,6 @@ typedef struct } DecArguments; -#ifdef FIX_HRTF_LOAD typedef struct { hrtfFileReader *hrtfReader; @@ -176,7 +175,6 @@ typedef struct } IVAS_DEC_HRTF_BINARY_WRAPPER; -#endif /*------------------------------------------------------------------------------------------* * Local functions prototypes @@ -184,14 +182,9 @@ typedef struct static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg ); static void usage_dec( void ); -#ifdef FIX_HRTF_LOAD static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtf, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtf, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec ); static ivas_error IVAS_DEC_LoadHrtfFromFile( IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtfBinary, IVAS_DEC_HANDLE hIvasDec, const int32_t output_Fs ); -#else -static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); -static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec ); -#endif #ifdef DEBUGGING static ivas_error printBitstreamInfoVoip( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec ); static int16_t app_own_random( int16_t *seed ); @@ -228,13 +221,7 @@ int main( RenderConfigReader *renderConfigReader = NULL; int16_t *pcmBuf = NULL; IVAS_RENDER_FRAMESIZE asked_frame_size; -#ifdef FIX_HRTF_LOAD IVAS_DEC_HRTF_BINARY_WRAPPER hHrtfBinary; -#else - IVAS_DEC_HRTF_HANDLE *hHrtfTD = NULL; - IVAS_DEC_HRTF_CREND_HANDLE *hSetOfHRTF = NULL; - IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; -#endif #ifdef DEBUGGING int32_t noClipping; int32_t cnt_frames_limited; @@ -251,11 +238,9 @@ int main( reset_mem( USE_BYTES ); #endif -#ifdef FIX_HRTF_LOAD hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */ hHrtfBinary.hSetOfHRTF = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */ -#endif splitRendBits.bits_buf = splitRendBitsBuf; @@ -739,111 +724,12 @@ int main( if ( arg.hrtfReaderEnabled ) { -#ifdef FIX_HRTF_LOAD hHrtfBinary.hrtfReader = hrtfReader; hHrtfBinary.hrtfFileName = arg.hrtfFileName; hHrtfBinary.binaural_renderer = IVAS_BIN_RENDERER_TYPE_NONE; hHrtfBinary.binaural_renderer_sec = IVAS_BIN_RENDERER_TYPE_NONE; hHrtfBinary.room_reverb_flag = 0; hHrtfBinary.intern_audio_config = IVAS_AUDIO_CONFIG_INVALID; -#else - if ( ( error = IVAS_DEC_GetHrtfHandle( hIvasDec, &hHrtfTD ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nIVAS_DEC_GetHrtfHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); - goto cleanup; - } - - if ( ( error = load_HRTF_binary( *hHrtfTD, hrtfReader ) ) != IVAS_ERR_OK ) - { - if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) - { - fprintf( stderr, "\nError in loading HRTF binary file %s \n\n", arg.hrtfFileName ); - goto cleanup; - } - else - { - destroy_td_hrtf( hHrtfTD ); - } - } - - - if ( ( error = IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nIVAS_DEC_GetHrtfCRendHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); - goto cleanup; - } - - if ( ( error = create_SetOfHRTF_from_binary( *hSetOfHRTF, hrtfReader, arg.output_Fs ) ) != IVAS_ERR_OK ) - { - if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) - { - fprintf( stderr, "\nError in loading HRTF binary file %s \n\n", arg.hrtfFileName ); - goto cleanup; - } - else - { - destroy_SetOfHRTF( hSetOfHRTF ); - } - } - - IVAS_DEC_HRTF_FASTCONV_HANDLE *hHrtfFastConv = NULL; - if ( ( error = IVAS_DEC_GetHrtfFastConvHandle( hIvasDec, &hHrtfFastConv ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nIVAS_DEC_GetHrtfFastConvHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); - goto cleanup; - } - - if ( ( error = load_fastconv_HRTF_from_binary( *hHrtfFastConv, hrtfReader ) ) != IVAS_ERR_OK ) - { - if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) - { - fprintf( stderr, "\nError in loading HRTF binary file %s \n\n", arg.hrtfFileName ); - goto cleanup; - } - else - { - destroy_fastconv_hrtf( hHrtfFastConv ); - } - } - - IVAS_DEC_HRTF_PARAMBIN_HANDLE *hHrtfParambin = NULL; - if ( ( error = IVAS_DEC_GetHrtfParamBinHandle( hIvasDec, &hHrtfParambin ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nIVAS_DEC_GetHrtfParamBinHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); - goto cleanup; - } - - if ( ( error = load_parambin_HRTF_from_binary( *hHrtfParambin, hrtfReader ) ) != IVAS_ERR_OK ) - { - if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) - { - fprintf( stderr, "\nError in loading HRTF binary file %s \n\n", arg.hrtfFileName ); - goto cleanup; - } - else - { - destroy_parambin_hrtf( hHrtfParambin ); - } - } - - if ( ( error = IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nIVAS_DEC_GetHrtfHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); - goto cleanup; - } - if ( ( error = load_reverb_binary( *hHrtfStatistics, arg.output_Fs, hrtfReader ) ) != IVAS_ERR_OK ) - { - if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) - { - fprintf( stderr, "\nError in loading HRTF binary file %s \n\n", arg.hrtfFileName ); - goto cleanup; - } - else - { - destroy_hrtf_statistics( hHrtfStatistics ); - } - } -#endif } /*------------------------------------------------------------------------------------------* @@ -865,19 +751,11 @@ int main( if ( arg.voipMode ) { -#ifdef FIX_HRTF_LOAD error = decodeVoIP( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, hIvasDec ); -#else - error = decodeVoIP( arg, hBsReader, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, hIvasDec ); -#endif } else { -#ifdef FIX_HRTF_LOAD error = decodeG192( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, &splitRendBits, hIvasDec, pcmBuf ); -#else - error = decodeG192( arg, hBsReader, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, &splitRendBits, hIvasDec, pcmBuf ); -#endif } if ( error == IVAS_ERR_OK || error == IVAS_ERR_END_OF_FILE ) @@ -893,11 +771,7 @@ int main( } else { -#ifdef FIX_HRTF_LOAD fprintf( stderr, "\nDecoding finished prematurely: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); -#else - fprintf( stdout, "Decoding finished prematurely\n\n" ); -#endif goto cleanup; } @@ -933,20 +807,9 @@ cleanup: #endif if ( arg.hrtfReaderEnabled ) { -#ifdef FIX_HRTF_LOAD destroy_td_hrtf( hHrtfBinary.hHrtfTD ); destroy_SetOfHRTF( hHrtfBinary.hSetOfHRTF ); destroy_hrtf_statistics( hHrtfBinary.hHrtfStatistics ); -#else - IVAS_DEC_GetHrtfHandle( hIvasDec, &hHrtfTD ); - destroy_td_hrtf( hHrtfTD ); - - IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF ); - destroy_SetOfHRTF( hSetOfHRTF ); - - IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ); - destroy_hrtf_statistics( hHrtfStatistics ); -#endif } IVAS_DEC_Close( &hIvasDec ); @@ -2137,9 +2000,7 @@ static ivas_error initOnFirstGoodFrame( static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, -#ifdef FIX_HRTF_LOAD IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtfBinary, -#endif RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, @@ -2495,23 +2356,13 @@ static ivas_error decodeG192( } } #endif -#ifdef FIX_HRTF_LOAD /* Feed into decoder and decode transport channels */ if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, bit_stream, num_bits, bfi ) ) != IVAS_ERR_OK ) -#else - /* Feed into decoder */ - if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, bit_stream, num_bits, bfi - , - isSplitRend, - splitRendBits - ) ) != IVAS_ERR_OK ) -#endif { fprintf( stderr, "\nError: could not feed frame to decoder: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } -#ifdef FIX_HRTF_LOAD /* Read main parameters from the bitstream to set-up the decoder */ hHrtfBinary->binaural_renderer_old = hHrtfBinary->binaural_renderer; hHrtfBinary->binaural_renderer_sec_old = hHrtfBinary->binaural_renderer_sec; @@ -2539,7 +2390,6 @@ static ivas_error decodeG192( return error; } -#endif /* Object metadata editing */ if ( arg.objEditEnabled ) { @@ -3071,9 +2921,7 @@ static ivas_error writeJbmTraceFileFrameWrapper( const void *data, void *writer static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, -#ifdef FIX_HRTF_LOAD IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtf, -#endif RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, @@ -3124,9 +2972,7 @@ static ivas_error decodeVoIP( int16_t vec_pos_update, vec_pos_len; int16_t nOutSamples = 0; -#ifdef FIX_HRTF_LOAD bool bitstreamReadDone = false; -#endif bool parameterAvailableForEditing = false; uint16_t nSamplesRendered = 0; @@ -3413,23 +3259,14 @@ static ivas_error decodeVoIP( while ( nSamplesRendered < nOutSamples ) { #ifdef SUPPORT_JBM_TRACEFILE -#ifdef FIX_HRTF_LOAD if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &bitstreamReadDone, &nSamplesRendered, ¶meterAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) #else - if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &nSamplesRendered, ¶meterAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) -#endif -#else -#ifdef FIX_HRTF_LOAD if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, &bitstreamReadDone, &nSamplesRendered, ¶meterAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, IVAS_DEC_PCM_INT16, (void *) pcmBuf, systemTime_ms, &nSamplesRendered, ¶meterAvailableForEditing ) ) != IVAS_ERR_OK ) -#endif #endif { fprintf( stderr, "\nError in IVAS_DEC_VoIP_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } -#ifdef FIX_HRTF_LOAD if ( bitstreamReadDone == true ) { @@ -3455,7 +3292,6 @@ static ivas_error decodeVoIP( } } -#endif /* Object metadata editing */ if ( arg.objEditEnabled && parameterAvailableForEditing == true ) { @@ -3838,7 +3674,6 @@ static IVAS_DEC_FORCED_REND_MODE parseForcedRendModeDec( } #endif -#ifdef FIX_HRTF_LOAD /*---------------------------------------------------------------------* * IVAS_DEC_LoadHrtfFromFile() @@ -4014,6 +3849,5 @@ static ivas_error IVAS_DEC_LoadHrtfFromFile( return IVAS_ERR_OK; } -#endif #undef WMC_TOOL_SKIP diff --git a/apps/renderer.c b/apps/renderer.c index 9f3be788ea..3aa0a47428 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -615,11 +615,7 @@ static int16_t get_cldfb_in_flag( int16_t cldfb_in_flag; cldfb_in_flag = 0; -#ifdef FIX_HRTF_LOAD if ( renderConfig->split_rend_config.rendererSelection == IVAS_BIN_RENDERER_TYPE_FASTCONV ) -#else - if ( renderConfig->split_rend_config.rendererSelection == ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV ) -#endif { #ifdef DEBUGGING cldfb_in_flag = 1; @@ -949,11 +945,7 @@ int main( goto cleanup; } -#ifdef FIX_HRTF_LOAD if ( ( error = load_fastconv_HRTF_from_binary( *hHrtfFastConv, 0, IVAS_AUDIO_CONFIG_INVALID, hrtfFileReader ) ) != IVAS_ERR_OK ) -#else - if ( ( error = load_fastconv_HRTF_from_binary( *hHrtfFastConv, hrtfFileReader ) ) != IVAS_ERR_OK ) -#endif { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { diff --git a/lib_com/common_api_types.h b/lib_com/common_api_types.h index 4a9ca4665e..00df25e87d 100644 --- a/lib_com/common_api_types.h +++ b/lib_com/common_api_types.h @@ -210,7 +210,6 @@ typedef struct _IVAS_JBM_TRACE_DATA } IVAS_JBM_TRACE_DATA; -#ifdef FIX_HRTF_LOAD typedef enum _ivas_binaural_renderer_type { IVAS_BIN_RENDERER_TYPE_NONE, @@ -221,7 +220,6 @@ typedef enum _ivas_binaural_renderer_type IVAS_BIN_RENDERER_TYPE_DEFAULT, } IVAS_BIN_RENDERER_TYPE; -#endif /*----------------------------------------------------------------------------------* * Split rendering API constants, structures, and enums @@ -260,17 +258,6 @@ typedef enum } ISAR_SPLIT_REND_CODEC; -#ifndef FIX_HRTF_LOAD -typedef enum -{ - ISAR_SPLIT_REND_RENDERER_SELECTION_CREND, - ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV, - ISAR_SPLIT_REND_RENDERER_SELECTION_PARAMBIN, - ISAR_SPLIT_REND_RENDERER_SELECTION_TDREND, - ISAR_SPLIT_REND_RENDERER_SELECTION_DEFAULT, - -} ISAR_SPLIT_REND_RENDERER_SELECTION; -#endif typedef struct _ISAR_SPLIT_REND_BITS_DATA { @@ -302,11 +289,7 @@ typedef struct _ISAR_SPLIT_REND_CONFIG int16_t codec_frame_size_ms; /* Codec frame size in milliseconds, only relevant with LC3plus */ ISAR_SPLIT_REND_POSE_CORRECTION_MODE poseCorrectionMode; ISAR_SPLIT_REND_CODEC codec; -#ifdef FIX_HRTF_LOAD IVAS_BIN_RENDERER_TYPE rendererSelection; -#else - ISAR_SPLIT_REND_RENDERER_SELECTION rendererSelection; -#endif int16_t lc3plus_highres; } ISAR_SPLIT_REND_CONFIG_DATA, *ISAR_SPLIT_REND_CONFIG_HANDLE; diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index f1f3ddf218..418d49267f 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -318,20 +318,12 @@ ivas_error ivas_dec( int16_t *data /* o : output synthesis signal */ ); -#ifdef FIX_HRTF_LOAD ivas_error ivas_dec_get_format( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); -#endif ivas_error ivas_dec_setup( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed from the previous frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ); ivas_error create_sce_dec( @@ -670,12 +662,6 @@ ivas_error ivas_mc_enc_config( ivas_error ivas_mc_dec_config( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int16_t idx /* i : LS config. index */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : samples flushed from last frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ - #endif ); /*! r: MC format mode (MCT, McMASA, ParamMC) */ @@ -1083,12 +1069,6 @@ ivas_error ivas_ism_enc_config( ivas_error ivas_ism_dec_config( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const ISM_MODE last_ism_mode /* i/o: last ISM mode */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed on renderer change*/ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ); ivas_error ivas_param_ism_dec_open( @@ -3478,12 +3458,6 @@ void ivas_sba_set_cna_cng_flag( ivas_error ivas_sba_dec_reconfigure( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesFlushed, /* o : number of samples flushed */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ); ivas_error ivas_sba_digest_tc( @@ -4937,12 +4911,6 @@ void ivas_masa_enc_reconfigure( ivas_error ivas_masa_dec_reconfigure( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed from the previous frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ - #endif ); ivas_error ivas_masa_encode( @@ -5657,12 +5625,6 @@ ivas_error ivas_omasa_enc_config( ivas_error ivas_omasa_dec_config( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed from the previous frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ); void ivas_omasa_set_config( diff --git a/lib_com/options.h b/lib_com/options.h index d66f1003a1..82b5f5814b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -165,7 +165,6 @@ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ -#define FIX_HRTF_LOAD /* VA: issue 1187: fix memory issue when HRTFs are loaded from a binary file */ #define FIX_1209_SID_SIGNALING /* VA: issue 1209: remove dead code in IVAS SID signaling */ diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index e8a0e996c6..05033d87a4 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -1142,12 +1142,10 @@ ivas_error ivas_binRenderer_open( hBinRenderer->render_lfe = 1; } -#ifdef FIX_HRTF_LOAD if ( st_ivas->hHrtfFastConv == NULL && st_ivas->hDecoderConfig->Opt_HRTF_binary ) { return IVAS_ERROR( IVAS_ERR_INTERNAL, "HRTF binary file present but not used in FastConv renderer" ); } -#endif /* Load HRTF tables */ if ( ( error = ivas_binaural_hrtf_open( &st_ivas->hHrtfFastConv, st_ivas->hIntSetup.output_config, st_ivas->renderer_type ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 36c1abf31c..423dfebec9 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -89,7 +89,6 @@ static AUDIO_CONFIG ivas_set_audio_config_from_sba_order( return output_config; } -#ifdef FIX_HRTF_LOAD /*---------------------------------------------------------------------* * ivas_dec_get_format( ) @@ -460,7 +459,6 @@ ivas_error ivas_dec_get_format( return IVAS_ERR_OK; } -#endif /*-------------------------------------------------------------------* * ivas_dec_setup() @@ -470,12 +468,6 @@ ivas_error ivas_dec_get_format( ivas_error ivas_dec_setup( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed from the previous frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { int16_t k, idx, num_bits_read; @@ -536,11 +528,7 @@ ivas_error ivas_dec_setup( st_ivas->nchan_ism = nchan_ism; -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_ism_dec_config( st_ivas, st_ivas->ism_mode ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_ism_dec_config( st_ivas, st_ivas->ism_mode, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -558,11 +546,7 @@ ivas_error ivas_dec_setup( num_bits_read += SBA_ORDER_BITS; if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->last_active_ivas_total_brate && ivas_total_brate > IVAS_SID_5k2 ) { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_sba_dec_reconfigure( st_ivas, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -628,11 +612,7 @@ ivas_error ivas_dec_setup( } else { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_masa_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_masa_dec_reconfigure( st_ivas, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -640,11 +620,7 @@ ivas_error ivas_dec_setup( } else { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_omasa_dec_config( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_omasa_dec_config( st_ivas, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -665,11 +641,7 @@ ivas_error ivas_dec_setup( /* reconfigure in case a change of operation mode is detected */ if ( ( ivas_total_brate > IVAS_SID_5k2 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_omasa_dec_config( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_omasa_dec_config( st_ivas, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -700,11 +672,7 @@ ivas_error ivas_dec_setup( if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->last_active_ivas_total_brate ) { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_sba_dec_reconfigure( st_ivas, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -750,11 +718,7 @@ ivas_error ivas_dec_setup( num_bits_read += MC_LS_SETUP_BITS; /* select MC format mode; reconfigure the MC format decoder */ -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_mc_dec_config( st_ivas, idx ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_mc_dec_config( st_ivas, idx, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -839,11 +803,7 @@ ivas_error ivas_dec_setup( st_ivas->hDecoderConfig->ivas_total_brate = IVAS_24k4; } -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_sba_dec_reconfigure( st_ivas, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -897,11 +857,7 @@ ivas_error ivas_dec_setup( last_ism_mode = st_ivas->ism_mode; } -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_ism_dec_config( st_ivas, last_ism_mode ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_ism_dec_config( st_ivas, last_ism_mode, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -1030,14 +986,12 @@ static ivas_error ivas_read_format( { st_ivas->ivas_format = SBA_ISM_FORMAT; -#ifdef FIX_HRTF_LOAD /* read the real Ambisonic order when the above bits are used to signal OSBA format */ if ( ivas_total_brate < IVAS_24k4 ) { st_ivas->sba_order = st_ivas->bit_stream[*num_bits_read + 2 + SBA_PLANAR_BITS + SBA_ORDER_BITS]; st_ivas->sba_order += 2 * st_ivas->bit_stream[*num_bits_read + 1 + SBA_PLANAR_BITS + SBA_ORDER_BITS]; } -#endif } } ( *num_bits_read )++; @@ -1284,38 +1238,6 @@ ivas_error ivas_init_decoder_front( } } -#ifndef FIX_HRTF_LOAD - /*-------------------------------------------------------------------* - * Allocate HRTF binary handle - *--------------------------------------------------------------------*/ - - if ( st_ivas->hDecoderConfig->Opt_HRTF_binary ) - { - if ( ( error = ivas_HRTF_binary_open( &( st_ivas->hHrtfTD ) ) ) != IVAS_ERR_OK ) - { - return error; - } - if ( ( error = ivas_HRTF_CRend_binary_open( &( st_ivas->hSetOfHRTF ) ) ) != IVAS_ERR_OK ) - { - return error; - } - - if ( ( error = ivas_HRTF_fastconv_binary_open( &st_ivas->hHrtfFastConv ) ) != IVAS_ERR_OK ) - { - return error; - } - - if ( ( error = ivas_HRTF_parambin_binary_open( &st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK ) - { - return error; - } - - if ( ( error = ivas_HRTF_statistics_binary_open( &st_ivas->hHrtfStatistics ) ) != IVAS_ERR_OK ) - { - return error; - } - } -#endif /*-------------------------------------------------------------------* * Allocate and initialize Binaural Renderer configuration handle *--------------------------------------------------------------------*/ diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index 69a6c832d8..e66e1c9d43 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -50,12 +50,6 @@ static ivas_error ivas_ism_bitrate_switching_dec( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int16_t nchan_transport_old, /* i : last number of transport channels */ const ISM_MODE last_ism_mode /* i : last ISM mode */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples rendered */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { ivas_error error; @@ -67,15 +61,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( int16_t tc_nchan_allocate_new; int16_t tc_granularity_new; int16_t nchan_out_buff, nchan_out_buff_old; -#ifndef FIX_HRTF_LOAD - AUDIO_CONFIG intern_config_old; - IVAS_OUTPUT_SETUP hIntSetupOld; - RENDERER_TYPE renderer_type_old; -#endif -#ifndef FIX_HRTF_LOAD - error = IVAS_ERR_OK; -#endif nCPE_old = st_ivas->nCPE; nSCE_old = st_ivas->nSCE; @@ -111,14 +97,6 @@ static ivas_error ivas_ism_bitrate_switching_dec( return error; } -#ifndef FIX_HRTF_LOAD - /* save old IntSetup, might be needed for JBM flushing...*/ - intern_config_old = st_ivas->intern_config; - hIntSetupOld = st_ivas->hIntSetup; - tc_granularity_new = 1; - renderer_type_old = st_ivas->renderer_type; - -#endif /*-----------------------------------------------------------------* * Initialize the needed renderer struct and destroy the unnecessary renderer struct *-----------------------------------------------------------------*/ @@ -153,23 +131,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( if ( tc_granularity_new < st_ivas->hTcBuffer->n_samples_granularity ) { -#ifdef FIX_HRTF_LOAD /* flush already done in IVAS_DEC_ReadFormat() */ -#else -#ifdef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH - /* write back info for correct rendering of the flushable samples */ - int16_t nchan_transport_ref = st_ivas->nchan_transport; - st_ivas->nchan_transport = nchan_transport_old; - -#endif - if ( ( error = ivas_jbm_dec_flush_renderer( st_ivas, tc_granularity_new, renderer_type_old, intern_config_old, &hIntSetupOld, MC_MODE_NONE, last_ism_mode, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) - { - return error; - } -#ifdef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH - st_ivas->nchan_transport = nchan_transport_ref; -#endif -#endif } /* JBM: when granularity goes up set samples to discard at the beginning of the frame */ else if ( tc_granularity_new > st_ivas->hTcBuffer->n_samples_granularity ) @@ -390,11 +352,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( } #endif -#ifdef FIX_HRTF_LOAD return IVAS_ERR_OK; -#else - return error; -#endif } @@ -408,21 +366,12 @@ static ivas_error ivas_ism_bitrate_switching_dec( ivas_error ivas_ism_dec_config( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const ISM_MODE last_ism_mode /* i/o: last ISM mode */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed when the renderer granularity changes */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { int32_t ivas_total_brate; ivas_error error; int16_t nchan_transport_old; -#ifndef FIX_HRTF_LOAD - error = IVAS_ERR_OK; -#endif ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; /* Assumes that num of input objects are constant */ @@ -453,11 +402,7 @@ ivas_error ivas_ism_dec_config( /* ISM bit-rate switching */ if ( ( st_ivas->ism_mode != last_ism_mode ) || ( ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) ) { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_ism_bitrate_switching_dec( st_ivas, nchan_transport_old, last_ism_mode ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_ism_bitrate_switching_dec( st_ivas, nchan_transport_old, last_ism_mode, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -480,11 +425,7 @@ ivas_error ivas_ism_dec_config( if ( st_ivas->ism_mode != last_ism_mode ) { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_ism_bitrate_switching_dec( st_ivas, nchan_transport_old, last_ism_mode ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_ism_bitrate_switching_dec( st_ivas, nchan_transport_old, last_ism_mode, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -510,9 +451,5 @@ ivas_error ivas_ism_dec_config( break; } -#ifdef FIX_HRTF_LOAD return IVAS_ERR_OK; -#else - return error; -#endif } diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 62a664caf9..622a6dce64 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -151,7 +151,6 @@ ivas_error ivas_masa_decode( { if ( !( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA ) ) { -#if ( defined FIX_HRTF_LOAD || defined NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH ) if ( ivas_format == MASA_FORMAT ) { /* re-read the number of objects, needed in case of bad frame */ @@ -165,14 +164,6 @@ ivas_error ivas_masa_decode( } if ( ivas_format == MASA_FORMAT && st_ivas->nchan_ism > 0 ) -#else - if ( ivas_format == MASA_FORMAT ) - { - /* re-read the number of objects, needed in case of bad frame */ - st_ivas->nchan_ism = 5 - ( st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 3] + 2 * st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 2] ); - } - if ( ivas_format == MASA_FORMAT && st_ivas->nchan_ism != 5 ) -#endif { /* there was OMASA in the input */ hMasa->config.input_ivas_format = MASA_ISM_FORMAT; @@ -1318,12 +1309,6 @@ static int16_t decode_lfe_to_total_energy_ratio( ivas_error ivas_masa_dec_reconfigure( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed from the previous frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { int16_t n, tmp, num_bits; @@ -1336,9 +1321,6 @@ ivas_error ivas_masa_dec_reconfigure( int16_t pos_idx; int32_t ism_total_brate; -#ifndef FIX_HRTF_LOAD - error = IVAS_ERR_OK; -#endif ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; last_ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate; @@ -1535,14 +1517,7 @@ ivas_error ivas_masa_dec_reconfigure( { if ( n_samples_granularity < st_ivas->hTcBuffer->n_samples_granularity ) { -#ifdef FIX_HRTF_LOAD /* flush already done in IVAS_DEC_ReadFormat() */ -#else - if ( ( error = ivas_jbm_dec_flush_renderer( st_ivas, n_samples_granularity, st_ivas->renderer_type, st_ivas->intern_config, &st_ivas->hIntSetup, MC_MODE_NONE, ISM_MASA_MODE_DISC, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif } } } @@ -1583,11 +1558,7 @@ ivas_error ivas_masa_dec_reconfigure( } } -#ifdef FIX_HRTF_LOAD return IVAS_ERR_OK; -#else - return error; -#endif } diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index fe2ca5dbaa..bb41bcd203 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -54,11 +54,7 @@ * Local function prototypes *-----------------------------------------------------------------------*/ -#ifdef FIX_HRTF_LOAD static ivas_error ivas_mc_dec_reconfig( Decoder_Struct *st_ivas ); -#else -static ivas_error ivas_mc_dec_reconfig( Decoder_Struct *st_ivas, uint16_t *nSamplesRendered, const PCM_RESOLUTION pcm_resolution, void *data ); -#endif /*--------------------------------------------------------------------------* @@ -667,12 +663,6 @@ void ivas_mct_dec_close( ivas_error ivas_mc_dec_config( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int16_t idx /* i : LS config. index */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : samples flushed from last frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { AUDIO_CONFIG signaled_config; @@ -707,11 +697,7 @@ ivas_error ivas_mc_dec_config( { if ( st_ivas->hDecoderConfig->last_ivas_total_brate != st_ivas->hDecoderConfig->ivas_total_brate || last_mc_mode != st_ivas->mc_mode ) { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_mc_dec_reconfig( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_mc_dec_reconfig( st_ivas, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -733,12 +719,6 @@ ivas_error ivas_mc_dec_config( static ivas_error ivas_mc_dec_reconfig( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed from the last frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { int16_t nchan_transport_old, nSCE_old, nCPE_old, sba_dirac_stereo_flag_old, nchan_hp20_old; @@ -752,15 +732,8 @@ static ivas_error ivas_mc_dec_reconfig( int16_t tc_nchan_tc_new; int16_t tc_nchan_allocate_new; int16_t tc_granularity_new; -#ifndef FIX_HRTF_LOAD - AUDIO_CONFIG intern_config_old; - IVAS_OUTPUT_SETUP hIntSetupOld; -#endif int16_t nchan_out_buff_old, nchan_out_buff; -#ifndef FIX_HRTF_LOAD - error = IVAS_ERR_OK; -#endif ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; nchan_transport_old = st_ivas->nchan_transport; nchan_out_buff_old = ivas_get_nchan_buffers_dec( st_ivas, -1, -1 ); @@ -788,13 +761,6 @@ static ivas_error ivas_mc_dec_reconfig( } st_ivas->sba_dirac_stereo_flag = ivas_get_sba_dirac_stereo_flag( st_ivas ); -#ifndef FIX_HRTF_LOAD - /* save old IntSetup, might be needed for JBM flushing...*/ - intern_config_old = st_ivas->intern_config; - hIntSetupOld = st_ivas->hIntSetup; - tc_granularity_new = 1; - -#endif /* renderer might have changed, reselect */ renderer_type_old = st_ivas->renderer_type; ivas_renderer_select( st_ivas ); @@ -828,14 +794,7 @@ static ivas_error ivas_mc_dec_reconfig( tc_granularity_new = ivas_jbm_dec_get_render_granularity( st_ivas->renderer_type, st_ivas->ivas_format, st_ivas->mc_mode, st_ivas->hDecoderConfig->output_Fs ); if ( tc_granularity_new < st_ivas->hTcBuffer->n_samples_granularity ) { -#ifdef FIX_HRTF_LOAD /* flush already done in IVAS_DEC_ReadFormat() */ -#else - if ( ( error = ivas_jbm_dec_flush_renderer( st_ivas, tc_granularity_new, renderer_type_old, intern_config_old, &hIntSetupOld, last_mc_mode, ISM_MODE_NONE, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif } /* JBM: when granularity goes up set samples to discard at the beginning of the frame */ else if ( tc_granularity_new > st_ivas->hTcBuffer->n_samples_granularity ) @@ -1396,9 +1355,5 @@ static ivas_error ivas_mc_dec_reconfig( return error; } -#ifdef FIX_HRTF_LOAD return IVAS_ERR_OK; -#else - return error; -#endif } diff --git a/lib_dec/ivas_objectRenderer_internal.c b/lib_dec/ivas_objectRenderer_internal.c index 5785db4851..269f7a0fbd 100644 --- a/lib_dec/ivas_objectRenderer_internal.c +++ b/lib_dec/ivas_objectRenderer_internal.c @@ -61,14 +61,12 @@ ivas_error ivas_td_binaural_open( num_src = st_ivas->nchan_ism; } -#ifdef FIX_HRTF_LOAD if ( st_ivas->hHrtfTD == NULL && st_ivas->hDecoderConfig->Opt_HRTF_binary && ( st_ivas->ivas_format != SBA_ISM_FORMAT ) // ToDo: temporary hack to avoid ASAN errors -> see issue #1202 ) { return IVAS_ERROR( IVAS_ERR_INTERNAL, "HRTF binary file present but not used in TD renderer" ); } -#endif return ivas_td_binaural_open_unwrap( &st_ivas->hHrtfTD, st_ivas->hDecoderConfig->output_Fs, num_src, st_ivas->ivas_format, st_ivas->transport_config, st_ivas->hRenderConfig->directivity, st_ivas->hRenderConfig->distAtt, st_ivas->hTransSetup, &st_ivas->hBinRendererTd, &st_ivas->binaural_latency_ns ); diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index d8a71cf589..83f6ae0b93 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -194,12 +194,6 @@ void ivas_omasa_data_close( ivas_error ivas_omasa_dec_config( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesRendered, /* o : number of samples flushed from the previous frame (JBM) */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { int16_t k, sce_id, nSCE_old, nchan_hp20_old, numCldfbAnalyses_old, numCldfbSyntheses_old; @@ -243,11 +237,7 @@ ivas_error ivas_omasa_dec_config( { st_ivas->hCPE[0]->nchan_out = 1; } -#ifdef FIX_HRTF_LOAD else if ( ( error = ivas_masa_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) -#else - else if ( ( error = ivas_masa_dec_reconfigure( st_ivas, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 4f6e8a0587..0d6be841ac 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -102,12 +102,6 @@ void ivas_sba_set_cna_cng_flag( ivas_error ivas_sba_dec_reconfigure( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifndef FIX_HRTF_LOAD - , - uint16_t *nSamplesFlushed, /* o : number of samples flushed */ - const PCM_RESOLUTION pcm_resolution, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { int16_t nchan_transport_old, nSCE_old, nCPE_old, nchan_hp20_old; @@ -164,9 +158,6 @@ ivas_error ivas_sba_dec_reconfigure( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); -#ifndef FIX_HRTF_LOAD - *nSamplesFlushed = 0; -#endif granularity_new = st_ivas->hTcBuffer->n_samples_granularity; /* we may need to flush only for binaural and OSBA and TSM */ @@ -214,22 +205,7 @@ ivas_error ivas_sba_dec_reconfigure( /* flush renderer on granularity change form 5ms to 1.25ms, again only possible for binaural rendering */ if ( granularity_new < st_ivas->hTcBuffer->n_samples_granularity ) { -#ifdef FIX_HRTF_LOAD /* flush already done in IVAS_DEC_ReadFormat() */ -#else - /* write back info for correct rendering of the flushable samples */ - st_ivas->sba_analysis_order = sba_analysis_order_old_flush; - st_ivas->hDecoderConfig->ivas_total_brate = last_ivas_total_brate; - - if ( ( error = ivas_jbm_dec_flush_renderer( st_ivas, granularity_new, st_ivas->renderer_type, st_ivas->intern_config, &st_ivas->hIntSetup, st_ivas->mc_mode, ism_mode_old, nSamplesFlushed, pcm_resolution, data ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* restore correct values for the current frame*/ - st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); - st_ivas->hDecoderConfig->ivas_total_brate = ivas_total_brate; -#endif } else if ( granularity_new > st_ivas->hTcBuffer->n_samples_granularity ) { @@ -667,11 +643,7 @@ ivas_error ivas_sba_dec_reconfigure( return error; } -#ifdef FIX_HRTF_LOAD return IVAS_ERR_OK; -#else - return error; -#endif } diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index d46f569feb..3b21c19a08 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -116,11 +116,7 @@ static ivas_error evs_dec_main( Decoder_Struct *st_ivas, const int16_t nOutSampl static ivas_error input_format_API_to_internal( IVAS_DEC_INPUT_FORMAT input_format, int16_t *bitstream_format_internal, int16_t *sdp_hf_only, const bool is_voip_enabled ); static void init_decoder_config( DECODER_CONFIG_HANDLE hDecoderConfig ); static ivas_error IVAS_DEC_VoIP_reconfigure( IVAS_DEC_HANDLE hIvasDec, const uint16_t nTransportChannels, const uint16_t l_ts ); -#ifdef FIX_HRTF_LOAD static ivas_error IVAS_DEC_Setup( IVAS_DEC_HANDLE hIvasDec, uint16_t *nTcBufferGranularity, uint8_t *nTransportChannels ); -#else -static ivas_error IVAS_DEC_Setup( IVAS_DEC_HANDLE hIvasDec, uint16_t *nTcBufferGranularity, uint8_t *nTransportChannels, uint8_t *nOutChannels, uint16_t *nSamplesRendered, const IVAS_DEC_PCM_TYPE pcmType, void *data ); -#endif static ivas_error IVAS_DEC_GetTcSamples( IVAS_DEC_HANDLE hIvasDec, float *pcmBuf, int16_t *nOutSamples ); static ivas_error IVAS_DEC_RendererFeedTcSamples( IVAS_DEC_HANDLE hIvasDec, const int16_t nSamplesForRendering, int16_t *nSamplesResidual, float *pcmBuf ); static ivas_error IVAS_DEC_GetRenderedSamples( IVAS_DEC_HANDLE hIvasDec, const uint16_t nSamplesForRendering, uint16_t *nSamplesRendered, uint16_t *nSamplesAvailableNext, const IVAS_DEC_PCM_TYPE pcmType, void *pcmBuf ); @@ -826,13 +822,7 @@ ivas_error IVAS_DEC_FeedFrame_Serial( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ uint16_t *serial, /* i : buffer containing serial input bitstream. Each bit should be stored as a single uint16_t value */ const uint16_t num_bits, /* i : number of bits in input bitstream */ -#ifdef FIX_HRTF_LOAD int16_t bfi /* i : bad frame indicator flag */ -#else - int16_t bfi, /* i : bad frame indicator flag */ - const int16_t isSplitRend, /* i : split rendering enabled flag */ - ISAR_SPLIT_REND_BITS_DATA *splitRendBits /* o : output split rendering bits */ -#endif ) { ivas_error error; @@ -909,18 +899,9 @@ ivas_error IVAS_DEC_FeedFrame_Serial( hIvasDec->nSamplesRendered = 0; hIvasDec->nSamplesAvailableNext = hIvasDec->nSamplesFrame; -#ifndef FIX_HRTF_LOAD - /* Decode TCs, do TSM and feed to renderer */; - if ( ( error = IVAS_DEC_GetSamplesDecoder( hIvasDec, isSplitRend, splitRendBits ) ) != IVAS_ERR_OK ) - { - return error; - } - -#endif return IVAS_ERR_OK; } -#ifdef FIX_HRTF_LOAD /*---------------------------------------------------------------------* * IVAS_DEC_ReadFormat( ) @@ -1057,7 +1038,6 @@ ivas_error IVAS_DEC_ReadFormat( return IVAS_ERR_OK; } -#endif /*---------------------------------------------------------------------* * IVAS_DEC_GetSamplesDecoder( ) @@ -1080,18 +1060,10 @@ ivas_error IVAS_DEC_GetSamplesDecoder( /* If TSM is generally enabled, we have to wait for the first good frame. Otherwise, we directly decode the first frame in any case. */ -#ifdef FIX_HRTF_LOAD if ( !hIvasDec->isInitialized || hIvasDec->hasBeenFedFrame ) -#else - if ( ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm && hIvasDec->hasBeenFedFirstGoodFrame ) || !hIvasDec->st_ivas->hDecoderConfig->Opt_tsm ) -#endif { uint16_t l_ts, nTimeScalerOutSamples; -#ifdef FIX_HRTF_LOAD uint8_t nTransportChannels; -#else - uint8_t nTransportChannels, nOutChannels; -#endif int16_t nResidualSamples, nSamplesTcsScaled, nOutSamplesElse; if ( isSplitRend ) @@ -1102,11 +1074,7 @@ ivas_error IVAS_DEC_GetSamplesDecoder( } } -#ifdef FIX_HRTF_LOAD if ( ( error = IVAS_DEC_Setup( hIvasDec, &l_ts, &nTransportChannels ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_Setup( hIvasDec, &l_ts, &nTransportChannels, &nOutChannels, &hIvasDec->nSamplesFlushed, hIvasDec->pcmType, hIvasDec->flushbuffer ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -1947,35 +1915,19 @@ static ivas_error IVAS_DEC_Setup( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ uint16_t *nTcBufferGranularity, /* o : granularity of the TC Buffer */ uint8_t *nTransportChannels /* o : number of decoded transport PCM channels */ -#ifndef FIX_HRTF_LOAD - , - uint8_t *nOutChannels, /* o : number of decoded out channels (PCM or CLDFB) */ - uint16_t *nSamplesRendered, /* o : number of samples flushed from the last frame */ - const IVAS_DEC_PCM_TYPE pcmType, /* i : type for the decoded PCM resolution */ - void *data /* o : output synthesis signal */ -#endif ) { ivas_error error; -#ifndef FIX_HRTF_LOAD - *nSamplesRendered = 0; -#endif if ( hIvasDec->mode == IVAS_DEC_MODE_EVS ) { if ( hIvasDec->st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX ) { *nTransportChannels = MAX_OUTPUT_CHANNELS_IN_DIEGETIC_PAN; -#ifndef FIX_HRTF_LOAD - *nOutChannels = MAX_OUTPUT_CHANNELS_IN_DIEGETIC_PAN; -#endif } else { *nTransportChannels = 1; -#ifndef FIX_HRTF_LOAD - *nOutChannels = 1; -#endif } } else @@ -1994,11 +1946,7 @@ static ivas_error IVAS_DEC_Setup( if ( st_ivas->bfi == 0 ) { -#ifdef FIX_HRTF_LOAD if ( ( error = ivas_dec_setup( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_dec_setup( st_ivas, nSamplesRendered, pcm_type_API_to_internal( pcmType ), data ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -2006,9 +1954,6 @@ static ivas_error IVAS_DEC_Setup( *nTransportChannels = (uint8_t) st_ivas->hTcBuffer->nchan_transport_jbm; *nTcBufferGranularity = (uint16_t) st_ivas->hTcBuffer->n_samples_granularity; -#ifndef FIX_HRTF_LOAD - *nOutChannels = (uint8_t) st_ivas->hDecoderConfig->nchan_out; -#endif /*-----------------------------------------------------------------* * ISAR: @@ -2802,7 +2747,6 @@ ivas_error IVAS_DEC_GetHrtfStatisticsHandle( return IVAS_ERR_OK; } -#ifdef FIX_HRTF_LOAD /*---------------------------------------------------------------------* * IVAS_DEC_HRTF_binary_open( ) @@ -2931,7 +2875,6 @@ ivas_error IVAS_DEC_HRTF_binary_close( return IVAS_ERR_OK; } -#endif /*---------------------------------------------------------------------* * copyRendererConfigStruct( ) @@ -3491,9 +3434,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( JbmTraceFileWriterFn jbmWriterFn, void *jbmWriter, #endif -#ifdef FIX_HRTF_LOAD bool *bitstreamReadDone, /* o : flag indicating that bitstream was read */ -#endif uint16_t *nSamplesRendered, /* o : number of samples rendered */ bool *parametersAvailableForEditing, /* o : indicates whether objects editing is available */ const uint32_t systemTimestamp_ms /* i : current system timestamp */ @@ -3599,27 +3540,17 @@ ivas_error IVAS_DEC_VoIP_GetSamples( bsCompactToSerial( dataUnit->data, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize ); -#ifdef FIX_HRTF_LOAD if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize, 0 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize, 0, 0, 0 ) ) != IVAS_ERR_OK ) -#endif { return error; } -#ifdef FIX_HRTF_LOAD *bitstreamReadDone = true; -#endif } else if ( hIvasDec->hasDecodedFirstGoodFrame ) { /* Decoder has been initialized with first good frame - do PLC */ -#ifdef FIX_HRTF_LOAD if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, 0, 1 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, 0, 1, 0, 0 ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -3653,14 +3584,12 @@ ivas_error IVAS_DEC_VoIP_GetSamples( JB4_FreeDataUnit( hVoIP->hJBM, dataUnit ); } -#ifdef FIX_HRTF_LOAD if ( hIvasDec->hasBeenFedFirstGoodFrame && *bitstreamReadDone == true ) { /* new bitstream was feeded, return for reconfiguration */ return IVAS_ERR_OK; } -#endif if ( !hIvasDec->hasBeenFedFirstGoodFrame ) { hIvasDec->nSamplesAvailableNext = hIvasDec->nSamplesFrame; @@ -3692,7 +3621,6 @@ ivas_error IVAS_DEC_VoIP_GetSamples( int16_t nSamplesToRender, nSamplesRendered_loop; bool tmp; -#ifdef FIX_HRTF_LOAD /* decode TCs, do TSM and prepare the renderer */ if ( !hIvasDec->isInitialized || hIvasDec->hasBeenFedFrame ) { @@ -3710,7 +3638,6 @@ ivas_error IVAS_DEC_VoIP_GetSamples( *bitstreamReadDone = false; } } -#endif nSamplesToRender = nSamplesPerChannel - *nSamplesRendered; diff --git a/lib_dec/lib_dec.h b/lib_dec/lib_dec.h index be272e48f8..1345602dee 100644 --- a/lib_dec/lib_dec.h +++ b/lib_dec/lib_dec.h @@ -152,16 +152,9 @@ ivas_error IVAS_DEC_FeedFrame_Serial( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ uint16_t *serial, /* i : buffer containing serial input bitstream. Each bit should be stored as a single uint16_t value */ const uint16_t num_bits, /* i : number of bits in input bitstream */ -#ifdef FIX_HRTF_LOAD int16_t bfi /* i : bad frame indicator flag */ -#else - int16_t bfi, /* i : bad frame indicator flag */ - const int16_t isSplitRend, /* i : split rendering enabled flag */ - ISAR_SPLIT_REND_BITS_DATA *splitRendBits /* o : output split rendering bits */ -#endif ); -#ifdef FIX_HRTF_LOAD ivas_error IVAS_DEC_ReadFormat( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_BIN_RENDERER_TYPE *binaural_renderer, /* o : binaural renderer type */ @@ -170,7 +163,6 @@ ivas_error IVAS_DEC_ReadFormat( IVAS_AUDIO_CONFIG *intern_audio_config /* o : internal audio configuration */ ); -#endif /*! r: decoder error code */ ivas_error IVAS_DEC_GetSamplesDecoder( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ @@ -322,9 +314,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( JbmTraceFileWriterFn jbmWriterFn, void *jbmWriter, #endif -#ifdef FIX_HRTF_LOAD bool *bitstreamReadDone, /* o : flag indicating that bitstream was read */ -#endif uint16_t *nSamplesRendered, /* o : number of samples rendered */ bool *parametersAvailableForEditing, /* o : indicates whether objects editing is available */ const uint32_t systemTimestamp_ms /* i : current system timestamp */ @@ -470,7 +460,6 @@ ivas_error IVAS_DEC_GetHrtfStatisticsHandle( IVAS_DEC_HRTF_STATISTICS_HANDLE **hHrtfStatistics /* o : HRTF statistics handle */ ); -#ifdef FIX_HRTF_LOAD ivas_error IVAS_DEC_HRTF_binary_open( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ const IVAS_BIN_RENDERER_TYPE binaural_renderer /* i : binaural renderer type */ @@ -481,7 +470,6 @@ ivas_error IVAS_DEC_HRTF_binary_close( const IVAS_BIN_RENDERER_TYPE binaural_renderer_old /* i : previous binaural renderer type */ ); -#endif /*! r: error code*/ ivas_error IVAS_DEC_GetRenderConfig( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ diff --git a/lib_isar/lib_isar_post_rend.c b/lib_isar/lib_isar_post_rend.c index 38c25ff21a..94d59501d0 100644 --- a/lib_isar/lib_isar_post_rend.c +++ b/lib_isar/lib_isar_post_rend.c @@ -1116,11 +1116,7 @@ ivas_error ISAR_POST_REND_InitConfig( hIvasRend->splitRenderConfig.isar_frame_size_ms = 0; /* 0 means "use default for selected codec" */ hIvasRend->splitRenderConfig.codec = ISAR_SPLIT_REND_CODEC_DEFAULT; hIvasRend->splitRenderConfig.poseCorrectionMode = ISAR_SPLIT_REND_POSE_CORRECTION_MODE_CLDFB; -#ifdef FIX_HRTF_LOAD hIvasRend->splitRenderConfig.rendererSelection = IVAS_BIN_RENDERER_TYPE_DEFAULT; -#else - hIvasRend->splitRenderConfig.rendererSelection = ISAR_SPLIT_REND_RENDERER_SELECTION_DEFAULT; -#endif } return IVAS_ERR_OK; diff --git a/lib_rend/ivas_render_config.c b/lib_rend/ivas_render_config.c index cc03379e9f..8ca782994f 100644 --- a/lib_rend/ivas_render_config.c +++ b/lib_rend/ivas_render_config.c @@ -145,11 +145,7 @@ ivas_error ivas_render_config_init_from_rom( ( *hRenderConfig )->split_rend_config.codec_frame_size_ms = 0; /* 0 means "use default for selected codec" */ ( *hRenderConfig )->split_rend_config.codec = ISAR_SPLIT_REND_CODEC_DEFAULT; ( *hRenderConfig )->split_rend_config.poseCorrectionMode = ISAR_SPLIT_REND_POSE_CORRECTION_MODE_CLDFB; -#ifdef FIX_HRTF_LOAD ( *hRenderConfig )->split_rend_config.rendererSelection = IVAS_BIN_RENDERER_TYPE_DEFAULT; -#else - ( *hRenderConfig )->split_rend_config.rendererSelection = ISAR_SPLIT_REND_RENDERER_SELECTION_DEFAULT; -#endif ( *hRenderConfig )->split_rend_config.lc3plus_highres = 0; return IVAS_ERR_OK; diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 2ca20ede50..5d8cad08e0 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -2509,11 +2509,7 @@ static ivas_error updateSbaPanGains( case IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED: case IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM: { -#ifdef FIX_HRTF_LOAD if ( hRendCfg->split_rend_config.rendererSelection == IVAS_BIN_RENDERER_TYPE_FASTCONV ) -#else - if ( hRendCfg->split_rend_config.rendererSelection == ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV ) -#endif { assert( *rendCtx.pOutSampleRate == 48000 && "split binaural fast conv mode is currently supported with 48k sampling rate only" ); if ( ( error = ivas_rend_openCldfbRend( &inputSba->cldfbRendWrapper, inConfig, outConfig, &rendCtx.pSplitRendWrapper->multiBinPoseData, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK ) @@ -2533,11 +2529,7 @@ static ivas_error updateSbaPanGains( } case IVAS_AUDIO_CONFIG_BINAURAL: case IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB: -#ifdef FIX_HRTF_LOAD if ( hRendCfg->split_rend_config.rendererSelection == IVAS_BIN_RENDERER_TYPE_FASTCONV ) -#else - if ( hRendCfg->split_rend_config.rendererSelection == ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV ) -#endif { if ( ( error = ivas_rend_openCldfbRend( &inputSba->cldfbRendWrapper, inConfig, outConfig, &rendCtx.pSplitRendWrapper->multiBinPoseData, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK ) { @@ -3380,11 +3372,7 @@ static int16_t getCldfbRendFlag( { isCldfbRend = 0; } -#ifdef FIX_HRTF_LOAD else if ( ( numMasaInputs > 0 ) || ( numSbaInputs > 0 && hIvasRend->hRendererConfig->split_rend_config.rendererSelection == IVAS_BIN_RENDERER_TYPE_FASTCONV ) ) -#else - else if ( ( numMasaInputs > 0 ) || ( numSbaInputs > 0 && hIvasRend->hRendererConfig->split_rend_config.rendererSelection == ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV ) ) -#endif { isCldfbRend = 1; } @@ -3904,11 +3892,7 @@ ivas_error IVAS_REND_GetDelay( { if ( hIvasRend->splitRendWrapper != NULL && hIvasRend->splitRendWrapper->hBinHrSplitPreRend != NULL ) { -#ifdef FIX_HRTF_LOAD if ( hIvasRend->hRendererConfig->split_rend_config.rendererSelection == IVAS_BIN_RENDERER_TYPE_FASTCONV ) -#else - if ( hIvasRend->hRendererConfig->split_rend_config.rendererSelection == ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV ) -#endif { latency_ns = hIvasRend->inputsSba[i].cldfbRendWrapper.binaural_latency_ns; } @@ -6574,11 +6558,7 @@ static ivas_error renderSbaToSplitBinaural( push_wmops( "renderSbaToSplitBinaural" ); -#ifdef FIX_HRTF_LOAD if ( sbaInput->base.ctx.hhRendererConfig[0]->split_rend_config.rendererSelection == IVAS_BIN_RENDERER_TYPE_FASTCONV ) -#else - if ( sbaInput->base.ctx.hhRendererConfig[0]->split_rend_config.rendererSelection == ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV ) -#endif { renderSbaToMultiBinauralCldfb( sbaInput, Cldfb_RealBuffer_Binaural, Cldfb_ImagBuffer_Binaural, 1, getNumSubframesInBuffer( &outAudio, *sbaInput->base.ctx.pOutSampleRate ) ); @@ -6615,11 +6595,7 @@ static ivas_error renderSbaToBinaural( int16_t subframe_idx; push_wmops( "renderSbaToBinaural" ); -#ifdef FIX_HRTF_LOAD if ( sbaInput->base.ctx.hhRendererConfig[0]->split_rend_config.rendererSelection == IVAS_BIN_RENDERER_TYPE_FASTCONV ) -#else - if ( sbaInput->base.ctx.hhRendererConfig[0]->split_rend_config.rendererSelection == ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV ) -#endif { float Cldfb_RealBuffer_Binaural[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer_Binaural[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index b4a0b24ea9..4332989b19 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -1887,10 +1887,8 @@ static ivas_error create_parambin_HRTF_from_rawdata( ivas_error load_fastconv_HRTF_from_binary( IVAS_DEC_HRTF_FASTCONV_HANDLE hHrtfFastConv, /* i/o: FastConv HRTF handle */ -#ifdef FIX_HRTF_LOAD const int16_t room_reverb_flag, /* i : room reverb flag */ const IVAS_AUDIO_CONFIG intern_audio_config, /* i : internal audio configuration */ -#endif const hrtfFileReader *hrtfReader /* i : pointer to hrtfFileReader handle */ ) { @@ -1939,7 +1937,6 @@ ivas_error load_fastconv_HRTF_from_binary( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "HRTF binary file not compliant (number of HRTF)" ); } -#ifdef FIX_HRTF_LOAD if ( ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && ( ( hrtf_header.input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_HOA3 && intern_audio_config == IVAS_AUDIO_CONFIG_HOA3 ) || ( hrtf_header.input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_HOA2 && intern_audio_config == IVAS_AUDIO_CONFIG_HOA2 ) || @@ -1947,9 +1944,6 @@ ivas_error load_fastconv_HRTF_from_binary( ( hrtf_header.input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) ) ) || ( ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV || hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM ) && room_reverb_flag == 1 ) || ( ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV || hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM ) && intern_audio_config == IVAS_AUDIO_CONFIG_INVALID ) ) -#else - if ( ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV ) || ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM ) ) -#endif { if ( fread( hrtf_data, 1, hrtf_header.data_size, f_hrtf ) != hrtf_header.data_size ) { diff --git a/lib_util/hrtf_file_reader.h b/lib_util/hrtf_file_reader.h index 0ea25d323e..262ff8cee5 100644 --- a/lib_util/hrtf_file_reader.h +++ b/lib_util/hrtf_file_reader.h @@ -132,10 +132,8 @@ void destroy_SetOfHRTF( ivas_error load_fastconv_HRTF_from_binary( IVAS_DEC_HRTF_FASTCONV_HANDLE hHrtfFastConv, /* i/o: FastConv HRTF handle */ -#ifdef FIX_HRTF_LOAD const int16_t room_reverb_flag, /* i : room reverb flag */ IVAS_AUDIO_CONFIG intern_audio_config, /* i : internal audio configuration */ -#endif const hrtfFileReader *hrtfReader /* i : pointer to hrtfFileReader handle */ ); diff --git a/lib_util/render_config_reader.c b/lib_util/render_config_reader.c index 8ad75acdd2..f602d16e62 100644 --- a/lib_util/render_config_reader.c +++ b/lib_util/render_config_reader.c @@ -2649,35 +2649,19 @@ ivas_error RenderConfigReader_read( { if ( strcmp( pValue, "CREND" ) == 0 ) { -#ifdef FIX_HRTF_LOAD hRenderConfig->split_rend_config.rendererSelection = IVAS_BIN_RENDERER_TYPE_CREND; -#else - hRenderConfig->split_rend_config.rendererSelection = ISAR_SPLIT_REND_RENDERER_SELECTION_CREND; -#endif } else if ( strcmp( pValue, "FASTCONV" ) == 0 ) { -#ifdef FIX_HRTF_LOAD hRenderConfig->split_rend_config.rendererSelection = IVAS_BIN_RENDERER_TYPE_FASTCONV; -#else - hRenderConfig->split_rend_config.rendererSelection = ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV; -#endif } else if ( strcmp( pValue, "PARAMBIN" ) == 0 ) { -#ifdef FIX_HRTF_LOAD hRenderConfig->split_rend_config.rendererSelection = IVAS_BIN_RENDERER_TYPE_PARAMBIN; -#else - hRenderConfig->split_rend_config.rendererSelection = ISAR_SPLIT_REND_RENDERER_SELECTION_PARAMBIN; -#endif } else if ( strcmp( pValue, "TDREND" ) == 0 ) { -#ifdef FIX_HRTF_LOAD hRenderConfig->split_rend_config.rendererSelection = IVAS_BIN_RENDERER_TYPE_TDREND; -#else - hRenderConfig->split_rend_config.rendererSelection = ISAR_SPLIT_REND_RENDERER_SELECTION_TDREND; -#endif } else { -- GitLab From 3e62d67f2abc589165ccfeb9d8dced8108d5b445 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:25:08 +0100 Subject: [PATCH 21/40] [cleanup] accept NONBE_FIX_1213_SBA_DET_MAT_INV_3BY3 --- lib_com/ivas_spar_com.c | 4 ---- lib_com/options.h | 1 - 2 files changed, 5 deletions(-) diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index d8ec6d0ff5..79ae790488 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -1257,11 +1257,7 @@ static void ivas_calc_mat_inv( int16_t sign = 1; ivas_calc_mat_det( dbl_in_re, dim, &det_re ); -#ifdef NONBE_FIX_1213_SBA_DET_MAT_INV_3BY3 det = det_re > 0 ? 1 / max( IVAS_DBL_EPS, det_re ) : 1 / min( det_re, -IVAS_DBL_EPS ); -#else - det = det_re > 0 ? 1 / max( IVAS_DBL_EPS, det_re ) : min( det_re, -IVAS_DBL_EPS ); -#endif for ( i = 0; i < dim; i++ ) { diff --git a/lib_com/options.h b/lib_com/options.h index 82b5f5814b..6b4a78d949 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -172,7 +172,6 @@ /* #################### Start NON-BE switches ############################ */ -#define NONBE_FIX_1213_SBA_DET_MAT_INV_3BY3 /*Dolby: issue 1213: fix for inverse of det < 0*/ /* any switch which is non-be wrt selection floating point code */ /* all switches in this category should start with "NONBE_" */ -- GitLab From d29cd14f65b8105849d3f10bfc39c52d8348daf8 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:26:13 +0100 Subject: [PATCH 22/40] [cleanup] accept NONBE_FIX_1197_OMASA_META_BUFFER --- lib_com/options.h | 1 - lib_dec/ivas_omasa_dec.c | 2 -- lib_rend/ivas_dirac_dec_binaural_functions.c | 6 ------ 3 files changed, 9 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 6b4a78d949..19074f4aa7 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -179,7 +179,6 @@ #define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ -#define NONBE_FIX_1197_OMASA_META_BUFFER /* Nokia: OMASA ISM_MASA_MODE_PARAM_ONE_OBJ history zero in rateswitching */ #define NONBE_FIX_1212_TONAL_MDCT_CONCEALMENT /* FhG: Fix issue 1212, zero IGF spec also in 1st concealed frame */ diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 83f6ae0b93..3bdb2e0c76 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -337,7 +337,6 @@ ivas_error ivas_omasa_dec_config( ivas_omasa_separate_object_renderer_close( st_ivas ); } -#ifdef NONBE_FIX_1197_OMASA_META_BUFFER if ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ && st_ivas->hMasaIsmData != NULL ) /* this structure is in use only in ISM_MASA_MODE_PARAM_ONE_OBJ */ { MASA_ISM_DATA_HANDLE hMasaIsmData = st_ivas->hMasaIsmData; @@ -353,7 +352,6 @@ ivas_error ivas_omasa_dec_config( set_s( hMasaIsmData->azimuth_separated_ism, 0, MAX_PARAM_SPATIAL_SUBFRAMES + DELAY_MASA_PARAM_DEC_SFR ); set_s( hMasaIsmData->elevation_separated_ism, 0, MAX_PARAM_SPATIAL_SUBFRAMES + DELAY_MASA_PARAM_DEC_SFR ); } -#endif if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC ) { diff --git a/lib_rend/ivas_dirac_dec_binaural_functions.c b/lib_rend/ivas_dirac_dec_binaural_functions.c index f6ceba8a3d..702262fa50 100644 --- a/lib_rend/ivas_dirac_dec_binaural_functions.c +++ b/lib_rend/ivas_dirac_dec_binaural_functions.c @@ -3107,17 +3107,11 @@ void ivas_omasa_preProcessStereoTransportsForEditedObjects( } /* Limit target energies to non-negative values */ -#ifdef NONBE_FIX_1197_OMASA_META_BUFFER /* due to rounding, the sum may exceed 1.0f ever so slightly, so clip it */ ratioAccOrig = min( ratioAccOrig, 1.0f ); -#endif if ( masaGainEdited ) { -#ifdef NONBE_FIX_1197_OMASA_META_BUFFER ratioAccNew += gainMasaPow2 * ( 1.0f - ratioAccOrig ); -#else - ratioAccNew += gainMasaPow2 * ( 1 - ratioAccOrig ); -#endif } else { -- GitLab From 69e9982d4152ec9de7b6e34cac63dd615c275aae Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:27:02 +0100 Subject: [PATCH 23/40] [cleanup] accept FIX_1139_REV_COLORATION_SHORT_T60 --- lib_com/options.h | 1 - lib_dec/ivas_binRenderer_internal.c | 2 -- lib_dec/lib_dec.c | 4 --- lib_rend/ivas_dirac_dec_binaural_functions.c | 2 -- lib_rend/ivas_prot_rend.h | 2 -- lib_rend/ivas_reverb.c | 30 -------------------- lib_rend/lib_rend.c | 6 ---- 7 files changed, 47 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 19074f4aa7..f6ad7aea0d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -182,7 +182,6 @@ #define NONBE_FIX_1212_TONAL_MDCT_CONCEALMENT /* FhG: Fix issue 1212, zero IGF spec also in 1st concealed frame */ -#define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ #define NONBE_FIX_1208_DFT_STEREO_PLC_BURST /* Ericsson: Issue 1208, fix for overflow of sample offset counter for burst error in DFT Stereo PLC. */ #define FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE /* FhG: zero out all relevant imdct buffers in MCT decoding of channels with mct_chan_mode == MCT_CHAN_MODE_IGNORE */ #define NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH /* VA: issue 1199: fix bug in renderer flush in OMASA JBM bitrate switching */ diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index 05033d87a4..3a13446991 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -1229,10 +1229,8 @@ ivas_error ivas_binRenderer_open( st_ivas->hDecoderConfig->output_Fs, st_ivas->hHrtfFastConv->fastconvReverberationTimes, st_ivas->hHrtfFastConv->fastconvReverberationEneCorrections -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 , hBinRenderer->earlyPartEneCorrection -#endif ) ) != IVAS_ERR_OK ) { return error; diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 3b21c19a08..71c93d2089 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -3050,10 +3050,8 @@ ivas_error IVAS_DEC_FeedRenderConfig( hIvasDec->st_ivas->hDecoderConfig->output_Fs, NULL, NULL -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 , NULL -#endif ) ) != IVAS_ERR_OK ) { return error; @@ -3071,10 +3069,8 @@ ivas_error IVAS_DEC_FeedRenderConfig( hIvasDec->st_ivas->hDecoderConfig->output_Fs, NULL, NULL -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 , NULL -#endif ) ) != IVAS_ERR_OK ) { return error; diff --git a/lib_rend/ivas_dirac_dec_binaural_functions.c b/lib_rend/ivas_dirac_dec_binaural_functions.c index 702262fa50..e51df6842a 100644 --- a/lib_rend/ivas_dirac_dec_binaural_functions.c +++ b/lib_rend/ivas_dirac_dec_binaural_functions.c @@ -246,10 +246,8 @@ ivas_error ivas_dirac_dec_init_binaural_data( output_Fs, ( *phHrtfParambin )->parametricReverberationTimes, ( *phHrtfParambin )->parametricReverberationEneCorrections -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 , hDiracDecBin->earlyPartEneCorrection -#endif ) ) != IVAS_ERR_OK ) { return error; diff --git a/lib_rend/ivas_prot_rend.h b/lib_rend/ivas_prot_rend.h index 612f2656f4..583fe40348 100644 --- a/lib_rend/ivas_prot_rend.h +++ b/lib_rend/ivas_prot_rend.h @@ -934,10 +934,8 @@ ivas_error ivas_binaural_reverb_init( const int32_t sampling_rate, /* i : sampling rate */ const float *defaultTimes, /* i : default reverberation times */ const float *defaultEne /* i : default reverberation energies */ - #ifdef FIX_1139_REV_COLORATION_SHORT_T60 , float *earlyEne /* i/o: Early part energies to be modified */ - #endif ); void ivas_binaural_reverb_close( diff --git a/lib_rend/ivas_reverb.c b/lib_rend/ivas_reverb.c index 484cb43bb0..75b76d065f 100644 --- a/lib_rend/ivas_reverb.c +++ b/lib_rend/ivas_reverb.c @@ -56,9 +56,7 @@ #define CLDFB_SLOTS_PER_SECOND 800 /* Used for initializing reverb */ -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 #define REV_TIME_THRESHOLD ( 0.2f ) -#endif #define INNER_BLK_SIZE 80 /* size of data blocks used for more efficient delay line and IIR filter processing */ /* should be a divisor of the frame length at any sampling rate and an even number*/ @@ -258,7 +256,6 @@ static void ivas_binaural_reverb_setReverbTimes( } currentEnergy *= attenuationFactorPerSampleSq; } -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 /* In some configurations with small T60s it is possible the number of taps randomizes to zero. Ensure at least 1 filter tap. */ if ( tap == 0 ) @@ -269,7 +266,6 @@ static void ivas_binaural_reverb_setReverbTimes( tap = 1; actualizedEnergy = 1; } -#endif hReverb->taps[bin][ch] = tap; /* Number of taps determined at the above random procedure */ } @@ -1878,44 +1874,25 @@ ivas_error ivas_binaural_reverb_init( const int32_t sampling_rate, /* i : sampling rate */ const float *defaultTimes, /* i : default reverberation times */ const float *defaultEne /* i : default reverberation energies */ -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 , float *earlyEne /* i/o: Early part energies to be modified */ -#endif ) { ivas_error error; -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 int16_t preDelay, bin; float revTimes[CLDFB_NO_CHANNELS_MAX]; float revEne[CLDFB_NO_CHANNELS_MAX]; -#else - const float *revTimes; - const float *revEne; - float t60[CLDFB_NO_CHANNELS_MAX]; - float ene[CLDFB_NO_CHANNELS_MAX]; - int16_t preDelay; -#endif error = IVAS_ERR_OK; if ( roomAcoustics != NULL ) { -#ifndef FIX_1139_REV_COLORATION_SHORT_T60 - revTimes = t60; - revEne = ene; -#endif if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfStatistics, sampling_rate, -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 revTimes, revEne -#else - t60, - ene -#endif ) ) != IVAS_ERR_OK ) { return error; @@ -1924,20 +1901,14 @@ ivas_error ivas_binaural_reverb_init( } else { -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 for ( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) { revTimes[bin] = defaultTimes[bin]; revEne[bin] = defaultEne[bin]; } -#else - revTimes = defaultTimes; - revEne = defaultEne; -#endif preDelay = 10; } -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 for ( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) { /* Adjust the room effect parameters when the reverberation time is less than a threshold value, to avoid @@ -1963,7 +1934,6 @@ ivas_error ivas_binaural_reverb_init( earlyEne[bin] = adjustedEarlyEne; } } -#endif error = ivas_binaural_reverb_open( hReverbPr, numBins, numCldfbSlotsPerFrame, sampling_rate, revTimes, revEne, preDelay ); diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 5d8cad08e0..de90db4cd5 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -4314,10 +4314,8 @@ ivas_error IVAS_REND_FeedRenderConfig( *pMasaInput->base.ctx.pOutSampleRate, NULL, NULL -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 , NULL -#endif ) ) != IVAS_ERR_OK ) { return error; @@ -4335,10 +4333,8 @@ ivas_error IVAS_REND_FeedRenderConfig( *pMasaInput->base.ctx.pOutSampleRate, NULL, NULL -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 , NULL -#endif ) ) != IVAS_ERR_OK ) { return error; @@ -8427,10 +8423,8 @@ static ivas_error ivas_masa_ext_rend_parambin_init( output_Fs, ( *phHrtfParambin )->parametricReverberationTimes, ( *phHrtfParambin )->parametricReverberationEneCorrections -#ifdef FIX_1139_REV_COLORATION_SHORT_T60 , hDiracDecBin->earlyPartEneCorrection -#endif ) ) != IVAS_ERR_OK ) { return error; -- GitLab From 6319d2ee501e1931129fd911e343b919349b4278 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:28:03 +0100 Subject: [PATCH 24/40] [cleanup] accept NONBE_FIX_1208_DFT_STEREO_PLC_BURST --- lib_com/options.h | 1 - lib_dec/ivas_stereo_dft_plc.c | 10 ---------- 2 files changed, 11 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index f6ad7aea0d..dc62278e85 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -182,7 +182,6 @@ #define NONBE_FIX_1212_TONAL_MDCT_CONCEALMENT /* FhG: Fix issue 1212, zero IGF spec also in 1st concealed frame */ -#define NONBE_FIX_1208_DFT_STEREO_PLC_BURST /* Ericsson: Issue 1208, fix for overflow of sample offset counter for burst error in DFT Stereo PLC. */ #define FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE /* FhG: zero out all relevant imdct buffers in MCT decoding of channels with mct_chan_mode == MCT_CHAN_MODE_IGNORE */ #define NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH /* VA: issue 1199: fix bug in renderer flush in OMASA JBM bitrate switching */ #define NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* VA: issue 1200: fix bug in renderer flush in ISM JBM bitrate switching */ diff --git a/lib_dec/ivas_stereo_dft_plc.c b/lib_dec/ivas_stereo_dft_plc.c index 30fb49f4ce..a9024ff18f 100644 --- a/lib_dec/ivas_stereo_dft_plc.c +++ b/lib_dec/ivas_stereo_dft_plc.c @@ -80,9 +80,7 @@ void stereo_dft_res_ecu( float fac; float trigo_dec[STEREO_DFT32MS_N_8k / 2 + 1]; int16_t trigo_step; -#ifdef NONBE_FIX_1208_DFT_STEREO_PLC_BURST int16_t time_offs; -#endif set_zero( pDFT_RES, L_FRAME8k ); @@ -109,12 +107,8 @@ void stereo_dft_res_ecu( if ( k == 0 ) { mvr2r( pDFT_RES, res_buf, L_FRAME8k ); -#ifdef NONBE_FIX_1208_DFT_STEREO_PLC_BURST time_offs = min( MAX16B, hStereoDft->time_offs + output_frame ); stereo_dft_res_subst_spec( hStereoDft, res_buf, DFT_PRED_RES, time_offs, L_res, L_FRAME8k, k, num_plocs, plocs, plocsi, FALSE ); -#else - stereo_dft_res_subst_spec( hStereoDft, res_buf, DFT_PRED_RES, hStereoDft->time_offs + output_frame, L_res, L_FRAME8k, k, num_plocs, plocs, plocsi, FALSE ); -#endif rfft( res_buf, trigo_dec, L_FRAME8k, +1 ); @@ -141,11 +135,7 @@ void stereo_dft_res_ecu( } /*in case of burst error*/ -#ifdef NONBE_FIX_1208_DFT_STEREO_PLC_BURST hStereoDft->time_offs = min( MAX16B, hStereoDft->time_offs + L_FRAME8k ); -#else - hStereoDft->time_offs += L_FRAME8k; -#endif } set_zero( DFT_PRED_RES, 2 * L_res ); -- GitLab From c12340aeb0fb013f13f8c5b748a158e8668e49a8 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:29:07 +0100 Subject: [PATCH 25/40] [cleanup] accept FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE --- lib_com/options.h | 1 - lib_dec/ivas_mdct_core_dec.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index dc62278e85..c59af37529 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -182,7 +182,6 @@ #define NONBE_FIX_1212_TONAL_MDCT_CONCEALMENT /* FhG: Fix issue 1212, zero IGF spec also in 1st concealed frame */ -#define FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE /* FhG: zero out all relevant imdct buffers in MCT decoding of channels with mct_chan_mode == MCT_CHAN_MODE_IGNORE */ #define NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH /* VA: issue 1199: fix bug in renderer flush in OMASA JBM bitrate switching */ #define NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* VA: issue 1200: fix bug in renderer flush in ISM JBM bitrate switching */ diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index e07b44da03..6049a4593c 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -865,7 +865,6 @@ void ivas_mdct_core_reconstruct( { set_f( &synth[k * L_frame[ch]], 0.f, L_frame[ch] ); set_f( &synthFB[k * L_frame[ch]], 0.f, L_frameTCX[ch] ); -#ifdef FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE /* Note: these buffers are not subframe-based, hence no indexing with k */ set_f( &st->hHQ_core->old_outLB[0], 0.f, L_frame[ch] ); set_f( &st->hHQ_core->old_out[0], 0.f, L_frameTCX[ch] ); @@ -873,7 +872,6 @@ void ivas_mdct_core_reconstruct( set_f( &st->hTcxDec->syn_OverlFB[0], 0.f, L_frameTCX[ch] / 2 ); set_f( &st->hTcxDec->syn_Overl_TDAC[0], 0.f, L_frame[ch] / 2 ); set_f( &st->hTcxDec->syn_Overl_TDACFB[0], 0.f, L_frameTCX[ch] / 2 ); -#endif } } -- GitLab From e11354bc3339d9e9e65e4cdf6bcdaee54dded688 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:30:15 +0100 Subject: [PATCH 26/40] [cleanup] accept NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH --- lib_com/options.h | 1 - lib_dec/ivas_init_dec.c | 4 ---- lib_dec/ivas_masa_dec.c | 13 ------------- lib_dec/lib_dec.c | 7 ------- 4 files changed, 25 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index c59af37529..0d18daf5ea 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -182,7 +182,6 @@ #define NONBE_FIX_1212_TONAL_MDCT_CONCEALMENT /* FhG: Fix issue 1212, zero IGF spec also in 1st concealed frame */ -#define NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH /* VA: issue 1199: fix bug in renderer flush in OMASA JBM bitrate switching */ #define NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* VA: issue 1200: fix bug in renderer flush in ISM JBM bitrate switching */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 423dfebec9..237aec118f 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -573,9 +573,7 @@ ivas_error ivas_dec_setup( } /* this should be non-zero if original input format was MASA_ISM_FORMAT */ -#ifdef NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH st_ivas->ism_mode = ISM_MODE_NONE; -#endif st_ivas->nchan_ism = st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 3] + 2 * st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 2]; if ( st_ivas->nchan_ism > 0 ) @@ -813,14 +811,12 @@ ivas_error ivas_dec_setup( } } -#ifdef NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH if ( st_ivas->ini_frame > 0 && st_ivas->ivas_format == MASA_FORMAT ) { st_ivas->nchan_ism = 0; st_ivas->ism_mode = ISM_MODE_NONE; } -#endif if ( st_ivas->ivas_format == ISM_FORMAT ) { ISM_MODE last_ism_mode = st_ivas->ism_mode; diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 622a6dce64..2b9d071901 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -1468,19 +1468,6 @@ ivas_error ivas_masa_dec_reconfigure( ivas_masa_set_elements( ivas_total_brate, st_ivas->mc_mode, st_ivas->nchan_transport, st_ivas->hQMetaData, &tmp, &tmp, &tmp, st_ivas->ivas_format, st_ivas->ism_mode, ism_total_brate ); -#ifndef NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH - if ( st_ivas->ivas_format == MASA_FORMAT ) - { - if ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) - { - st_ivas->nchan_ism = 0; /* Initialization if it has not been already read from the end of the bitstream at the same time - with reading of the format: nchan_ism is needed in MASA format because for the EXT output in - MASA-only (pre-rendering mode of OMASA) the number of ISMs to output correct number of empty objects is needed */ - } - st_ivas->ism_mode = ISM_MODE_NONE; - } - -#endif { int16_t tc_nchan_to_allocate; int16_t tc_nchan_transport; diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 71c93d2089..b9a4cc1374 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1010,13 +1010,6 @@ ivas_error IVAS_DEC_ReadFormat( st_ivas->nchan_transport = nchan_transport_old; #else // st_ivas->nchan_transport = nchan_transport_old; // ToDo: temporarily deactivated to keep FIX_HRTF_LOAD bit-exact but this is likely a bug in the main -> see issue #1200 -#endif -#ifndef NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH - if ( st_ivas->ivas_format == MASA_FORMAT ) - { - st_ivas->nchan_ism = 0; // ToDo: temporary hack to keep FIX_HRTF_LOAD bit-exact but this is likely a bug in the main -> see issue #1199 - } - #endif if ( tc_granularity_new < st_ivas->hTcBuffer->n_samples_granularity ) { -- GitLab From f84fea7e442e6a904d66f94a439b0f09e16fb845 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 11 Nov 2024 17:32:23 +0100 Subject: [PATCH 27/40] formatting --- lib_dec/ivas_binRenderer_internal.c | 6 +-- lib_dec/ivas_init_dec.c | 8 +-- lib_dec/ivas_jbm_dec.c | 4 +- lib_dec/ivas_mc_param_dec.c | 26 +++++----- lib_dec/lib_dec.c | 53 +++++++++----------- lib_rend/ivas_dirac_dec_binaural_functions.c | 6 +-- lib_rend/ivas_reverb.c | 3 +- lib_rend/lib_rend.c | 18 +++---- lib_util/hrtf_file_reader.c | 2 +- lib_util/hrtf_file_reader.h | 6 +-- 10 files changed, 58 insertions(+), 74 deletions(-) diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index 3a13446991..587f2c7b2b 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -1228,10 +1228,8 @@ ivas_error ivas_binRenderer_open( pRoomAcoustics, st_ivas->hDecoderConfig->output_Fs, st_ivas->hHrtfFastConv->fastconvReverberationTimes, - st_ivas->hHrtfFastConv->fastconvReverberationEneCorrections - , - hBinRenderer->earlyPartEneCorrection - ) ) != IVAS_ERR_OK ) + st_ivas->hHrtfFastConv->fastconvReverberationEneCorrections, + hBinRenderer->earlyPartEneCorrection ) ) != IVAS_ERR_OK ) { return error; } diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 237aec118f..11516f7963 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1823,10 +1823,10 @@ ivas_error ivas_init_decoder( reset_indices_dec( st_ivas->hSCE[0]->hCoreCoder[0] ); - if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) - { - return error; - } + if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK ) + { + return error; + } } else if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 870337b9b8..e1e29265fd 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -814,12 +814,12 @@ void ivas_jbm_dec_feed_tc_to_renderer( } n_render_timeslots = st_ivas->hTcBuffer->n_samples_available / st_ivas->hTcBuffer->n_samples_granularity; - if ( st_ivas->ivas_format == ISM_FORMAT ) + if ( st_ivas->ivas_format == ISM_FORMAT ) { /* Rendering */ if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { - if ( st_ivas->renderer_type == RENDERER_PARAM_ISM || st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ) + if ( st_ivas->renderer_type == RENDERER_PARAM_ISM || st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ) { ivas_param_ism_dec_digest_tc( st_ivas, n_render_timeslots, p_data_f ); } diff --git a/lib_dec/ivas_mc_param_dec.c b/lib_dec/ivas_mc_param_dec.c index 3279c8fb86..426d9526a8 100644 --- a/lib_dec/ivas_mc_param_dec.c +++ b/lib_dec/ivas_mc_param_dec.c @@ -1337,24 +1337,24 @@ void ivas_param_mc_dec_digest_tc( nchan_transport = st_ivas->nchan_transport; - /* slot loop for gathering the input data */ - for ( slot_idx = 0; slot_idx < nCldfbSlots; slot_idx++ ) + /* slot loop for gathering the input data */ + for ( slot_idx = 0; slot_idx < nCldfbSlots; slot_idx++ ) + { + if ( st_ivas->hDecoderConfig->Opt_tsm ) { - if ( st_ivas->hDecoderConfig->Opt_tsm ) - { - float RealBuffer[CLDFB_NO_CHANNELS_MAX]; - float ImagBuffer[CLDFB_NO_CHANNELS_MAX]; + float RealBuffer[CLDFB_NO_CHANNELS_MAX]; + float ImagBuffer[CLDFB_NO_CHANNELS_MAX]; - /* CLDFB Analysis*/ - for ( ch = 0; ch < nchan_transport; ch++ ) - { - cldfbAnalysis_ts( &( transport_channels_f[ch][hParamMC->num_freq_bands * slot_idx] ), RealBuffer, ImagBuffer, hParamMC->num_freq_bands, st_ivas->cldfbAnaDec[ch] ); + /* CLDFB Analysis*/ + for ( ch = 0; ch < nchan_transport; ch++ ) + { + cldfbAnalysis_ts( &( transport_channels_f[ch][hParamMC->num_freq_bands * slot_idx] ), RealBuffer, ImagBuffer, hParamMC->num_freq_bands, st_ivas->cldfbAnaDec[ch] ); - mvr2r( RealBuffer, &hParamMC->Cldfb_RealBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport + ch * hParamMC->num_freq_bands], hParamMC->num_freq_bands ); - mvr2r( ImagBuffer, &hParamMC->Cldfb_ImagBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport + ch * hParamMC->num_freq_bands], hParamMC->num_freq_bands ); - } + mvr2r( RealBuffer, &hParamMC->Cldfb_RealBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport + ch * hParamMC->num_freq_bands], hParamMC->num_freq_bands ); + mvr2r( ImagBuffer, &hParamMC->Cldfb_ImagBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport + ch * hParamMC->num_freq_bands], hParamMC->num_freq_bands ); } } + } pop_wmops(); diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index b9a4cc1374..9fe3a8132e 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -822,7 +822,7 @@ ivas_error IVAS_DEC_FeedFrame_Serial( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ uint16_t *serial, /* i : buffer containing serial input bitstream. Each bit should be stored as a single uint16_t value */ const uint16_t num_bits, /* i : number of bits in input bitstream */ - int16_t bfi /* i : bad frame indicator flag */ + int16_t bfi /* i : bad frame indicator flag */ ) { ivas_error error; @@ -1560,7 +1560,6 @@ ivas_error IVAS_DEC_PrepareRenderer( } - /*---------------------------------------------------------------------* * IVAS_DEC_GetSamplesRenderer( ) * @@ -1672,24 +1671,24 @@ ivas_error IVAS_DEC_GetSamplesRenderer( hIvasDec->nSamplesFlushed = 0; } - /* render IVAS frames directly to the output buffer */ - nSamplesToRender = nSamplesAsked - nSamplesRendered; - if ( ( error = IVAS_DEC_GetRenderedSamples( hIvasDec, nSamplesToRender, &nSamplesRendered_loop, &hIvasDec->nSamplesAvailableNext, pcmType, pcm_buffer_offset( pcmBuf, pcmType, nSamplesRendered * nOutChannels ) ) ) != IVAS_ERR_OK ) - { - return error; - } + /* render IVAS frames directly to the output buffer */ + nSamplesToRender = nSamplesAsked - nSamplesRendered; + if ( ( error = IVAS_DEC_GetRenderedSamples( hIvasDec, nSamplesToRender, &nSamplesRendered_loop, &hIvasDec->nSamplesAvailableNext, pcmType, pcm_buffer_offset( pcmBuf, pcmType, nSamplesRendered * nOutChannels ) ) ) != IVAS_ERR_OK ) + { + return error; + } - nSamplesRendered += nSamplesRendered_loop; - nSamplesToRender -= nSamplesRendered_loop; - if ( hIvasDec->nSamplesAvailableNext == 0 ) - { - *needNewFrame = true; - hIvasDec->needNewFrame = true; - } - else - { - *needNewFrame = false; - } + nSamplesRendered += nSamplesRendered_loop; + nSamplesToRender -= nSamplesRendered_loop; + if ( hIvasDec->nSamplesAvailableNext == 0 ) + { + *needNewFrame = true; + hIvasDec->needNewFrame = true; + } + else + { + *needNewFrame = false; + } } *nOutSamples = nSamplesRendered; @@ -3042,10 +3041,8 @@ ivas_error IVAS_DEC_FeedRenderConfig( &( hRenderConfig->roomAcoustics ), hIvasDec->st_ivas->hDecoderConfig->output_Fs, NULL, - NULL - , - NULL - ) ) != IVAS_ERR_OK ) + NULL, + NULL ) ) != IVAS_ERR_OK ) { return error; } @@ -3061,10 +3058,8 @@ ivas_error IVAS_DEC_FeedRenderConfig( &( hRenderConfig->roomAcoustics ), hIvasDec->st_ivas->hDecoderConfig->output_Fs, NULL, - NULL - , - NULL - ) ) != IVAS_ERR_OK ) + NULL, + NULL ) ) != IVAS_ERR_OK ) { return error; } @@ -3423,10 +3418,10 @@ ivas_error IVAS_DEC_VoIP_GetSamples( JbmTraceFileWriterFn jbmWriterFn, void *jbmWriter, #endif - bool *bitstreamReadDone, /* o : flag indicating that bitstream was read */ + bool *bitstreamReadDone, /* o : flag indicating that bitstream was read */ uint16_t *nSamplesRendered, /* o : number of samples rendered */ bool *parametersAvailableForEditing, /* o : indicates whether objects editing is available */ - const uint32_t systemTimestamp_ms /* i : current system timestamp */ + const uint32_t systemTimestamp_ms /* i : current system timestamp */ ) { Decoder_Struct *st_ivas; diff --git a/lib_rend/ivas_dirac_dec_binaural_functions.c b/lib_rend/ivas_dirac_dec_binaural_functions.c index e51df6842a..7acf77dfd9 100644 --- a/lib_rend/ivas_dirac_dec_binaural_functions.c +++ b/lib_rend/ivas_dirac_dec_binaural_functions.c @@ -245,10 +245,8 @@ ivas_error ivas_dirac_dec_init_binaural_data( pRoomAcoustics, output_Fs, ( *phHrtfParambin )->parametricReverberationTimes, - ( *phHrtfParambin )->parametricReverberationEneCorrections - , - hDiracDecBin->earlyPartEneCorrection - ) ) != IVAS_ERR_OK ) + ( *phHrtfParambin )->parametricReverberationEneCorrections, + hDiracDecBin->earlyPartEneCorrection ) ) != IVAS_ERR_OK ) { return error; } diff --git a/lib_rend/ivas_reverb.c b/lib_rend/ivas_reverb.c index 75b76d065f..a717f7b17b 100644 --- a/lib_rend/ivas_reverb.c +++ b/lib_rend/ivas_reverb.c @@ -1892,8 +1892,7 @@ ivas_error ivas_binaural_reverb_init( hHrtfStatistics, sampling_rate, revTimes, - revEne - ) ) != IVAS_ERR_OK ) + revEne ) ) != IVAS_ERR_OK ) { return error; } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index de90db4cd5..3c19a8c268 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -4313,10 +4313,8 @@ ivas_error IVAS_REND_FeedRenderConfig( &( hRenderConfig->roomAcoustics ), *pMasaInput->base.ctx.pOutSampleRate, NULL, - NULL - , - NULL - ) ) != IVAS_ERR_OK ) + NULL, + NULL ) ) != IVAS_ERR_OK ) { return error; } @@ -4332,10 +4330,8 @@ ivas_error IVAS_REND_FeedRenderConfig( &( hRenderConfig->roomAcoustics ), *pMasaInput->base.ctx.pOutSampleRate, NULL, - NULL - , - NULL - ) ) != IVAS_ERR_OK ) + NULL, + NULL ) ) != IVAS_ERR_OK ) { return error; } @@ -8422,10 +8418,8 @@ static ivas_error ivas_masa_ext_rend_parambin_init( pRoomAcoustics, output_Fs, ( *phHrtfParambin )->parametricReverberationTimes, - ( *phHrtfParambin )->parametricReverberationEneCorrections - , - hDiracDecBin->earlyPartEneCorrection - ) ) != IVAS_ERR_OK ) + ( *phHrtfParambin )->parametricReverberationEneCorrections, + hDiracDecBin->earlyPartEneCorrection ) ) != IVAS_ERR_OK ) { return error; } diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index 4332989b19..5979e0a251 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -1889,7 +1889,7 @@ ivas_error load_fastconv_HRTF_from_binary( IVAS_DEC_HRTF_FASTCONV_HANDLE hHrtfFastConv, /* i/o: FastConv HRTF handle */ const int16_t room_reverb_flag, /* i : room reverb flag */ const IVAS_AUDIO_CONFIG intern_audio_config, /* i : internal audio configuration */ - const hrtfFileReader *hrtfReader /* i : pointer to hrtfFileReader handle */ + const hrtfFileReader *hrtfReader /* i : pointer to hrtfFileReader handle */ ) { FILE *f_hrtf; diff --git a/lib_util/hrtf_file_reader.h b/lib_util/hrtf_file_reader.h index 262ff8cee5..b98cbbd03a 100644 --- a/lib_util/hrtf_file_reader.h +++ b/lib_util/hrtf_file_reader.h @@ -132,9 +132,9 @@ void destroy_SetOfHRTF( ivas_error load_fastconv_HRTF_from_binary( IVAS_DEC_HRTF_FASTCONV_HANDLE hHrtfFastConv, /* i/o: FastConv HRTF handle */ - const int16_t room_reverb_flag, /* i : room reverb flag */ - IVAS_AUDIO_CONFIG intern_audio_config, /* i : internal audio configuration */ - const hrtfFileReader *hrtfReader /* i : pointer to hrtfFileReader handle */ + const int16_t room_reverb_flag, /* i : room reverb flag */ + IVAS_AUDIO_CONFIG intern_audio_config, /* i : internal audio configuration */ + const hrtfFileReader *hrtfReader /* i : pointer to hrtfFileReader handle */ ); /*---------------------------------------------------------------------* -- GitLab From 22adcacdddcb09ce4e39df639834537ee7df5c12 Mon Sep 17 00:00:00 2001 From: malenov Date: Tue, 12 Nov 2024 14:45:00 +0100 Subject: [PATCH 28/40] corerectio of TD stereo debugging output --- lib_dec/ivas_cpe_dec.c | 7 +++++++ lib_enc/ivas_cpe_enc.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index efd192ce6a..10c824fd88 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -410,6 +410,13 @@ ivas_error ivas_cpe_dec( tdm_ratio_idx = hCPE->hStereoTD->tdm_last_ratio_idx; } } +#ifdef DEBUG_MODE_TD + else + { + dbgwrite( 0, 2, 1, 320, "res/mod_ct.dec" ); + } +#endif + /*----------------------------------------------------------------* * Core Decoder diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 292cbd6a5f..7f996b9f3e 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -586,6 +586,13 @@ ivas_error ivas_cpe_enc( stereo_cng_upd_counters( hCPE->hStereoCng, hCPE->element_mode, -1, NULL, sts[0]->hTdCngEnc->burst_ho_cnt, NULL ); } } +#ifdef DEBUG_MODE_TD + else + { + dbgwrite( 0, 2, 1, 320, "res/mod_ct.enc" ); + } +#endif + /* modify the coder_type depending on the total_brate per channel */ for ( n = 0; n < n_CoreChannels; n++ ) -- GitLab From ad9eef1985ab98f0ecfb2c3c393b182147b3e968 Mon Sep 17 00:00:00 2001 From: malenov Date: Tue, 12 Nov 2024 14:47:29 +0100 Subject: [PATCH 29/40] correction of comments and debugging output --- lib_enc/ivas_decision_matrix_enc.c | 6 +++--- lib_enc/ivas_stereo_classifier.c | 1 - lib_enc/ivas_stereo_td_enc.c | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index b2291fb6d2..b6a53f6884 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -216,8 +216,8 @@ void ivas_decision_matrix_enc( { st->core = ACELP_CORE; #ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT - /* For TD stereo at 16.4kbps (TD is not allowed at 13k2), we can't overwrite the coder_type here WHEN it is TRANSITION */ - /* as it has been used for TD bit allocation and must remained the same at the decoder side to ensure identical bit allocation */ + /* In TD stereo at 16.4kbps (not applicable at 13.2kbps), we cannot overwrite the `coder_type` when it is set to TRANSITION, */ + /* as it is used for TD stereo bit allocation. To ensure consistent bit allocation, it must remain unchanged on the decoder side. */ if ( st->idchan == 0 && !( element_brate <= IVAS_16k4 && st->coder_type == TRANSITION && st->element_mode == IVAS_CPE_TD ) ) { st->coder_type = AUDIO; @@ -225,7 +225,7 @@ void ivas_decision_matrix_enc( #ifdef DEBUG_MODE_TD else { - printf( "coder type not changed\n" ); + printf( "TD stereo: coder_type not changed in ivas_decision_matrix_enc().\n" ); } #endif #else diff --git a/lib_enc/ivas_stereo_classifier.c b/lib_enc/ivas_stereo_classifier.c index 55ceb014be..79a69f5b32 100644 --- a/lib_enc/ivas_stereo_classifier.c +++ b/lib_enc/ivas_stereo_classifier.c @@ -78,7 +78,6 @@ static void edge_detect( const float *inp, const int16_t len, const float inp_mi static float redge_detect( const float *inp, const int16_t len, const float inp_min, const float inp_max ); - /*-------------------------------------------------------------------* * Function select_stereo_mode() * diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index 0758430ad6..16409c13e6 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -452,8 +452,7 @@ void tdm_configure_enc( #ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT if ( hCPE->element_brate < IVAS_24k4 ) { - /* Only sure TRANSITION coding modes are important for bit allocation, otherwise mod_ct is set to AUDIO only to easy debugging if needed */ - /* Enforce GC coder type on inactive signal (this can be later overwritten to INACTIVE) */ + /* In TD stereo, the TRANSITION mode has a specific bit allocation. All other formats share the same bit allocation. For these other formats, `mod_ct` is set to AUDIO to aid in debugging, though it does not have any functional impact. */ if ( !( sts[0]->localVAD == 0 && sts[0]->coder_type == TRANSITION ) && ( sts[0]->coder_type == TRANSITION || ( ( ( sts[0]->last_L_frame >= L_FRAME16k && sts[0]->flag_ACELP16k == 0 ) || -- GitLab From 35e1bceea3cca657955475033fe2b5b5fbd6892f Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 13 Nov 2024 11:14:47 +0100 Subject: [PATCH 30/40] issue 1203: fix severe artifacts during MDCT to DFT stereo switching when MDCT ITD is not used; under NONBE_1203_MDCT2DFT_SWITCHING --- lib_com/options.h | 2 +- lib_enc/ivas_stereo_dft_td_itd.c | 14 ++++++++++++++ lib_enc/ivas_stereo_switching_enc.c | 3 +++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 0d18daf5ea..90ea6c62b1 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -183,7 +183,7 @@ #define NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* VA: issue 1200: fix bug in renderer flush in ISM JBM bitrate switching */ - +#define NONBE_1203_MDCT2DFT_SWITCHING /* VA: issue 1203: fix severe artifacts during MDCT to DFT stereo switching when MDCT ITD is not used */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_enc/ivas_stereo_dft_td_itd.c b/lib_enc/ivas_stereo_dft_td_itd.c index 3e635f68e7..bab1b1d6fd 100755 --- a/lib_enc/ivas_stereo_dft_td_itd.c +++ b/lib_enc/ivas_stereo_dft_td_itd.c @@ -399,6 +399,9 @@ void stereo_td_itd_mdct_stereo( float bin_nrgR[STEREO_DFT_N_32k_ENC]; float DFT[CPE_CHANNELS][STEREO_DFT_N_MAX_ENC]; STEREO_MDCT_ENC_DATA_HANDLE hStereoMdct; +#ifdef NONBE_1203_MDCT2DFT_SWITCHING + int16_t dft_ovl; +#endif if ( hCPE->hStereoMdct != NULL && hCPE->hStereoMdct->hItd != NULL ) { @@ -427,6 +430,17 @@ void stereo_td_itd_mdct_stereo( stereo_td_itd( hStereoMdct->hItd, NULL, 1, hStereoMdct->hDft_ana->dft_ovl, hCPE->hCoreCoder, input_frame, hCPE->input_mem ); #endif } +#ifdef NONBE_1203_MDCT2DFT_SWITCHING + else if ( hCPE->input_mem[0] != NULL ) + { + dft_ovl = STEREO_DFT_OVL_MAX * input_frame / L_FRAME48k; + + for ( i = 0; i < CPE_CHANNELS; i++ ) + { + mvr2r( hCPE->hCoreCoder[i]->input + input_frame - dft_ovl, hCPE->input_mem[i], dft_ovl ); + } + } +#endif return; } diff --git a/lib_enc/ivas_stereo_switching_enc.c b/lib_enc/ivas_stereo_switching_enc.c index 8bbfd39321..d5cf09e509 100644 --- a/lib_enc/ivas_stereo_switching_enc.c +++ b/lib_enc/ivas_stereo_switching_enc.c @@ -625,6 +625,9 @@ void stereo_switching_enc( dft_ovl = STEREO_DFT_OVL_MAX * input_frame / L_FRAME48k; /* update DFT analysis overlap memory */ +#ifdef NONBE_1203_MDCT2DFT_SWITCHING + /* note: in MDCT stereo, the update is done in stereo_td_itd_mdct_stereo() */ +#endif if ( hCPE->element_mode > IVAS_CPE_DFT && hCPE->input_mem[0] != NULL && hCPE->element_mode != IVAS_CPE_MDCT ) { for ( n = 0; n < CPE_CHANNELS; n++ ) -- GitLab From 0fdd136562ae0f3e211120e7f07d9757353fb669 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 13 Nov 2024 15:24:05 +0100 Subject: [PATCH 31/40] formal issues: reintroduce empty lines --- lib_enc/ivas_decision_matrix_enc.c | 3 +++ lib_enc/ivas_stereo_classifier.c | 1 + lib_enc/ivas_stereo_td_enc.c | 1 + lib_enc/stat_enc.h | 3 ++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index b6a53f6884..4f73845035 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -215,6 +215,7 @@ void ivas_decision_matrix_enc( if ( st->core == TCX_20_CORE && st->total_brate < STEREO_TCX_MIN_RATE ) { st->core = ACELP_CORE; + #ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT /* In TD stereo at 16.4kbps (not applicable at 13.2kbps), we cannot overwrite the `coder_type` when it is set to TRANSITION, */ /* as it is used for TD stereo bit allocation. To ensure consistent bit allocation, it must remain unchanged on the decoder side. */ @@ -231,6 +232,7 @@ void ivas_decision_matrix_enc( #else st->coder_type = AUDIO; #endif + st->sp_aud_decision2 = 0; if ( st->low_rate_mode ) @@ -397,6 +399,7 @@ void ivas_decision_matrix_enc( } } #endif + return; } diff --git a/lib_enc/ivas_stereo_classifier.c b/lib_enc/ivas_stereo_classifier.c index 79a69f5b32..55ceb014be 100644 --- a/lib_enc/ivas_stereo_classifier.c +++ b/lib_enc/ivas_stereo_classifier.c @@ -78,6 +78,7 @@ static void edge_detect( const float *inp, const int16_t len, const float inp_mi static float redge_detect( const float *inp, const int16_t len, const float inp_min, const float inp_max ); + /*-------------------------------------------------------------------* * Function select_stereo_mode() * diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index 16409c13e6..7f62647603 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -482,6 +482,7 @@ void tdm_configure_enc( #ifdef DEBUG_MODE_TD sts[0]->mod_ct_ST = mod_ct; #endif + /* Correction of tdm_inst_ratio_idx in case of TC in the seecondary channel */ if ( hStereoTD->flag_skip_DMX == 0 && hStereoTD->tdm_LRTD_flag == 1 && sts[1]->tc_cnt > 1 /*&& abs(hStereoTD->tdm_inst_ratio_idx-LRTD_STEREO_MID_IS_PRIM) > 5*/ ) { diff --git a/lib_enc/stat_enc.h b/lib_enc/stat_enc.h index 323cc90037..b4ab7730dd 100755 --- a/lib_enc/stat_enc.h +++ b/lib_enc/stat_enc.h @@ -1558,8 +1558,9 @@ typedef struct enc_core_structure int16_t sba_br_sw_while_no_data; /* Indicator for SBA bitrate switch while in FRAME_NO_DATA mode */ #ifdef DEBUG_MODE_TD - short mod_ct_ST; + int16_t mod_ct_ST; #endif + } Encoder_State, *ENC_CORE_HANDLE; -- GitLab From ef5cd1102b3291eb381aee8b7f2b2238307464da Mon Sep 17 00:00:00 2001 From: malenovsky Date: Thu, 14 Nov 2024 11:44:34 +0000 Subject: [PATCH 32/40] Correction of comment --- lib_enc/ivas_decision_matrix_enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index 4f73845035..d5433aec29 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -217,7 +217,7 @@ void ivas_decision_matrix_enc( st->core = ACELP_CORE; #ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT - /* In TD stereo at 16.4kbps (not applicable at 13.2kbps), we cannot overwrite the `coder_type` when it is set to TRANSITION, */ + /* In TD stereo below 24.4 kbps we cannot overwrite the `coder_type` when it is set to TRANSITION, */ /* as it is used for TD stereo bit allocation. To ensure consistent bit allocation, it must remain unchanged on the decoder side. */ if ( st->idchan == 0 && !( element_brate <= IVAS_16k4 && st->coder_type == TRANSITION && st->element_mode == IVAS_CPE_TD ) ) { -- GitLab From f5b9e51763a965a3954904331d54c25e72dc4805 Mon Sep 17 00:00:00 2001 From: malenovsky Date: Thu, 14 Nov 2024 11:48:13 +0000 Subject: [PATCH 33/40] Cleanup of obsolete debugging code --- lib_enc/ivas_decision_matrix_enc.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index d5433aec29..5f4db2c040 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -388,17 +388,6 @@ void ivas_decision_matrix_enc( { st->inactive_coder_type_flag = 1; /* GSC */ } -#ifdef DEBUG_MODE_TD - if ( st->idchan == 0 && st->element_mode == IVAS_CPE_TD && st->core == ACELP_CORE && element_brate < IVAS_24k4 ) - { - if ( ( st->coder_type == TRANSITION && st->mod_ct_ST != TRANSITION ) || - ( st->coder_type != TRANSITION && st->mod_ct_ST == TRANSITION ) ) - { - printf( "st->coder_type != st->mod_ct_ST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" ); - exit( -555 ); - } - } -#endif return; } -- GitLab From 85f304f73eaf7dd827e838ac39683ba5dd0fa32c Mon Sep 17 00:00:00 2001 From: malenov Date: Thu, 14 Nov 2024 12:53:57 +0100 Subject: [PATCH 34/40] cleanup of obsolete debugging output --- lib_dec/ivas_cpe_dec.c | 7 ------- lib_dec/ivas_stereo_td_dec.c | 1 - lib_enc/ivas_cpe_enc.c | 7 ------- lib_enc/ivas_stereo_td_enc.c | 4 ---- lib_enc/stat_enc.h | 3 --- 5 files changed, 22 deletions(-) diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 10c824fd88..efd192ce6a 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -410,13 +410,6 @@ ivas_error ivas_cpe_dec( tdm_ratio_idx = hCPE->hStereoTD->tdm_last_ratio_idx; } } -#ifdef DEBUG_MODE_TD - else - { - dbgwrite( 0, 2, 1, 320, "res/mod_ct.dec" ); - } -#endif - /*----------------------------------------------------------------* * Core Decoder diff --git a/lib_dec/ivas_stereo_td_dec.c b/lib_dec/ivas_stereo_td_dec.c index 9ed0fb2e1b..5c534e08f1 100644 --- a/lib_dec/ivas_stereo_td_dec.c +++ b/lib_dec/ivas_stereo_td_dec.c @@ -251,7 +251,6 @@ void tdm_configure_dec( } #ifdef DEBUG_MODE_TD - dbgwrite( &mod_ct, 2, 1, 320, "res/mod_ct.dec" ); dbgwrite( tdm_ratio_idx, 2, 1, 320, "res/tdm_ratio_idx.dec" ); dbgwrite( &tdm_inst_ratio_idx, 2, 1, 320, "res/tdm_inst_ratio_idx.dec" ); dbgwrite( &hStereoTD->tdm_lp_reuse_flag, 2, 1, 320, "res/tdm_lp_reuse_flag.dec" ); diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 7f996b9f3e..292cbd6a5f 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -586,13 +586,6 @@ ivas_error ivas_cpe_enc( stereo_cng_upd_counters( hCPE->hStereoCng, hCPE->element_mode, -1, NULL, sts[0]->hTdCngEnc->burst_ho_cnt, NULL ); } } -#ifdef DEBUG_MODE_TD - else - { - dbgwrite( 0, 2, 1, 320, "res/mod_ct.enc" ); - } -#endif - /* modify the coder_type depending on the total_brate per channel */ for ( n = 0; n < n_CoreChannels; n++ ) diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index 7f62647603..5ba900a6aa 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -479,9 +479,6 @@ void tdm_configure_enc( } } #endif -#ifdef DEBUG_MODE_TD - sts[0]->mod_ct_ST = mod_ct; -#endif /* Correction of tdm_inst_ratio_idx in case of TC in the seecondary channel */ if ( hStereoTD->flag_skip_DMX == 0 && hStereoTD->tdm_LRTD_flag == 1 && sts[1]->tc_cnt > 1 /*&& abs(hStereoTD->tdm_inst_ratio_idx-LRTD_STEREO_MID_IS_PRIM) > 5*/ ) @@ -569,7 +566,6 @@ void tdm_configure_enc( #ifdef DEBUG_MODE_TD dbgwrite( &hStereoTD->tdm_low_rate_mode, 2, 1, 320, "res/tdm_low_rate_mode_c" ); dbgwrite( &hStereoTD->tdm_lp_reuse_flag, 2, 1, 320, "res/tdm_lp_reuse_flag_c" ); - dbgwrite( &mod_ct, 2, 1, 320, "res/mod_ct.enc" ); #endif /*----------------------------------------------------------------* diff --git a/lib_enc/stat_enc.h b/lib_enc/stat_enc.h index b4ab7730dd..3b7d7b5901 100755 --- a/lib_enc/stat_enc.h +++ b/lib_enc/stat_enc.h @@ -1557,9 +1557,6 @@ typedef struct enc_core_structure int16_t dtx_sce_sba; /* enable use of FD CNG with transform domain cores in SCE SBA */ int16_t sba_br_sw_while_no_data; /* Indicator for SBA bitrate switch while in FRAME_NO_DATA mode */ -#ifdef DEBUG_MODE_TD - int16_t mod_ct_ST; -#endif } Encoder_State, *ENC_CORE_HANDLE; -- GitLab From dc71e1e4889a513e9365c3e32e9619d3c91d269d Mon Sep 17 00:00:00 2001 From: malenov Date: Thu, 14 Nov 2024 12:56:00 +0100 Subject: [PATCH 35/40] cleanup of obsolete debugging output --- lib_enc/ivas_decision_matrix_enc.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index 5f4db2c040..c5c58fbeba 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -223,12 +223,6 @@ void ivas_decision_matrix_enc( { st->coder_type = AUDIO; } -#ifdef DEBUG_MODE_TD - else - { - printf( "TD stereo: coder_type not changed in ivas_decision_matrix_enc().\n" ); - } -#endif #else st->coder_type = AUDIO; #endif -- GitLab From fbb7f7033db68fdf7171ae3801416f367bbc4a40 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Thu, 14 Nov 2024 13:51:07 +0100 Subject: [PATCH 36/40] add comment to switch in options.h --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 10476a4f9d..bd56720b60 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -196,7 +196,7 @@ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ #define NONBE_FIX_1208_DFT_STEREO_PLC_BURST /* Ericsson: Issue 1208, fix for overflow of sample offset counter for burst error in DFT Stereo PLC. */ #define FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE /* FhG: zero out all relevant imdct buffers in MCT decoding of channels with mct_chan_mode == MCT_CHAN_MODE_IGNORE */ -#define NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING +#define NONBE_FIX_1204_MDCT_STEREO_NOISE_EST_SCALING /* FhG: fixes for decoder-side noise level estimation in MDCT-Stereo to prevent noise bursts in stereo switching */ #define NONBE_1199_OMASA_JBM_BRATE_SW_FLUSH /* VA: issue 1199: fix bug in renderer flush in OMASA JBM bitrate switching */ #define NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* VA: issue 1200: fix bug in renderer flush in ISM JBM bitrate switching */ -- GitLab From 83f165b7451d6654383a511dcfa2c7ed41e38d94 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 18 Nov 2024 09:31:34 +0100 Subject: [PATCH 37/40] fix within NONBE_FIX_1205_TD_STEREO_MOD_CT --- lib_enc/ivas_decision_matrix_enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index c5c58fbeba..f302b71765 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -219,7 +219,7 @@ void ivas_decision_matrix_enc( #ifdef NONBE_FIX_1205_TD_STEREO_MOD_CT /* In TD stereo below 24.4 kbps we cannot overwrite the `coder_type` when it is set to TRANSITION, */ /* as it is used for TD stereo bit allocation. To ensure consistent bit allocation, it must remain unchanged on the decoder side. */ - if ( st->idchan == 0 && !( element_brate <= IVAS_16k4 && st->coder_type == TRANSITION && st->element_mode == IVAS_CPE_TD ) ) + if ( st->idchan == 0 && !( element_brate < IVAS_24k4 && st->coder_type == TRANSITION && st->element_mode == IVAS_CPE_TD ) ) { st->coder_type = AUDIO; } -- GitLab From 1bfae78760f00c37f9ea4fae4ea1dfddfe91776a Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Tue, 19 Nov 2024 14:47:30 +0100 Subject: [PATCH 38/40] add separate .prm file for the basop encoder tests --- scripts/config/self_test_basop_encoder.prm | 1149 ++++++++++++++++++++ 1 file changed, 1149 insertions(+) create mode 100644 scripts/config/self_test_basop_encoder.prm diff --git a/scripts/config/self_test_basop_encoder.prm b/scripts/config/self_test_basop_encoder.prm new file mode 100644 index 0000000000..5d9a63a5ec --- /dev/null +++ b/scripts/config/self_test_basop_encoder.prm @@ -0,0 +1,1149 @@ +// Self-test parameter file +// +// - each test must have a tag (unique name) which must be entered as a comment (you can use // /* or rem comment) +// - the following line must be the encoder command line +// - the following line must be the decoder command line +// - if the name of the output file are exactly the same as +// the name of the test vector located in ./testv directory, these files will be compared for bit-exactness +// (the easiest way how to achieve this is to use the name of the test vector itself, as shown below) + +// stereo bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, DTX on, MONO out +//../IVAS_cod -dtx -stereo ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stvST48n.wav bit +//../IVAS_dec MONO 48 bit testv/stvST48n.wav_stereo_sw_48-48_DTX_MONO.tst + +// stereo bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, DTX on, stereo out +//../IVAS_cod -dtx -stereo ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stvST48c.wav bit +//../IVAS_dec stereo48 bit testv/stvST48c.wav_stereo_sw_48-48_DTX_stereo.tst + +// stereo bitrate switching from 13.2 kbps to 128 kbps, 32kHz in, 32kHz out +../IVAS_cod -stereo ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stvST32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32c.wav_stereo_sw_32-32.tst + +// stereo at 96 kbps, 32kHz in, 32kHz out +../IVAS_cod -stereo 96000 32 testv/stvST32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32c.wav_stereo_96000_32-32.tst + +// stereo at 96 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo 96000 16 testv/stvST16c.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16c.wav_stereo_96000_16-16.tst + +// stereo at 64 kbps, 32kHz in, 32kHz out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_FB.txt -stereo 64000 32 testv/stvST32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32c.wav_stereo_64000_32-32.tst + +// stereo at 64 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo 64000 16 testv/stvST16c.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16c.wav_stereo_64000_16-16.tst + +// stereo at 48 kbps, 48 kHz in, 48 kHz out, DTX on, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_SWB.txt -stereo -dtx 48000 48 testv/stvST48n.wav bit +../IVAS_dec STEREO 48 bit testv/stvST48n.wav_stereo_48000_48-48_DTX.tst + +// stereo at 48 kbps, 32kHz in, 32kHz out +../IVAS_cod -stereo 48000 32 testv/stvST32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32c.wav_stereo_48000_32-32.tst + +// stereo at 48 kbps, 32 kHz in, 32 kHz out, DTX on +../IVAS_cod -stereo -dtx 48000 32 testv/stvST32n.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32n.wav_stereo_48000_32-32_DTX.tst + +// stereo at 48 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo 48000 16 testv/stvST16c.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16c.wav_stereo_48000_16-16.tst + +// stereo at 48 kbps, 16 kHz in, 16 kHz out, DTX on +../IVAS_cod -stereo -dtx 48000 16 testv/stvST16n.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16n.wav_stereo_48000_16-16_DTX.tst + +// stereo at 32 kbps, 48kHz in, 48kHz out, bandwidth switching +../IVAS_cod -stereo -max_band testv/bwidth_cntl.txt 32000 48 testv/stvST48c.wav bit +../IVAS_dec STEREO 48 bit testv/stvST48c.wav_stereo_32000_48-48_bandwidth_sw.tst + +// stereo at 32 kbps, 48kHz in, 48kHz out, DTX on, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -stereo -dtx 32000 48 testv/stvST48n.wav bit +../IVAS_dec STEREO 48 bit testv/stvST48n.wav_stereo_32000_48-48_DTX.tst + +// stereo at 32 kbps, 32kHz in, 48kHz out, MONO out +../IVAS_cod -stereo 32000 32 testv/stvST32c.wav bit +../IVAS_dec MONO 48 bit testv/stvST32c.wav_stereo_32000_32-48_MONO.tst + +// stereo at 32 kbps, 32kHz in, 32kHz out, DTX on, MONO out +../IVAS_cod -stereo -dtx 32000 32 testv/stvST32n.wav bit +../IVAS_dec MONO 32 bit testv/stvST32n.wav_stereo_32000_32-32_DTX_MONO.tst + +// stereo at 32 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo -dtx 32000 16 testv/stvST16n.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16n.wav_stereo_32000_16-16_DTX.tst + +// stereo at 32 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo 32000 16 testv/stvST16c.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16c.wav_stereo_32000_16-16.tst + +// stereo at 24.4 kbps, 48kHz in, 48kHz out, DTX on +../IVAS_cod -stereo -dtx 24400 48 testv/stvST48n.wav bit +../IVAS_dec STEREO 48 bit testv/stvST48n.wav_24400_48_48_DTX.txt + +// stereo at 24.4 kbps, 32kHz in, 32kHz out, DTX on +../IVAS_cod -stereo -dtx 24400 32 testv/stvST32n.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32n.wav_stereo_24400_32-32_DTX.tst + +// stereo at 24.4 kbps, 32kHz in, 32kHz out +../IVAS_cod -stereo 24400 32 testv/stvST32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32c.wav_stereo_24400_32-32.tst + +// stereo at 24.4 kbps, 16kHz in, 16kHz out, DTX on, MONO out +../IVAS_cod -stereo -dtx 24400 16 testv/stvST16n.wav bit +../IVAS_dec MONO 16 bit testv/stvST16n.wav_stereo_24400_16-16_DTX_MONO.tst + +// stereo at 24.4 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo 24400 16 testv/stvST16c.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16c.wav_stereo_24400_16-16.tst + +// stereo at 16.4 kbps, 32kHz in, 32kHz out +../IVAS_cod -stereo 16400 32 testv/stvST32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32c.wav_stereo_16400_32-32.tst + +// stereo at 16.4 kbps, 32kHz in, 16kHz out, DTX on +../IVAS_cod -stereo -dtx 16400 32 testv/stvST32n.wav bit +../IVAS_dec STEREO 16 bit testv/stvST32n.wav_stereo_16400_32-16_DTX.tst + +// stereo at 16.4 kbps, 16kHz in, 16kHz out, DTX on +../IVAS_cod -stereo -dtx 16400 16 testv/stvST16n.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16n.wav_stereo_16400_16-16_DTX.tst + +// stereo at 16.4 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo 16400 16 testv/stvST16c.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16c.wav_stereo_16400_16-16.tst + +// stereo at 13.2 kbps, 48kHz in, 48kHz out +../IVAS_cod -stereo 13200 48 testv/stvST48c.wav bit +../IVAS_dec STEREO 48 bit testv/stvST48c.wav_stereo_13200_48-48.tst + +// stereo at 13.2 kbps, 32kHz in, 32kHz out, DTX on +../IVAS_cod -stereo -dtx 13200 32 testv/stvST32n.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32n.wav_stereo_13200_32-32_DTX.tst + +// stereo at 13.2 kbps, 32kHz in, 32kHz out +../IVAS_cod -stereo 13200 32 testv/stvST32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32c.wav_stereo_13200_32-32.tst + +// stereo at 13.2 kbps, 16kHz in, 16kHz out, DTX on +../IVAS_cod -stereo -dtx 13200 16 testv/stvST16n.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16n.wav_stereo_13200_16-16_DTX.tst + +// stereo at 13.2 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo 13200 16 testv/stvST16c.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16c.wav_stereo_13200_16-16.tst + +// stereo at 128 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -stereo 128000 48 testv/stvST48c.wav bit +../IVAS_dec MONO 48 bit testv/stvST48c.wav_stereo_128000_48-48_MONO.tst + +// stereo at 128 kbps, 32kHz in, 32kHz out +../IVAS_cod -stereo 128000 32 testv/stvST32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvST32c.wav_stereo_128000_32-32.tst + +// stereo at 128 kbps, 16kHz in, 16kHz out +../IVAS_cod -stereo 128000 16 testv/stvST16c.wav bit +../IVAS_dec STEREO 16 bit testv/stvST16c.wav_stereo_128000_16-16.tst + +// Stereo downmix to bit-exact EVS at 24400 kbps, 48kHz in, 48kHz out +../IVAS_cod -stereo_dmx_evs 24400 48 testv/stvST48c.wav bit +../IVAS_dec 48 bit testv/stvST48c.wav_StereoDmxEVS_24400_48-48.tst + +// Stereo downmix to bit-exact EVS at 13200 kbps, 32kHz in, 32kHz out +../IVAS_cod -stereo_dmx_evs 13200 32 testv/stvST32c.wav bit +../IVAS_dec 32 bit testv/stvST32c.wav_StereoDmxEVS_13200_32-32.tst + +// SBA planar FOA bitrate switching from 13.2 kbps to 512 kbps, 32kHz in, 32kHz out, FOA out +../IVAS_cod -sba -1 ../scripts/switchPaths/sw_13k2_512k.bin 32 testv/stvFOA32c.wav bit +../IVAS_dec FOA 32 bit testv/stvFOA32c.wav_sw_32-32_DTX_FOA.tst + +// SBA planar 3OA bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -sba -3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv3OA48c.wav bit +../IVAS_dec 7_1_4 48 bit testv/stv3OA48c.wav_sw_48-48_7_1_4.tst + +// SBA planar 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3out +../IVAS_cod -sba -3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.wav bit +../IVAS_dec HOA348 bit testv/stv3OA48c.wav_sw_48-48_DTX_HOA3.tst + +// SBA planar 2OA bitrate switching from 13.2 kbps to 128 kbps, 32kHz in, 32kHz out, DTX on, HOA2out +../IVAS_cod -dtx -sba -2 ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv2OA32c.wav bit +../IVAS_dec HOA2 32 bit testv/stv2OA32c.wav_sw_32-32_DTX_HOA2.tst + +// SBA at 96 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -sba 1 96000 48 testv/stvFOA48c.wav bit +../IVAS_dec FOA 48 bit testv/stvFOA48c.wav_SBA_96000_48-48_FOA.tst + +// SBA at 96 kbps, 32kHz in, 32kHz out, STEREO out +../IVAS_cod -sba 1 96000 32 testv/stvFOA32c.wav bit +../IVAS_dec STEREO 32 bit testv/stvFOA32c.wav_SBA_96000_32-32_STEREO.tst + +// SBA at 80 kbps, 32kHz in, 32kHz out, HOA3 out +../IVAS_cod -sba 3 80000 32 testv/stv3OA32c.wav bit +../IVAS_dec HOA3 32 bit testv/stv3OA32c.wav_SBA_80000_32-32_HOA3.tst + +// SBA at 64 kpbs, 48kHz in, 48kHz out, BINAURAL out, DTX +../IVAS_cod -dtx -sba 1 64000 48 testv/stvFOA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvFOA48c.wav_SBA_64000_48-48_DTX_BINAURAL.tst + +// SBA at 64 kbps, 48kHz in, 48kHz out, 5_1_4 out +../IVAS_cod -sba 1 64000 48 testv/stvFOA48c.wav bit +../IVAS_dec 5_1_4 48 bit testv/stvFOA48c.wav_SBA_64000_48-48_5_1_4.tst + +// SBA at 64 kbps, 32kHz in, 32kHz out, FOA out, DTX +../IVAS_cod -dtx -sba 1 64000 32 testv/stvFOA32c.wav bit +../IVAS_dec FOA 32 bit testv/stvFOA32c.wav_SBA_64000_32-32_DTX_FOA.tst + +// SBA at 48 kbps, 48kHz in, 48kHz out, DTX on, 5_1 out +../IVAS_cod -sba 3 -dtx 48000 48 testv/stv3OA48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv3OA48c.wav_SBA_48000_48-48_DTX_5_1.tst + +// SBA at 48 kbps, 48kHz in, 48kHz out, 5_1_2 out +../IVAS_cod -sba 3 48000 48 testv/stv3OA48c.wav bit +../IVAS_dec 5_1_2 48 bit testv/stv3OA48c.wav_SBA_48000_48-48_5_1_2.tst + +// SBA at 48 kbps, 32kHz in, 32kHz out, MONO out +../IVAS_cod -sba 3 48000 32 testv/stv3OA32c.wav bit +../IVAS_dec MONO 32 bit testv/stv3OA32c.wav_SBA_48000_32-32_MONO.tst + +// SBA at 48 kbps, 32kHz in, 32kHz out, DTX on, BINAURAL out +../IVAS_cod -sba 3 -dtx 48000 32 testv/stv3OA32c.wav bit +../IVAS_dec BINAURAL 32 bit testv/stv3OA32c.wav_SBA_48000_32-32_DTX_Binaural.tst + +// SBA at 32 kbps, 48kHz in, 48kHz out, MONO out, DTX, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_FB.txt -dtx -sba 1 32000 48 testv/stvFOA48c.wav bit +../IVAS_dec MONO 48 bit testv/stvFOA48c.wav_SBA_32000_48-48_DTX_MONO.tst + +// SBA at 32 kbps, 32kHz in, 32kHz out, FOA out +../IVAS_cod -sba 1 32000 32 testv/stvFOA32c.wav bit +../IVAS_dec FOA 32 bit testv/stvFOA32c.wav_SBA_32000_32-32_FOA.tst + +// SBA at 256 kbps, 48kHz in, 48kHz out, 7_1 out +../IVAS_cod -sba 1 256000 48 testv/stvFOA48c.wav bit +../IVAS_dec 7_1 48 bit testv/stvFOA48c.wav_SBA_256000_48-48_7_1.tst + +// SBA at 256 kbps, 32kHz in, 32kHz out, FOA out +../IVAS_cod -sba 1 256000 32 testv/stvFOA32c.wav bit +../IVAS_dec FOA 32 bit testv/stvFOA32c.wav_SBA_256000_32-32_FOA.tst + +// SBA at 24.4 kbps, 32kHz in, 32kHz out, STEREO out +../IVAS_cod -sba 3 24400 32 testv/stv3OA32c.wav bit +../IVAS_dec STEREO 32 bit testv/stv3OA32c.wav_SBA_24400_32-32_stereo.tst + +// SBA at 24.4 kbps, 32kHz in, 32kHz out, DTX on, BINAURAL out +../IVAS_cod -sba 3 -dtx 24400 32 testv/stv3OA32c.wav bit +../IVAS_dec BINAURAL 32 bit testv/stv3OA32c.wav_SBA_24400_32-32_DTX_Binaural.tst + +// SBA at 192 kbps, 48kHz in, 48kHz out, HOA2 out +../IVAS_cod -sba 3 192000 48 testv/stv3OA48c.wav bit +../IVAS_dec HOA2 48 bit testv/stv3OA48c.wav_SBA_192000_48-48_HOA2.tst + +// SBA at 160 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM out +../IVAS_cod -sba 1 160000 48 testv/stvFOA48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stvFOA48c.wav_SBA_160000_48-48_BINAURAL_ROOM.tst + +// SBA at 160 kbps, 32kHz in, 32kHz out, FOA out +../IVAS_cod -sba 1 160000 32 testv/stvFOA32c.wav bit +../IVAS_dec FOA 32 bit testv/stvFOA32c.wav_SBA_160000_32-32_FOA.tst + +// SBA at 16.4 kbps, 32kHz in, 32kHz out, 7_1_4 out +../IVAS_cod -sba 3 16400 32 testv/stv3OA32c.wav bit +../IVAS_dec 7_1_4 32 bit testv/stv3OA32c.wav_SBA_16400_32-32_7_1_4.tst + +// SBA at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -sba 1 13200 48 testv/stvFOA48c.wav bit +../IVAS_dec BINAURAL 48 netsimoutput testv/stvFOA32c.wav_SBA_13200_48-48_BINAURAL.tst + +// SBA at 13.2 kbps, 32kHz in, 32kHz out, HOA3 out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -sba 3 13200 32 testv/stv3OA32c.wav bit +../IVAS_dec HOA3 32 bit testv/stv3OA32c.wav_SBA_13200_32-32_HOA3.tst + +// SBA at 128 kbps, 32kHz in, 32kHz out, BINAURAL ROOM IR out, HR +../IVAS_cod -sba 3 128000 32 testv/stv3OA32c.wav bit +../IVAS_dec -t testv/headrot_case00_3000_q.csv BINAURAL_ROOM_IR 32 bit testv/stv3OA32c.wav_SBA_128000_32-32_Binaural_room_Headrot.tst + +// SBA FOA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -sba 1 -max_band fb ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stvFOA48c.wav bit +../IVAS_dec FOA 48 bit testv/stvFOA48c.wav_sw_48-48_FOA.tst + +// SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 48 testv/stvFOA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvFOA48c.wav_sw_48-48_BINAURAL.tst + +// SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 32kHz in, 32kHz out, DTX on, FOAout +../IVAS_cod -dtx -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 32 testv/stvFOA32c.wav bit +../IVAS_dec FOA 32 bit testv/stvFOA32c.wav_sw_32-32_DTX_FOA.tst + +// SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 32kHz in, 32kHz out, DTX on, BINAURAL out +../IVAS_cod -dtx -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 32 testv/stvFOA32c_cut_.004.wav bit +../IVAS_dec BINAURAL 32 bit testv/stvFOA32c.wav_sw_32-32_DTX_BINAURAL.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.wav bit +../IVAS_dec STEREO 48 bit testv/stv3OA48c.wav_sw_48-48_STEREO.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.wav bit +../IVAS_dec MONO 48 bit testv/stv3OA48c.wav_sw_48-48_MONO.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3 out +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.wav bit +../IVAS_dec HOA3 48 bit testv/stv3OA48c.wav_sw_48-48_HOA3.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.wav bit +../IVAS_dec FOA 48 bit testv/stv3OA48c.wav_sw_48-48_FOA.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, BINAURAL out (Model from file) +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL 48 bit testv/stv3OA48c.wav_sw_48-48_BINAURAL.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, DTX on, HOA3out +../IVAS_cod -dtx -sba 3 ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv3OA48c.wav bit +../IVAS_dec HOA3 48 bit testv/stv3OA48c.wav_sw_48-48_DTX_HOA3.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 128 kbps, 32kHz in, 32kHz out, DTX on, HOA3 out +../IVAS_cod -dtx -sba 3 ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv3OA32c_cut_.004.wav bit +../IVAS_dec HOA3 32 bit testv/stv3OA32c.wav_sw_32-32_DTX_HOA3.tst + +// SBA 3OA at 96 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out default configuration +../IVAS_cod -sba 3 512000 48 testv/stv3OA48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 48 bit testv/stv3OA48c.wav_BINAURAL_ROOM_REVERB_96000_48-48.tst + +// SBA 3OA at 512 kbps, 48kHz in, 48kHz out, BINAURAL out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_SWB.txt -sba 3 512000 48 testv/stv3OA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv3OA48c.wav_SBA_512000_48-48_binaural.tst + +// SBA 3OA at 128 kbps, 48kHz in 48kHz out, BINAURAL_ROOM_REVERB rendconf sel acoustic env +../IVAS_cod -sba 3 128000 48 testv/stv3OA48c.wav bit +../IVAS_dec -render_config testv/rend_config_combined.cfg -aeid 1 BINAURAL_ROOM_REVERB 48 bit testv/stv3OA48c.pcm_SBA_128000_48-48_BinauralRoomReverb_Config_renderer_combined_AEID_1.tst + +// SBA 3OA 4ISM at 96 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out custom configuration +../IVAS_cod -sba 3 96000 48 testv/stv3OA48c.wav bit +../IVAS_dec -render_config testv/rend_config_recreation.cfg BINAURAL_ROOM_REVERB 48 bit testv/stv3OA48c.wav_BINAURAL_ROOM_REVERB_96000_48-48_custom_configuration.tst + +// SBA 2OA bitrate switching from 16.4 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -sba 2 ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stv2OA48c.wav bit +../IVAS_dec FOA 48 bit testv/stv2OA48c.wav_sw_48-48_FOA.tst + +// SBA 2OA bitrate switching from 13.2 kbps to 512 kbps, 32kHz in, 32kHz out, HOA2 out +../IVAS_cod -sba 2 ../scripts/switchPaths/sw_13k2_512k.bin 32 testv/stv2OA32c.wav bit +../IVAS_dec HOA2 32 bit testv/stv2OA32c.wav_sw_32-32_DTX_HOA2.tst + +// SBA 2OA at 384 kbps, 32kHz in, 32kHz out, STEREO out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -sba 2 384000 32 testv/stv2OA32c.wav bit +../IVAS_dec STEREO 32 bit testv/stv2OA32c.wav_SBA_384000_32-32_stereo.tst + +// Planar SBA at 48 kbps, 32kHz in, 32kHz out, BINAURAL_ROOM_REVERB out, Config renderer, HR +../IVAS_cod -sba -2 48000 32 testv/stv2OA32c.wav bit +../IVAS_dec -t testv/headrot.csv -render_config testv/rend_config_renderer.cfg BINAURAL_ROOM_REVERB 32 bit testv/stv2OA32c.pcm_planarSBA_48000_32-32_BinauralRoomReverb_Config_renderer_Headrot.tst + +// Planar SBA at 128 kbps, 48kHZ in, 32kHz out, BINAURAL_ROOM_REVERB out (Model from file), Config renderer, HR +../IVAS_cod -sba -1 128000 48 testv/stvFOA48c.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_32kHz.bin -t testv/headrot_case00_3000_q.csv -render_config testv/rend_config_renderer.cfg BINAURAL_ROOM_REVERB 32 bit testv/stvFOA48c.pcm_planarSBA_128000_48-32_BinauralRoomReverb_Config_renderer_Headrot_BinauralFile.tst + +// OSBA planar FOA 2ISM at 512 kbps, 48 kHz in, 48 kHz out, BINAURAL out +../IVAS_cod -ism_sba 2 -1 testv/stvISM1.csv testv/stvISM2.csv 512000 48 testv/stvOSBA_2ISM_FOA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvOSBA_2ISM_pFOA48c.wav_BINAURAL_512000_48-48.tst + +// OSBA planar FOA 1ISM at 256 kbps, 48 kHz in, 48 kHz out, BINAURAL out +../IVAS_cod -ism_sba 1 -1 testv/stvISM1.csv 256000 48 testv/stvOSBA_1ISM_FOA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvOSBA_1ISM_pFOA48c.wav_BINAURAL_256000_48-48.tst + +// OSBA planar 3OA 4ISM at 512 kbps, 48 kHz in, 48 kHz out, BINAURAL ROOM IR out +../IVAS_cod -ism_sba 4 -3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stvOSBA_4ISM_3OA48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stvOSBA_4ISM_p3OA48c.wav_BINAURAL_ROOM_IR_512000_48-48.tst + +// OSBA planar 2OA 4ISM at 512 kbps, 48 kHz in, 48 kHz out, BINAURAL ROOM REVERB (Model from file) out +../IVAS_cod -ism_sba 4 -2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stvOSBA_4ISM_2OA48c.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL_ROOM_REVERB 48 bit testv/stvOSBA_4ISM_p3OA48c.wav_BINAURAL_ROOM_REVERB_512000_48-48.tst + +// OSBA FOA 4ISM at 512 kbps, 48kHz in, 48kHz out, BINAURAL (Model from file) out +../IVAS_cod -ism_sba 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stvOSBA_4ISM_FOA48c.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL 48 bit testv/stvOSBA_4ISM_FOA48c.wav_BINAURAL_512000_48-48.tst + +// OSBA FOA 4ISM at 512 kbps, 32kHz in, 48kHz out, STEREO out +../IVAS_cod -ism_sba 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 32 testv/stvOSBA_4ISM_FOA32c.wav bit +../IVAS_dec STEREO 48 bit testv/stvOSBA_4ISM_FOA32c.wav_STEREO_512000_32-48.tst + +// OSBA FOA 4ISM at 384 kbps, 32kHz in, 32kHz out, BINAURAL ROOM IR (Model from file) out +../IVAS_cod -ism_sba 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 384000 32 testv/stvOSBA_4ISM_FOA32c.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_32kHz.bin BINAURAL_ROOM_IR 32 bit testv/stvOSBA_4ISM_FOA32c.wav_BINAURAL_384000_32-32.tst + +// OSBA FOA 4ISM at 256 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -ism_sba 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stvOSBA_4ISM_FOA48c.wav bit +../IVAS_dec FOA 48 bit testv/stvOSBA_4ISM_FOA48c.wav_FOA_256000_48-48.tst + +// OSBA FOA 3ISM at 128 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -ism_sba 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_FOA48c.wav bit +../IVAS_dec 7_1_4 48 bit testv/stvOSBA_3ISM_FOA48c.wav_7_1_4_128000_48-48.tst + +// OSBA FOA 2ISM at 64 kbps, 48kHz in, 48kHz out, HOA3 out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -ism_sba 2 1 testv/stvISM1.csv testv/stvISM2.csv 64000 48 testv/stvOSBA_2ISM_FOA48c.wav bit +../IVAS_dec HOA3 48 bit testv/stvOSBA_2ISM_FOA48c.wav_HOA3_64000_48-48.tst + +// OSBA FOA 1ISM at 48 kbps, 16kHz in, 16kHz out, BINAURAL_ROOM_REVERB (Model from file) out +../IVAS_cod -ism_sba 1 1 testv/stvISM1.csv 32000 16 testv/stvOSBA_1ISM_FOA16c.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_16kHz.bin BINAURAL_ROOM_REVERB 16 bit testv/stvOSBA_1ISM_FOA16c.wav_BINAURAL_ROOM_REVERB_32000_16-16.tst + +// OSBA FOA 1ISM at 32 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -ism_sba 1 1 testv/stvISM1.csv 32000 48 testv/stvOSBA_1ISM_FOA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvOSBA_1ISM_FOA48c.wav_BINAURAL_32000_48-48.tst + +// OSBA 3OA 4ISM bitrate switching 16.4 to 512, 48kHz in, 48kHz out, BINAURAL out, headtracking +../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stvOSBA_4ISM_3OA48c.wav bit +../IVAS_dec -t testv/headrot.csv BINAURAL 48 bit testv/stvOSBA_4ISM_3OA48c.wav_BINAURAL_sw_16k4_512k_48-48.tst + +// OSBA 3OA 4ISM bitrate switching 13.2 to 512, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stvOSBA_4ISM_3OA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvOSBA_4ISM_3OA48c.wav_BINAURAL_sw_13k2_512k_48-48.tst + +// OSBA 3OA 4ISM bitrate switching 13.2 to 512, 32kHz in, 48kHz out, EXT out +../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_13k2_512k.bin 32 testv/stvOSBA_4ISM_3OA32c.wav bit +../IVAS_dec EXT 48 bit testv/stvOSBA_4ISM_3OA32c.wav_EXT_sw_13k2_512k_32-48.tst + +// OSBA 3OA 4ISM at 64 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out +../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 64000 48 testv/stvOSBA_4ISM_3OA48c.wav bit +../IVAS_dec -render_config testv/rend_config_recreation.cfg BINAURAL_ROOM_REVERB 48 bit testv/stvOSBA_4ISM_3OA48c.wav_BINAURAL_ROOM_REVERB_64000_48-48_custom_configuration.tst + +// OSBA 3OA 4ISM at 512 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out +../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stvOSBA_4ISM_3OA48c.wav bit +../IVAS_dec -render_config testv/rend_config_hospital_patientroom.cfg BINAURAL_ROOM_REVERB 48 bit testv/stvOSBA_4ISM_3OA48c.wav_BINAURAL_ROOM_REVERB_512000_48-48_custom_configuration.tst + + +// OSBA 3OA 4ISM at 48 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out +../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 48000 48 testv/stvOSBA_4ISM_3OA48c.wav bit +../IVAS_dec -render_config testv/rend_config_recreation.cfg BINAURAL_ROOM_REVERB 48 bit testv/stvOSBA_4ISM_3OA48c.wav_BINAURAL_ROOM_REVERB_48000_48-48_custom_configuration.tst + +// OSBA 3OA 4ISM at 16.4 kbps, 48kHz in, 48kHz out, 5_1 out +../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 16400 48 testv/stvOSBA_4ISM_3OA48c.wav bit +../IVAS_dec 5_1 48 bit testv/stvOSBA_4ISM_3OA48c.wav_5_1_16400_48-48.tst + +// OSBA 3OA 3ISM at 160 kbps, 16kHz in, 48kHz out, BINAURAL ROOM IR out +../IVAS_cod -ism_sba 3 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 160000 16 testv/stvOSBA_3ISM_3OA16c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stvOSBA_3ISM_3OA416c.wav_BINAURAL_ROOM_IR_160000_16-48.tst + +// OSBA 3OA 3ISM at 128 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -ism_sba 3 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_3OA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvOSBA_3ISM_3OA48c.wav_BINAURAL_128000_48-48.tst + +// OSBA 3OA 2ISM at 256 kbps, 48kHz in, 48kHz out, 7_1 out +../IVAS_cod -ism_sba 2 3 testv/stvISM1.csv testv/stvISM2.csv 256000 48 testv/stvOSBA_2ISM_3OA48c.wav bit +../IVAS_dec 7_1 48 bit testv/stvOSBA_2ISM_3OA48c.wav_7_1_256000_48-48.tst + +// OSBA 3OA 2ISM at 256 kbps, 32kHz in, 32kHz out, HOA3 out +../IVAS_cod -ism_sba 2 3 testv/stvISM1.csv testv/stvISM2.csv 256000 32 testv/stvOSBA_2ISM_3OA32c.wav bit +../IVAS_dec HOA3 32 bit testv/stvOSBA_2ISM_3OA32c.wav_HOA3_256000_32-32.tst + +// OSBA 3OA 1ISM at 512 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -ism_sba 1 3 testv/stvISM1.csv 512000 48 testv/stvOSBA_1ISM_3OA48c.wav bit +../IVAS_dec EXT 48 bit testv/stvOSBA_1ISM_3OA48c.wav_EXT_512000_48-48.tst + +// OSBA 3ISM 3OA at bitrate switching 13.2 to 512 kbps, 48kHz in, 32kHz out, BINAURAL ROOM REVERB out +../IVAS_cod -ism_sba 3 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stvOSBA_3ISM_3OA48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 32 bit testv/stvOSBA_3ISM_3OA48c.wav_BINAURAL_ROOM_REVERB_sw_48-32.tst + +// OSBA 3ISM 2OA at bitrate switching 13.2 to 512 kbps, 48kHz in, 32kHz out, STEREO out +../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stvOSBA_3ISM_2OA48c.wav bit +../IVAS_dec STEREO 32 bit testv/stvOSBA_3ISM_2OA48c.wav_STEREO_sw_48-32.tst + +// OSBA 2OA 4ISM at 384 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -ism_sba 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 384000 48 testv/stvOSBA_4ISM_2OA48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvOSBA_4ISM_2OA48c.wav_BINAURAL_384000_48-48.tst + +// OSBA 2OA 3ISM at 96 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 96000 48 testv/stvOSBA_3ISM_2OA48c.wav bit +../IVAS_dec STEREO 48 bit testv/stvOSBA_3ISM_2OA48c.wav_STEREO_96000_48-48.tst + +// OSBA 2OA 3ISM at 384 kbps, 16kHz in, 16kHz out, MONO out +../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 384000 16 testv/stvOSBA_3ISM_2OA16c.wav bit +../IVAS_dec MONO 16 bit testv/stvOSBA_3ISM_2OA16c.wav_MONO_256000_16-16.tst + +// OSBA 2OA 2ISM at 64 kbps, 32kHz in, 16kHz out, BINAURAL ROOM REVERB out +../IVAS_cod -ism_sba 2 2 testv/stvISM1.csv testv/stvISM2.csv 48000 32 testv/stvOSBA_2ISM_2OA32c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 16 bit testv/stvOSBA_2ISM_2OA32c.wav_MONO_64000_32-16.tst + +// OSBA 2OA 2ISM at 48 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -ism_sba 2 2 testv/stvISM1.csv testv/stvISM2.csv 48000 48 testv/stvOSBA_2ISM_2OA48c.wav bit +../IVAS_dec MONO 48 bit testv/stvOSBA_2ISM_2OA48c.wav_MONO_48000_48-48.tst + +// OSBA 2OA 1ISM at 24.4 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -ism_sba 1 2 testv/stvISM1.csv 24400 48 testv/stvOSBA_1ISM_2OA48c.wav bit +../IVAS_dec FOA 48 bit testv/stvOSBA_1ISM_2OA48c.wav_FOA_24400_48-48.tst + +// OMASA 2Dir2TC 4ISM at br sw techs 13.2 to 512 kbps start 384 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_384k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 48 bit testv/stvOMASA_4ISM_2MASA2TC48c.wav_BINAURAL_ROOM_REVERB_sw_48-48.tst + +// OMASA 2Dir2TC 4ISM at 64 kbps, 48kHz in, 48kHz out, HOA2 out +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv NULL NULL testv/stvISM4.csv testv/stv2MASA2TC48c.met 64000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit +../IVAS_dec HOA2 48 bit testv/stvOMASA_4ISM_2MASA2TC48c.wav_HOA2_64000_48-48.tst + +// OMASA 2Dir2TC 4ISM at 384 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA2TC48c.met 384000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stvOMASA_4ISM_2MASA2TC48c.wav_EXT_384000_48-48.tst + +// OMASA 2Dir2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv NULL testv/stvISM4.csv testv/stv2MASA2TC48c.met 256000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit +../IVAS_dec EXT 48 netsimoutput testv/stvOMASA_4ISM_2MASA2TC48c.wav_EXT_256000_48-48.tst + +// OMASA 2Dir2TC 4ISM at 192 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA2TC48c.met 192000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit +../IVAS_dec STEREO 48 bit testv/stvOMASA_4ISM_2MASA2TC48c.wav_STEREO_192000_48-48.tst + +// OMASA 2Dir2TC 4ISM at 13.2 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA2TC48c.met 13200 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit +../IVAS_dec MONO 48 bit testv/stvOMASA_4ISM_2MASA2TC48c.wav_MONO_13200_48-48.tst + +// OMASA 2Dir2TC 4ISM 48 kbps 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out custom configuration +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA2TC48c.met 48000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit +../IVAS_dec -render_config testv/rend_config_hospital_patientroom.cfg BINAURAL_ROOM_REVERB 48 bit testv/stvOMASA_4ISM_2MASA2TC48c.wav_BINAURAL_ROOM_REVERB_48000_48-48_custom_configuration.tst + +// OMASA 2Dir2TC 3ISM at br sw techs 13.2 to 512 kbps start 160 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_160k_omasatechs_3ism.bin 48 testv/stvOMASA_3ISM_2MASA2TC48c.wav bit +../IVAS_dec MONO 48 netsimoutput testv/stvOMASA_3ISM_2MASA2TC48c.wav_MONO_sw_48-48.tst + +// OMASA 2Dir2TC 3ISM at 80 kbps, 32kHz in, 16kHz out, 5.1.4 out +../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA2TC48c.met 80000 32 testv/stvOMASA_3ISM_2MASA2TC32c.wav bit +../IVAS_dec 5_1_4 16 bit testv/stvOMASA_3ISM_2MASA2TC32c.wav_5_1_4_80000_32-16.tst + +// OMASA 2Dir2TC 3ISM at 48 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA2TC48c.met 48000 48 testv/stvOMASA_3ISM_2MASA2TC48c.wav bit +../IVAS_dec MONO 48 bit testv/stvOMASA_3ISM_2MASA2TC48c.wav_MONO_48000_48-48.tst + +// OMASA 2Dir2TC 3ISM at 32 kbps, 48kHz in, 48kHz out, 5.1.2 out +../IVAS_cod -ism_masa 3 2 NULL NULL NULL testv/stv2MASA2TC48c.met 32000 48 testv/stvOMASA_3ISM_2MASA2TC48c.wav bit +../IVAS_dec 5_1_2 48 bit testv/stvOMASA_3ISM_2MASA2TC48c.wav_5_1_2_32000_48-48.tst + +// OMASA 2Dir2TC 2ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, 7.1 out +../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv NULL testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit +../IVAS_dec 7_1 48 netsimoutput testv/stvOMASA_2ISM_2MASA2TC48c.wav_7_1_sw_48-48.tst + +// OMASA 2Dir2TC 2ISM at 32 kbps, 48kHz in, 48kHz out, STEREO out, FER at 5% +../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv testv/stvISM2.csv testv/stv2MASA2TC48c.met 32000 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit +../IVAS_dec STEREO 48 bit testv/stvOMASA_2ISM_2MASA2TC48c.wav_STEREO_32000_48-48.tst + +// OMASA 2Dir2TC 1ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_IR out +../IVAS_cod -ism_masa 1 2 testv/stvISM1.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_1ism.bin 48 testv/stvOMASA_1ISM_2MASA2TC48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 netsimoutput testv/stvOMASA_1ISM_2MASA2TC48c.wav_BINAURAL_ROOM_IR_sw_48-48.tst + +// OMASA 2Dir2TC 1ISM at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -ism_masa 1 2 NULL testv/stv2MASA2TC48c.met 13200 48 testv/stvOMASA_1ISM_2MASA2TC48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stvOMASA_1ISM_2MASA2TC48c.wav_BINAURAL_13200_48-48.tst + +// OMASA 2Dir1TC 4ISM at 24.4 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA1TC48c.met 24400 48 testv/stvOMASA_4ISM_2MASA1TC48c.wav bit +../IVAS_dec STEREO 48 bit testv/stvOMASA_4ISM_2MASA1TC48c.wav_STEREO_24400_48-48.tst + +// OMASA 2Dir1TC 3ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 32kHz out, STEREO out +../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA1TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_3ism.bin 48 testv/stvOMASA_3ISM_2MASA1TC48c.wav bit +../IVAS_dec STEREO 32 netsimoutput testv/stvOMASA_3ISM_2MASA1TC48c.wav_STEREO_sw_48-32.tst + +// OMASA 2Dir1TC 3ISM at 96 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA1TC48c.met 96000 48 testv/stvOMASA_3ISM_2MASA1TC48c.wav bit +../IVAS_dec MONO 48 bit testv/stvOMASA_3ISM_2MASA1TC48c.wav_MONO_96000_48-48.tst + +// OMASA 2Dir1TC 3ISM at 24.4 kbps, 48kHz in, 16kHz out, FOA out +../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA1TC48c.met 24400 48 testv/stvOMASA_3ISM_2MASA1TC48c.wav bit +../IVAS_dec FOA 16 bit testv/stvOMASA_3ISM_2MASA1TC48c.wav_FOA_24400_48-16.tst + +// OMASA 2Dir1TC 1ISM at 512 kbps, 32kHz in, 48kHz out, 7.1.4 out +../IVAS_cod -ism_masa 1 1 testv/stvISM1.csv testv/stv2MASA1TC48c.met 512000 32 testv/stvOMASA_1ISM_2MASA1TC32c.wav bit +../IVAS_dec 7_1_4 48 bit testv/stvOMASA_1ISM_2MASA1TC32c.wav_7_1_4_512000_32-48.tst + +// OMASA 1Dir2TC 4ISM at br sw techs 13.2 to 512 kbps start 80 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -ism_masa 4 2 NULL testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_80k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_1MASA2TC48c.wav bit +../IVAS_dec FOA 48 netsimoutput testv/stvOMASA_4ISM_1MASA2TC48c.wav_FOA_sw_48-48.tst + +// OMASA 1Dir2TC 4ISM at 80 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA2TC48c.met 80000 48 testv/stvOMASA_4ISM_1MASA2TC48c.wav bit +../IVAS_dec MONO 48 bit testv/stvOMASA_4ISM_1MASA2TC48c.wav_MONO_80000_48-48.tst + +// OMASA 1Dir2TC 4ISM at 32 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA2TC48c.met 32000 48 testv/stvOMASA_4ISM_1MASA2TC48c.wav bit +../IVAS_dec FOA 48 bit testv/stvOMASA_4ISM_1MASA2TC48c.wav_FOA_32000_48-48.tst + +// OMASA 1Dir2TC 3ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 32kHz in, 48kHz out, 5.1.2 out +../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv1MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_3ism.bin 32 testv/stvOMASA_3ISM_1MASA2TC32c.wav bit +../IVAS_dec 5_1_2 48 netsimoutput testv/stvOMASA_3ISM_1MASA2TC32c.wav_5_1_2_sw_32-48.tst + +// OMASA 1Dir2TC 3ISM at 32 kbps, 48kHz in, 16kHz out, STEREO out +../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv1MASA2TC48c.met 32000 48 testv/stvOMASA_3ISM_1MASA2TC48c.wav bit +../IVAS_dec STEREO 16 bit testv/stvOMASA_3ISM_1MASA2TC48c.wav_STEREO_32000_48-16.tst + +// OMASA 1Dir2TC 3ISM at 160 kbps, 16kHz in, 32kHz out, HOA3 out +../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv1MASA2TC48c.met 160000 16 testv/stvOMASA_3ISM_1MASA2TC16c.wav bit +../IVAS_dec HOA3 32 bit testv/stvOMASA_3ISM_1MASA2TC16c.wav_HOA3_160000_16-32.tst + +// OMASA 1Dir2TC 2ISM at 256 kbps, 48kHz in, 32kHz out, BINAURAL_ROOM_IR out +../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv NULL testv/stv1MASA2TC48c.met 256000 48 testv/stvOMASA_2ISM_1MASA2TC48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 32 bit testv/stvOMASA_2ISM_1MASA2TC48c.wav_BINAURAL_ROOM_IR_256000_48-32.tst + +// OMASA 1Dir2TC 1ISM at 128 kbps, 48kHz in, 48kHz out, EXT out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_SWB.txt -ism_masa 1 2 testv/stvISM1.csv testv/stv1MASA2TC48c.met 128000 48 testv/stvOMASA_1ISM_1MASA2TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stvOMASA_1ISM_1MASA2TC48c.wav_EXT_128000_48-48.tst + +// OMASA 1Dir1TC 4ISM at br sw techs 13.2 to 512 kbps start 32 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_32k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit +../IVAS_dec BINAURAL 48 netsimoutput testv/stvOMASA_4ISM_1MASA1TC48c.wav_BINAURAL_sw_48-48.tst + +// OMASA 1Dir1TC 4ISM at 48 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out +../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met 48000 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 48 bit testv/stvOMASA_4ISM_1MASA1TC48c.wav_BINAURAL_ROOM_REVERB_48000_48-48.tst + +// OMASA 1Dir1TC 4ISM 48 kbps 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out custom configuration +../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met 48000 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit +../IVAS_dec -render_config testv/rend_config_hospital_patientroom.cfg BINAURAL_ROOM_REVERB 48 bit testv/stvOMASA_4ISM_1MASA1TC48c.wav_BINAURAL_ROOM_REVERB_48000_48-48_custom_configuration.tst + +// OMASA 1Dir1TC 3ISM at 64 kbps, 32kHz in, 32kHz out, BINAURAL out +../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv1MASA1TC48c.met 64000 32 testv/stvOMASA_3ISM_1MASA1TC32c.wav bit +../IVAS_dec BINAURAL 32 bit testv/stvOMASA_3ISM_1MASA1TC32c.wav_BINAURAL_64000_32-32.tst + +// OMASA 1Dir1TC 2ISM at 16.4 kbps, 16kHz in, 48kHz out, 5.1 out +../IVAS_cod -ism_masa 2 1 testv/stvISM1.csv testv/stvISM2.csv testv/stv1MASA1TC48c.met 16400 16 testv/stvOMASA_2ISM_1MASA1TC16c.wav bit +../IVAS_dec 5_1 48 bit testv/stvOMASA_2ISM_1MASA1TC16c.wav_5_1_16400_16-48.tst + +// Multi-channel 7_1_4 bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 32kHz out, STEREO out +../IVAS_cod -mc 7_1_4 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv714MC48c.wav bit +../IVAS_dec STEREO 32 bit testv/stv714MC48c.wav_sw_48-32_stereo.tst + +// Multi-channel 7_1_4 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3 out +../IVAS_cod -mc 7_1_4 ../scripts/switchPaths/sw_mctech_5fr.bin 48 testv/stv714MC48c.wav bit +../IVAS_dec HOA3 48 bit testv/stv51MC48c.wav_sw_48-48_HOA3.tst + +// Multi-channel 7_1_4 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -mc 7_1_4 ../scripts/switchPaths/sw_mctech_5fr.bin 48 testv/stv714MC48c.wav bit +../IVAS_dec 7_1_4 48 bit testv/stv714MC48c.wav_sw_48-48_7_1_4.tst + +// Multi-channel 7_1_4 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, BINAURAL out (Model from file) +../IVAS_cod -mc 7_1_4 ../scripts/switchPaths/sw_mctech_5fr.bin 48 testv/stv714MC48c.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL 48 bit testv/stv51MC48c.wav_sw_48-48_BINAURAL.tst + +// Multi-channel 7_1_4 at 96 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -mc 7_1_4 96000 48 testv/stv714MC48c.wav bit +../IVAS_dec STEREO 48 bit testv/stv714MC48c.wav_MC714_96000_48-48_Stereo.tst + +// Multi-channel 7_1_4 at 64 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -mc 7_1_4 64000 48 testv/stv714MC48c.wav bit +../IVAS_dec MONO 48 bit testv/stv714MC48c.wav_MC714_64000_48-48_MONO.tst + +// Multi-channel 7_1_4 at 512 kbps, 48kHz in, 48 kHz out, BINAURAL_ROOM_REVERB out default configuration +../IVAS_cod -mc 7_1_4 512000 48 testv/stv714MC48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 48 bit testv/stv71MC48c.wav_BINAURAL_ROOM_REVERB_512000_48-48.tst + +// Multi-channel 7_1_4 at 48 kbps, 48kHz in, 48kHz out, MONO out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_SWB.txt -mc 7_1_4 48000 48 testv/stv714MC48c.wav bit +../IVAS_dec MONO 48 bit testv/stv714MC48c.wav_MC714_48000_48-48_Mono_bwsw.tst + +// Multi-channel 7_1_4 at 256 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -mc 7_1_4 256000 48 testv/stv714MC48c.wav bit +../IVAS_dec 7_1_4 48 netsimoutput testv/stv714MC48c.wav_MC714_256000_48-48_7_1_4.tst + +// Multi-channel 7_1_4 at 160 kbps, 48kHz in, 48 kHz out, BINAURAL_ROOM_REVERB out default configuration +../IVAS_cod -mc 7_1_4 160000 48 testv/stv714MC48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 48 bit testv/stv71MC48c.wav_BINAURAL_ROOM_REVERB_160000_48-48.tst + +// Multi-channel 7_1 bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 16kHz out, 7_1 out +../IVAS_cod -mc 7_1 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv71MC48c.wav bit +../IVAS_dec 7_1 16 bit testv/stv71MCMC48c.wav_sw_48-16_7_1.tst + +// Multi-channel 7_1 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, BINAURAL out (model from file), head rotation +../IVAS_cod -mc 7_1 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv71MC48c.wav bit +../IVAS_dec -t testv/headrot.csv -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL 48 bit testv/stv71C48c.wav_sw_48-48_Binaural_model_file_headrot.tst + +// Multi-channel 7_1 at 512 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out Config renderer +../IVAS_cod -mc 7_1 512000 48 testv/stv71MC48c.wav bit +../IVAS_dec -render_config testv/rend_config_renderer.cfg BINAURAL_ROOM_REVERB 48 bit testv/stv71MC48c.wav_MC71_512000_48-48_MC_Config_renderer.tst + +// Multi-channel 5_1_4 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 32kHz out, 5_1_4 out +../IVAS_cod -mc 5_1_4 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv514MC48c.wav bit +../IVAS_dec 5_1_4 32 bit testv/stv514MC48c.wav_sw_48-32_5_1_4.tst + +// Multi-channel 5_1_4 at 512 kbps, 48kHz in, 48 kHz out, BINAURAL_ROOM_REVERB out default configuration +../IVAS_cod -mc 5_1_4 512000 48 testv/stv514MC48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 48 bit testv/stv51MC48c.wav_BINAURAL_ROOM_REVERB_512000_48-48.tst + +// Multi-channel 5_1_4 at 48 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_IR out, HR +../IVAS_cod -mc 5_1_4 48000 48 testv/stv514MC48c.wav bit +../IVAS_dec -t testv/headrot.csv BINAURAL_ROOM_IR 48 bit testv/stv514MC48c.wav_MC514_48000_48-48_BinauralRoom_Headrot.tst + +// Multi-channel 5_1_2 bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, 5_1_2 out +../IVAS_cod -mc 5_1_2 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv512MC48c.wav bit +../IVAS_dec 5_1_2 48 bit testv/stv512MC48c.wav_sw_48-48_5_1_2.tst + +// Multi-channel 5_1_2 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL_ROOM out +../IVAS_cod -mc 5_1_2 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv512MC48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 16 bit testv/stv512MC48c.wav_sw_48-16_Binaural_room.tst + +// Multi-channel 5_1_2 at 80 kbps, 48kHz in, 48kHz out, 5_1 out +../IVAS_cod -mc 5_1_2 80000 48 testv/stv512MC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv512MC48c.wav_MC512_80000_48-48_5_1.tst + +// Multi-channel 5_1_2 at 64 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out Config renderer, HR +../IVAS_cod -mc 5_1_2 64000 48 testv/stv512MC48c.wav bit +../IVAS_dec -render_config testv/rend_config_renderer.cfg -t testv/headrot_case04_3000_q.csv BINAURAL_ROOM_REVERB 48 bit testv/stv512MC48c.wav_MC512_64000_48-48_MC_Config_renderer-HR.tst + +// Multi-channel 5_1_2 at 32 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -mc 5_1_2 32000 48 testv/stv512MC48c.wav bit +../IVAS_dec STEREO 48 bit testv/stv512MC48c.wav_MC512_32000_48-48_Stereo.tst + +// Multi-channel 5_1_2 at 160 kbps, 48kHz in, 48kHz out, 5_1_2 out +../IVAS_cod -mc 5_1_2 160000 48 testv/stv512MC48c.wav bit +../IVAS_dec 5_1_2 48 bit testv/stv512MC48c.wav_MC512_160000_48-48_5_1_2.tst + +// Multi-channel 5_1 bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, BINAURAL out, FER at 10%, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -mc 5_1 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv51MC48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv51MC48c.wav_sw_48-48_binaural.tst + +// Multi-channel 5_1 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, 5_1 out +../IVAS_cod -mc 5_1 ../scripts/switchPaths/sw_mctech_5fr.bin 48 testv/stv51MC48c.wav bit +../IVAS_dec HOA3 48 bit testv/stv51MC48c.wav_sw_48-48_5_1.tst + +// Multi-channel 5_1 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -mc 5_1 ../scripts/switchPaths/sw_mctech_5fr.bin 48 testv/stv51MC48c.wav bit +../IVAS_dec 7_1_4 48 bit testv/stv51MC48c.wav_sw_48-48_7_1_4.tst + +// Multi-channel 5_1 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL_ROOM_REVERB out +../IVAS_cod -mc 5_1 ../scripts/switchPaths/sw_mctech_5fr.bin 48 testv/stv51MC48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 16 bit testv/stv51MC48c.wav_sw_48-16_Binaural_room.tst + +// Multi-channel 5_1 bitrate switching from 13.2 kbps to 512 kbps, 32kHz in, 48kHz out, BINAURAL_ROOM_IR out +../IVAS_cod -mc 5_1 ../scripts/switchPaths/sw_mctech_5fr.bin 32 testv/stv51MC32c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv51MC32c.wav_sw_32-48_Binaural_room.tst + +// Multi-channel 5_1 at 96 kbps, 48kHz in, 48kHz out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_FB.txt -mc 5_1 96000 48 testv/stv51MC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv51MC48c.wav_MC51_96000_48-48_5_1.tst + +// Multi-channel 5_1 at 80 kbps, 48kHz in, 32kHz out, BINAURAL_ROOM_REVERB out Config renderer, HR +../IVAS_cod -mc 5_1 80000 48 testv/stv51MC48c.wav bit +../IVAS_dec -render_config testv/rend_config_renderer.cfg -t ../scripts/trajectories/full-circle-4s.csv BINAURAL_ROOM_REVERB 32 bit testv/stv51MC48c.wav_MC51_80000_48-32_MC_Config_renderer.tst + +// Multi-channel 5_1 at 64 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -mc 5_1 64000 48 testv/stv51MC48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv51MC48c.wav_MC51_64000_48-48_Binaural.tst + +// Multi-channel 5_1 at 512 kbps, 48kHz in, 48 kHz out, BINAURAL_ROOM_REVERB out default configuration +../IVAS_cod -mc 5_1 512000 48 testv/stv51MC48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 48 bit testv/stv51MC48c.wav_BINAURAL_ROOM_REVERB_512000_48-48.tst + +// Multi-channel 5_1 at 48 kbps, 48kHz in, 48kHz out +../IVAS_cod -mc 5_1 48000 48 testv/stv51MC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv51MC48c.wav_MC51_48000_48-48_5_1.tst + +// Multi-channel 5_1 at 384 kbps, 48kHz in, 48kHz out +../IVAS_cod -mc 5_1 384000 48 testv/stv51MC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv51MC48c.wav_MC51_384000_48-48_5_1.tst + +// Multi-channel 5_1 at 32 kbps, 48kHz in 48kHz out, BINAURAL_ROOM_REVERB out custom acoustic environment with a sequence (ParamBin) +../IVAS_cod -mc 5_1 32000 48 testv/stv51MC48c.wav bit +../IVAS_dec -render_config testv/rend_config_combined.cfg -aeid testv/aeid3.txt BINAURAL_ROOM_REVERB 48 bit testv/stv51MC48c.wav_MC51_32000_48-48_MC_reverb_sequence.tst + +// Multi-channel 5_1 at 256 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -mc 5_1 256000 48 testv/stv51MC48c.wav bit +../IVAS_dec STEREO 48 bit testv/stv51MC48c.wav_MC51_256000_48-48_stereo.tst + +// Multi-channel 5_1 at 24.4 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -mc 5_1 24400 48 testv/stv51MC48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv51MC48c.wav_MC51_24400_48-48_Binaural.tst + +// Multi-channel 5_1 at 192 kbps, 48kHz in, 48kHz out, BINAURAL ROOM IR out +../IVAS_cod -mc 5_1 192000 48 testv/stv51MC48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv51MC48c.wav_MC51_192000_48-48_BinauralRoom.tst + +// Multi-channel 5_1 at 13.2 kbps, 48kHz in, 48kHz out +../IVAS_cod -mc 5_1 13200 48 testv/stv51MC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv51MC48c.wav_MC51_13200_48-48_5_1.tst + +// Multi-channel 5_1 at 128 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -mc 5_1 128000 48 testv/stv51MC48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv51MC48c.wav_MC51_128000_48-48_Binaural.tst + +// MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec EXT 48 netsimoutput testv/stv2MASA2TC48c.wav_sw_48-48_EXT.tst + +// MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv2MASA2TC48c.wav_sw_48-48_BINAURAL.tst + +// MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, 7_1 out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec 7_1 48 bit testv/stv2MASA2TC48c.wav_sw_48-48_7_1.tst + +// MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec BINAURAL 16 netsimoutput testv/stv2MASA2TC48c.wav_sw_48-16_BINAURAL.tst + +// MASA 2dir 2TC at 96 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 96000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stv2MASA2TC48c.wav_96000_48-48_EXT.tst + +// MASA 2dir 2TC at 64 kbps, 48kHz in, 48kHz out, EXTERNAL out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 64000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stv2MASA2TC48c.wav_64000_48-48_external.tst + +// MASA 2dir 2TC at 512 kbps, 48kHz in, 48kHz out, 5_1 out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 512000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv2MASA2TC48c.wav_512000_48-48_5_1.tst + +// MASA 2dir 2TC at 48 kbps, 48kHz in, 48kHz out, 5_1 out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_FB.txt -masa 2 testv/stv2MASA2TC48c.met 48000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv2MASA2TC48c.wav_48000_48-48_5_1.tst + +// MASA 2dir 2TC at 384 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 384000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv2MASA2TC48c.wav_384000_48-48_BinauralRoom.tst + +// MASA 2dir 2TC at 32 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 32000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stv2MASA2TC48c.wav_32000_48-48_EXT.tst + +// MASA 2dir 2TC at 256 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 256000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stv2MASA2TC48c.wav_256000_48-48_EXT.tst + +// MASA 2dir 2TC at 192 kbps, 48kHz in, 48kHz out, 5_1_4 out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 192000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec 5_1_4 48 bit testv/stv2MASA2TC48c.wav_192000_48-48_5_1_4.tst + +// MASA 2dir 2TC at 160 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 160000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stv2MASA2TC48c.wav_160000_48-48_EXT.tst + +// MASA 2dir 2TC at 128 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 128000 48 testv/stv2MASA2TC48c.wav bit +../IVAS_dec FOA 48 bit testv/stv2MASA2TC48c.wav_128000_48-48_FOA.tst + +// MASA 2dir 1TC at 80 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -masa 1 testv/stv2MASA1TC48c.met 80000 48 testv/stv2MASA1TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stv2MASA1TC48c.wav_80000_48-48_EXT.tst + +// MASA 2dir 1TC at 24.4 kbps, 48kHz in, 32kHz out, EXT out +../IVAS_cod -masa 1 testv/stv2MASA1TC48c.met 24400 48 testv/stv2MASA1TC48c.wav bit +../IVAS_dec EXT 32 bit testv/stv2MASA1TC48c.wav_24400_48-32_EXT.tst + +// MASA 2dir 1TC at 128 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -masa 1 testv/stv2MASA1TC48c.met 128000 48 testv/stv2MASA1TC48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv2MASA1TC48c.wav_128000_48-48_BINAURAL.tst + +// MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec MONO 48 bit testv/stv1MASA2TC48n.wav_sw_48-48_MONO.tst + +// MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, DTX on, BINAURAL out +../IVAS_cod -dtx -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv1MASA2TC48n.wav_sw_48-48_DTX_BINAURAL.tst + +// MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, BINAURAL out (Model from file) +../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL 48 bit testv/stv1MASA2TC48n.wav_sw_48-48_BINAURAL.tst + +// MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, 7_1 out +../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec 7_1 48 bit testv/stv1MASA2TC48n.wav_sw_48-48_7_1.tst + +// MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 32kHz out, MONO out +../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec MONO 32 netsimoutput testv/stv1MASA2TC48n.wav_sw_48-32_MONO.tst + +// MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out +../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec BINAURAL 16 netsimoutput testv/stv1MASA2TC48n.wav_sw_48-16_BINAURAL.tst + +// MASA 1dir 2TC at 96 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 96000 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec MONO 48 bit testv/stv1MASA2TC48c.wav_96000_48-48_MONO.tst + +// MASA 1dir 2TC at 80 kbps, 32kHz in, 16kHz out, STEREO out +../IVAS_cod -masa 2 testv/stv1MASA2TC32c.met 80000 32 testv/stv1MASA2TC32c.wav bit +../IVAS_dec STEREO 16 bit testv/stv1MASA2TC32c.wav_80000_32-16_STEREO.tst + +// MASA 1dir 2TC at 64 kbps, 48kHz in, 48kHz out, EXT out +../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 64000 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec EXT 48 bit testv/stv1MASA2TC48c.wav_64000_48-48_EXT.tst + +// MASA 1dir 2TC at 48 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 48000 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec 7_1_4 48 bit testv/stv1MASA2TC48c.wav_48000_48-48_7_1_4.tst + +// MASA 1dir 2TC at 32.0 kbps, 48kHz in, 48kHz out, DTX on, 5_1 out +../IVAS_cod -dtx -masa 2 testv/stv1MASA2TC48n.met 32000 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec 5_1 48 bit testv/stv1MASA2TC48n.wav_32000_48-48_DTX_5_1.tst + +// MASA 1dir 2TC at 32 kbps, 48kHz in, 48kHz out, BINAURAL ROOM IR out +../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 32000 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv1MASA2TC48c.wav_32000_48-48_BinauralRoom.tst + +// MASA 1dir 2TC at 256 kbps, 48kHz in, 48kHz out, 5_1 out +../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 256000 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv1MASA2TC48c.wav_256000_48-48_5_1.tst + +// MASA 1dir 2TC at 24.4 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 24400 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec STEREO 48 bit testv/stv1MASA2TC48c.wav_24400_48-48_STEREO.tst + +// MASA 1dir 2TC at 160 kbps, 48kHz in, 48kHz out, HOA3 out +../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 160000 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec HOA3 48 bit testv/stv1MASA2TC48c.wav_160000_48-48_HOA3.tst + +// MASA 1dir 2TC at 16.4 kbps, 48kHz in, 48kHz out, DTX on, FOA out +../IVAS_cod -dtx -masa 2 testv/stv1MASA2TC48n.met 16400 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec FOA 48 bit testv/stv1MASA2TC48n.wav_16400_48-48_DTX_FOA.tst + +// MASA 1dir 2TC at 16.4 kbps, 48kHz in, 48kHz out, 5_1 out +../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 16400 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv1MASA2TC48c.wav_16400_48-48_5_1.tst + +// MASA 1dir 2TC at 16.4 kbps, 16kHz in, 48kHz out, EXT out +../IVAS_cod -masa 2 testv/stv1MASA2TC16c.met 16400 16 testv/stv1MASA2TC16c.wav bit +../IVAS_dec EXT 48 bit testv/stv1MASA2TC16c.wav_16400_16-48_EXT.tst + +// MASA 1dir 2TC at 13.2 kbps, 48kHz in, 48kHz out, 5_1 out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -masa 2 testv/stv1MASA2TC48c.met 13200 48 testv/stv1MASA2TC48c.wav bit +../IVAS_dec 5_1 48 bit testv/stv1MASA2TC48c.wav_13200_48-48_5_1.tst + +// MASA 1dir 2TC at 128 kbps, 48kHz in, 48kHz out, DTX on, EXT out +../IVAS_cod -dtx -masa 2 testv/stv1MASA2TC48n.met 128000 48 testv/stv1MASA2TC48n.wav bit +../IVAS_dec EXT 48 bit testv/stv1MASA2TC48n.wav_128000_48-48_DTX_EXT.tst + +// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec STEREO 48 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-48_STEREO.tst + +// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec STEREO 48 bit testv/stv1MASA1TC48n.wav_sw_48-48_STEREO.tst + +// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec FOA 48 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-48_FOA.tst + +// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec FOA 48 bit testv/stv1MASA1TC48n.wav_sw_48-48_FOA.tst + +// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv1MASA1TC48n.wav_sw_48-48_BINAURAL.tst + +// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, 5_1 out +../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec 5_1 48 bit testv/stv1MASA1TC48n.wav_sw_48-48_5_1.tst + +// MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 32kHz out, 5_1 out +../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec 5_1 32 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-32_5_1.tst + +// MASA 1dir 1TC at 64 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -masa 1 testv/stv1MASA1TC48c.met 64000 48 testv/stv1MASA1TC48c.wav bit +../IVAS_dec STEREO 48 bit testv/stv1MASA1TC48c.wav_64000_48-48_STEREO.tst + +// MASA 1dir 1TC at 48 kbps, 48kHz in, 48kHz out, MONO out +../IVAS_cod -masa 1 testv/stv1MASA1TC48c.met 48000 48 testv/stv1MASA1TC48c.wav bit +../IVAS_dec MONO 48 bit testv/stv1MASA1TC48c.wav_48000_48-48_MONO.tst + +// MASA 1dir 1TC at 48 kbps, 32kHz in, 48kHz out, EXT out +../IVAS_cod -masa 1 testv/stv1MASA1TC32c.met 48000 32 testv/stv1MASA1TC32c.wav bit +../IVAS_dec EXT 48 bit testv/stv1MASA1TC32c.wav_48000_32-48_EXT.tst + +// MASA 1dir 1TC at 32 kbps, 48kHz in, 48kHz out, 7_1_4 +../IVAS_cod -masa 1 testv/stv1MASA1TC48c.met 32000 48 testv/stv1MASA1TC48c.wav bit +../IVAS_dec 7_1_4 48 bit testv/stv1MASA1TC48c.wav_32000_48-48_7_1_4.tst + +// MASA 1dir 1TC at 256kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out default configuration +../IVAS_cod -masa 1 testv/stv1MASA1TC48c.met 256000 48 testv/stv1MASA1TC48c.wav bit +../IVAS_dec BINAURAL_ROOM_REVERB 48 bit testv/stv1MASA1TC48c.wav_BINAURAL_ROOM_REVERB_256000_48-48.tst + +// MASA 1dir 1TC at 24.4 kbps, 48kHz in, 48kHz out, DTX on, BINAURAL out +../IVAS_cod -dtx -masa 1 testv/stv1MASA1TC48n.met 24400 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv1MASA1TC48n.wav_24400_48-48_DTX_BINAURAL.tst + +// MASA 1dir 1TC at 24.4 kbps, 48kHz in, 48kHz out, BINAURAL ROOM IR out +../IVAS_cod -masa 1 testv/stv1MASA1TC48c.met 24400 48 testv/stv1MASA1TC48c.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv1MASA1TC48c.wav_24400_48-48_BinauralRoom.tst + +// MASA 1dir 1TC at 16.4 kbps, 48kHz in, 48kHz out, HOA3 out +../IVAS_cod -masa 1 testv/stv1MASA1TC48c.met 16400 48 testv/stv1MASA1TC48c.wav bit +../IVAS_dec HOA3 48 bit testv/stv1MASA1TC48c.wav_16400_48-48_HOA3.tst + +// MASA 1dir 1TC at 13.2 kbps, 48kHz in, 48kHz out, DTX on, 7_1_4 out +../IVAS_cod -dtx -masa 1 testv/stv1MASA1TC48n.met 13200 48 testv/stv1MASA1TC48n.wav bit +../IVAS_dec 7_1_4 48 bit testv/stv1MASA1TC48n.wav_13200_48-48_DTX_7_1_4.tst + +// MASA 1dir 1TC at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_SWB.txt -masa 1 testv/stv1MASA1TC48c.met 13200 48 testv/stv1MASA1TC48c.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv1MASA1TC48c.wav_13200_48-48_BINAURAL.tst + +// EVS non-diegetic panning at 64 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod 64000 48 testv/stv48c.wav bit +../IVAS_dec -non_diegetic_pan -50 48 bit testv/stv48c.pcm_EVS_64000_48-48_STEREO_NON-DIEGETIC-PAN_-50.tst + +// 4 ISm with metadata at 32 kbps, 48 kHz in, 48 kHz out, FOA out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 32000 48 testv/stv4ISM48s.wav bit +../IVAS_dec FOA 48 netsimoutput testv/stv4ISM48s.wav_32000_48-48_FOA.tst + +// 4 ISm with metadata at 256 kbps, 48 kHz in, 48 kHz out, TD BINAURAL out, HR, OT +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stv4ISM48s.wav bit +../IVAS_dec -t testv/headrot.csv -otr avg BINAURAL 48 bit testv/stv4ISM48s.pcm_256000_48-48_TDHR_OtrAvg.tst + +// 4 ISM with metadata bitrate switching from 24.4 kbps to 256 kbps, 48 kHz in, 48 kHz out, EXT out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv4ISM48s.wav bit +../IVAS_dec EXT 48 bit testv/stv4ISM48s.wav_brate_sw_48-48_EXT.tst + +// 4 ISM with metadata at 96 kbps, 48 kHz in, 48 kHz out, Custom LS setup out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 96000 48 testv/stv4ISM48s.wav bit +../IVAS_dec testv/ls_setup_16ch_8+4+4.txt 48 bit testv/stv4ISM48s.wav_96000_48-48_MC_custom_setup.tst + +// 4 ISM with metadata at 80 kbps, 48 kHz in, 48 kHz out, HOA2 out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 80000 48 testv/stv4ISM48s.wav bit +../IVAS_dec HOA2 48 bit testv/stv4ISM48s.wav_80000_48-48_HOA2.tst + +// 4 ISM with metadata at 64 kbps, 48 kHz in, 48 kHz out, BINAURAL ROOM IR out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 64000 48 testv/stv4ISM48s.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv4ISM48s.wav_64000_48-48_binaural_room.tst + +// 4 ISM with metadata at 512 kbps, 48 kHz in, 48 kHz out, 5_1 +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stv4ISM48s.wav bit +../IVAS_dec 5_1 48 bit testv/stv4ISM48s.wav_512000_48-48_5_1.tst + +// 4 ISM with metadata at 48 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL ROOM IR out +../IVAS_cod -dtx -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 48000 48 testv/stv4ISM48n.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv4ISM48n.wav_48000_48-48_DTX_TD_binaural_room.tst + +// 4 ISM with metadata at 32 kbps, 48 kHz in, 48 kHz out, FOA out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 32000 48 testv/stv4ISM48s.wav bit +../IVAS_dec FOA 48 bit testv/stv4ISM48s.wav_32000_48-48_FOA.tst + +// 4 ISM with metadata at 32 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL out +../IVAS_cod -dtx -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 32000 48 testv/stv4ISM48n.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv4ISM48n.wav_32000_48-48_DTX_BINAURAL.tst + +// 4 ISM with metadata at 256 kbps, 48 kHz in, 48 kHz out, EXT out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stv4ISM48s.wav bit +../IVAS_dec EXT 48 bit testv/stv4ISM48s.wav_256000_48-48_EXT.tst + +// 4 ISM with metadata at 160 kbps, 48 kHz in, 48 kHz out, STEREO out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 160000 48 testv/stv4ISM48s.wav bit +../IVAS_dec STEREO 48 bit testv/stv4ISM48s.wav_160000_48-48_STEREO.tst + +// 4 ISM with metadata at 128 kbps, 48 kHz in, 48 kHz out, EXT out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_SWB.txt -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 128000 48 testv/stv4ISM48s.wav bit +../IVAS_dec EXT 48 bit testv/stv4ISM48s.wav_128000_48-48_EXT.tst + +// 4 ISM with extended metadata at 256 kbps, 48 kHz in, 48 kHz out, BINAURAL out, HR, directivity configuration +../IVAS_cod -ism +4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stv4ISM48s.wav bit +../IVAS_dec -render_config testv/config_directivity_txt.cfg -t testv/headrot_case04_3000_q.csv BINAURAL 48 bit testv/stv+4ISM48s.wav_256000_48-48_binaural_file_TDHR_DirConfig.tst + +// 4 ISM with extended metadata at 128 kbps, 48 kHz in, 48 kHz out, BINAURAL_ROOM_REVERB out, rendconf dir w id +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 128000 48 testv/stv4ISM48n.wav bit +../IVAS_dec -render_config testv/rend_config_combined.cfg -dpid 3 0 2 1 BINAURAL_ROOM_REVERB 48 bit testv/stv4ISM48n+combined_render_config_brate_128000-48-binaural_room_reverb.wav + +// 4 ISM with extended metadata and non diegetic pan object switching bitrate 256 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL out +../IVAS_cod -dtx -ism +4 testv/stvISM1.csv NULL testv/stvISM_with_no_diegetic_switch.csv testv/stvISM4.csv 256000 48 testv/stv4ISM48n.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv+4ISM48n+non_diegetic_pan.wav_brate_256000-48_DTX_binaural.tst + +// 4 ISM with and without metadata bitrate switching from 24.4 kbps to 256 kbps, 48 kHz in, 48 kHz out, DTX on, HOA3 out +../IVAS_cod -dtx -ism 4 testv/stvISM1.csv NULL NULL testv/stvISM4.csv ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv4ISM48n.wav bit +../IVAS_dec HOA3 48 bit testv/stv4ISM48n.wav_brate_sw_48-48_DTX_hoa3.tst + +// 4 ISM with and without extended metadata bitrate switching from 24.4 kbps to 256 kbps, 48 kHz in, 48 kHz out, DTX on, EXT out +../IVAS_cod -dtx -ism +4 testv/stvISM1.csv NULL testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv4ISM48n.wav bit +../IVAS_dec EXT 48 bit testv/stv+4ISM48n.wav_brate_sw_48-48_DTX_EXT.tst + +// 4 ISM w and wo md br switching 24.4 kbps to 256 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL_ROOM_IR out (Model from file) +../IVAS_cod -dtx -ism 4 testv/stvISM1.csv NULL NULL testv/stvISM4.csv ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv4ISM48n.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL_ROOM_IR 48 bit testv/stv4ISM48n.wav_brate_sw_48-48_DTX_hoa3.tst + +// 3 ISM with metadata at 96 kbps, 48 kHz in, 48 kHz out, EXT out +../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 96000 48 testv/stv3ISM48s.wav bit +../IVAS_dec EXT 48 bit testv/stv3ISM48s.96000_48-48_EXT.tst + +// 3 ISM with metadata at 64 kbps, 48 kHz in, 48 kHz out, EXT out +../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 64000 48 testv/stv3ISM48s.wav bit +../IVAS_dec EXT 48 bit testv/stv3ISM48s.64000_48-48_EXT.tst + +// 3 ISM with metadata at 48 kbps, 48 kHz in, 48 kHz out, EXT out +../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 48000 48 testv/stv3ISM48s.wav bit +../IVAS_dec EXT 48 bit testv/stv3ISM48s.48000_48-48_MONO.tst + +// 3 ISM with metadata at 384 kbps, 48 kHz in, 32 kHz out, 7_1_4 out +../IVAS_cod -ism 3 testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 384000 48 testv/stv3ISM48s.wav bit +../IVAS_dec 7_1_4 32 bit testv/stv3ISM48s.wav_384000_48-32_7_1_4.tst + +// 3 ISM with metadata at 24.4 kbps, 48 kHz in, 48 kHz out, 7_1 out +../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 24400 48 testv/stv3ISM48s.wav bit +../IVAS_dec 7_1 48 bit testv/stv3ISM48s.wav_24400_48-48_7_1.tst + +// 3 ISM with metadata at 192 kbps, 48 kHz in, 48 kHz out, BINAURAL out (Model from file) +../IVAS_cod -ism 3 testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 192000 48 testv/stv3ISM48s.wav bit +../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL 48 bit testv/stv3ISM48s.wav_192000_48-48_binauralfile.tst + +// 3 ISM with metadata at 128 kbps, 48 kHz in, 32 kHz out, HOA3 out +../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stv3ISM48s.wav bit +../IVAS_dec HOA3 32 bit testv/stv3ISM48s.wav_128000_48-32_HOA3.tst + +// 2 ISM with metadata at 80 kbps, 48 kHz in, 48 kHz out, DTX on, stereo out +../IVAS_cod -dtx -ism 2 testv/stvISM1.csv testv/stvISM2.csv 80000 48 testv/stvST48n.wav bit +../IVAS_dec STEREO 48 bit testv/stvST48n.wav_2ISM_80000_48-48_DTX_STEREO.tst + +// 2 ISM with metadata at 64 kbps, 48 kHz in, 48 kHz out, BINAURAL ROOM IR out +../IVAS_cod -ism 2 testv/stvISM3.csv testv/stvISM4.csv 64000 48 testv/stv2ISM48s.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv2ISM48s.wav_64000_48-48_binaural_room.tst + +// 2 ISM with metadata at 48 kbps, 48 kHz in, 48 kHz out, EXT out +../IVAS_cod -ism 2 testv/stvISM3.csv testv/stvISM4.csv 48000 48 testv/stv2ISM48s.wav bit +../IVAS_dec EXT 48 bit testv/stv2ISM48s.wav_48000_48-48_EXT.tst + +// 2 ISM with metadata at 32 kbps, 48 kHz in, 48 kHz out, DTX on, HOA2 out +../IVAS_cod -dtx -ism 2 testv/stvISM1.csv testv/stvISM2.csv 32000 48 testv/stvST48n.wav bit +../IVAS_dec HOA2 48 bit testv/stvST48n.wav_2ISM_32000_48-48_DTX_HOA2.tst + +// 2 ISM with metadata at 160 kbps, 48 kHz in, 32 kHz out, BINAURAL out +../IVAS_cod -ism 2 testv/stvISM1.csv testv/stvISM2.csv 160000 48 testv/stv2ISM48s.wav bit +../IVAS_dec BINAURAL 32 bit testv/stv2ISM48s.wav_160000_48-32_binaural.tst + +// 2 ISM with metadata at 16.4 kbps, 48 kHz in, 48 kHz out, STEREO out +../IVAS_cod -ism 2 testv/stvISM1.csv testv/stvISM2.csv 16400 48 testv/stv2ISM48s.wav bit +../IVAS_dec STEREO 48 bit testv/stv2ISM48s.wav_16400_48-48_STEREO.tst + +// 2 ISM with metadata at 128 kbps, 48 kHz in, 32 kHz out, BINAURAL out (Model from file), HR +../IVAS_cod -ism 2 testv/stvISM1.csv testv/stvISM2.csv 128000 48 testv/stv2ISM48s.wav bit +../IVAS_dec -t testv/headrot_case01_3000_q.csv -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_32kHz.bin BINAURAL 32 bit testv/stv2ISM48s.wav_128000_48-32_binaural_file_TDHR.tst + +// 1 ISM with metadata bitrate switching from 13.2 kbps to 128 kbps, 32 kHz in, 32 kHz out, EXT out, DTX on +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv32c.wav bit +../IVAS_dec EXT 32 bit testv/stv32c.wav_1ISM_brate_sw_32-32_EXT_dtx.tst + +// 1 ISM with metadata at 96 kbps, 48 kHz in, 16 kHz out, EXT out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_FB.txt -ism 1 testv/stvISM1.csv 96000 48 testv/stv1ISM48s.wav bit +../IVAS_dec EXT 16 bit testv/stv1ISM48s.wav_96000_48-16_EXT.tst + +// 1 ISM with metadata at 80 kbps, 48 kHz in, 16 kHz out, BINAURAL out (Model from file), HR +../IVAS_cod -ism 1 testv/stvISM1.csv 80000 48 testv/stv1ISM48s.wav bit +../IVAS_dec -t testv/headrot_case00_3000_q.csv -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_16kHz.bin BINAURAL 16 bit testv/stv1ISM48s.wav_80000_48-16_binaural_file_TDHR.tst + +// 1 ISM with metadata at 48 kbps, 48 kHz in, 48 kHz out, BINAURAL ROOM IR out, HR +../IVAS_cod -ism 1 testv/stvISM1.csv 48000 48 testv/stv1ISM48s.wav bit +../IVAS_dec -t testv/headrot_case00_3000_q.csv BINAURAL_ROOM_IR 48 bit testv/stv1ISM48s.wav_64000_48-48_binaural_room_HR.tst + +// 1 ISM with metadata at 32 kbps, 32 kHz in, 32 kHz out, DTX on, MONO out +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.wav bit +../IVAS_dec MONO 32 bit testv/stv32n.wav_1ISM_32000_32-32_DTX_MONO.tst + +// 1 ISM with metadata at 16.4 kbps, 48 kHz in, 48 kHz out, BINAURAL ROOM IR out, bandwidth switching +../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -ism 1 testv/stvISM1.csv 16400 48 testv/stv1ISM48s.wav bit +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stv1ISM48s.wav_16400_48-48_binaural_room.tst + +// 1 ISM with metadata at 13.2 kbps, 48 kHz in, 48 kHz out, EXT out +../IVAS_cod -ism 1 testv/stvISM1.csv 13200 48 testv/stv1ISM48s.wav bit +../IVAS_dec EXT 48 bit testv/stv1ISM48s.wav_13200_48-48_EXT.tst + +// 1 ISM with metadata at 13.2 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL out +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 13200 48 testv/stv48n.wav bit +../IVAS_dec BINAURAL 48 bit testv/stv48n.wav_1ISM_13200_48-48_DTX_BINAURAL.tst + +// 1 ISM non-diegetic panning at 32 kbps, 48kHz in, 48kHz out, STEREO out +../IVAS_cod -ism 1 testv/stvISM1.csv 32000 48 testv/stv1ISM48s.wav bit +../IVAS_dec -non_diegetic_pan 80 STEREO 48 bit testv/stv1ISM48s.pcm_ISM_32000_48-48_STEREO_NON-DIEGETIC-PAN_80.tst -- GitLab From 5dcd74526f7b076f0dd1324689b4fe89b3ac1fcc Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Tue, 19 Nov 2024 14:48:46 +0100 Subject: [PATCH 39/40] remove unsupported testcases --- scripts/config/self_test_basop_encoder.prm | 28 ---------------------- 1 file changed, 28 deletions(-) diff --git a/scripts/config/self_test_basop_encoder.prm b/scripts/config/self_test_basop_encoder.prm index 5d9a63a5ec..e3d37c520e 100644 --- a/scripts/config/self_test_basop_encoder.prm +++ b/scripts/config/self_test_basop_encoder.prm @@ -315,10 +315,6 @@ ../IVAS_cod -max_band testv/ivas_bws_20fr_start_SWB.txt -sba 3 512000 48 testv/stv3OA48c.wav bit ../IVAS_dec BINAURAL 48 bit testv/stv3OA48c.wav_SBA_512000_48-48_binaural.tst -// SBA 3OA at 128 kbps, 48kHz in 48kHz out, BINAURAL_ROOM_REVERB rendconf sel acoustic env -../IVAS_cod -sba 3 128000 48 testv/stv3OA48c.wav bit -../IVAS_dec -render_config testv/rend_config_combined.cfg -aeid 1 BINAURAL_ROOM_REVERB 48 bit testv/stv3OA48c.pcm_SBA_128000_48-48_BinauralRoomReverb_Config_renderer_combined_AEID_1.tst - // SBA 3OA 4ISM at 96 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out custom configuration ../IVAS_cod -sba 3 96000 48 testv/stv3OA48c.wav bit ../IVAS_dec -render_config testv/rend_config_recreation.cfg BINAURAL_ROOM_REVERB 48 bit testv/stv3OA48c.wav_BINAURAL_ROOM_REVERB_96000_48-48_custom_configuration.tst @@ -343,14 +339,6 @@ ../IVAS_cod -sba -1 128000 48 testv/stvFOA48c.wav bit ../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_32kHz.bin -t testv/headrot_case00_3000_q.csv -render_config testv/rend_config_renderer.cfg BINAURAL_ROOM_REVERB 32 bit testv/stvFOA48c.pcm_planarSBA_128000_48-32_BinauralRoomReverb_Config_renderer_Headrot_BinauralFile.tst -// OSBA planar FOA 2ISM at 512 kbps, 48 kHz in, 48 kHz out, BINAURAL out -../IVAS_cod -ism_sba 2 -1 testv/stvISM1.csv testv/stvISM2.csv 512000 48 testv/stvOSBA_2ISM_FOA48c.wav bit -../IVAS_dec BINAURAL 48 bit testv/stvOSBA_2ISM_pFOA48c.wav_BINAURAL_512000_48-48.tst - -// OSBA planar FOA 1ISM at 256 kbps, 48 kHz in, 48 kHz out, BINAURAL out -../IVAS_cod -ism_sba 1 -1 testv/stvISM1.csv 256000 48 testv/stvOSBA_1ISM_FOA48c.wav bit -../IVAS_dec BINAURAL 48 bit testv/stvOSBA_1ISM_pFOA48c.wav_BINAURAL_256000_48-48.tst - // OSBA planar 3OA 4ISM at 512 kbps, 48 kHz in, 48 kHz out, BINAURAL ROOM IR out ../IVAS_cod -ism_sba 4 -3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stvOSBA_4ISM_3OA48c.wav bit ../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stvOSBA_4ISM_p3OA48c.wav_BINAURAL_ROOM_IR_512000_48-48.tst @@ -379,10 +367,6 @@ ../IVAS_cod -ism_sba 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_FOA48c.wav bit ../IVAS_dec 7_1_4 48 bit testv/stvOSBA_3ISM_FOA48c.wav_7_1_4_128000_48-48.tst -// OSBA FOA 2ISM at 64 kbps, 48kHz in, 48kHz out, HOA3 out, bandwidth switching -../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -ism_sba 2 1 testv/stvISM1.csv testv/stvISM2.csv 64000 48 testv/stvOSBA_2ISM_FOA48c.wav bit -../IVAS_dec HOA3 48 bit testv/stvOSBA_2ISM_FOA48c.wav_HOA3_64000_48-48.tst - // OSBA FOA 1ISM at 48 kbps, 16kHz in, 16kHz out, BINAURAL_ROOM_REVERB (Model from file) out ../IVAS_cod -ism_sba 1 1 testv/stvISM1.csv 32000 16 testv/stvOSBA_1ISM_FOA16c.wav bit ../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_16kHz.bin BINAURAL_ROOM_REVERB 16 bit testv/stvOSBA_1ISM_FOA16c.wav_BINAURAL_ROOM_REVERB_32000_16-16.tst @@ -692,10 +676,6 @@ ../IVAS_cod -mc 5_1_2 160000 48 testv/stv512MC48c.wav bit ../IVAS_dec 5_1_2 48 bit testv/stv512MC48c.wav_MC512_160000_48-48_5_1_2.tst -// Multi-channel 5_1 bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, BINAURAL out, FER at 10%, bandwidth switching -../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -mc 5_1 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv51MC48c.wav bit -../IVAS_dec BINAURAL 48 bit testv/stv51MC48c.wav_sw_48-48_binaural.tst - // Multi-channel 5_1 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, 5_1 out ../IVAS_cod -mc 5_1 ../scripts/switchPaths/sw_mctech_5fr.bin 48 testv/stv51MC48c.wav bit ../IVAS_dec HOA3 48 bit testv/stv51MC48c.wav_sw_48-48_5_1.tst @@ -736,10 +716,6 @@ ../IVAS_cod -mc 5_1 384000 48 testv/stv51MC48c.wav bit ../IVAS_dec 5_1 48 bit testv/stv51MC48c.wav_MC51_384000_48-48_5_1.tst -// Multi-channel 5_1 at 32 kbps, 48kHz in 48kHz out, BINAURAL_ROOM_REVERB out custom acoustic environment with a sequence (ParamBin) -../IVAS_cod -mc 5_1 32000 48 testv/stv51MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_combined.cfg -aeid testv/aeid3.txt BINAURAL_ROOM_REVERB 48 bit testv/stv51MC48c.wav_MC51_32000_48-48_MC_reverb_sequence.tst - // Multi-channel 5_1 at 256 kbps, 48kHz in, 48kHz out, STEREO out ../IVAS_cod -mc 5_1 256000 48 testv/stv51MC48c.wav bit ../IVAS_dec STEREO 48 bit testv/stv51MC48c.wav_MC51_256000_48-48_stereo.tst @@ -1036,10 +1012,6 @@ ../IVAS_cod -ism +4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stv4ISM48s.wav bit ../IVAS_dec -render_config testv/config_directivity_txt.cfg -t testv/headrot_case04_3000_q.csv BINAURAL 48 bit testv/stv+4ISM48s.wav_256000_48-48_binaural_file_TDHR_DirConfig.tst -// 4 ISM with extended metadata at 128 kbps, 48 kHz in, 48 kHz out, BINAURAL_ROOM_REVERB out, rendconf dir w id -../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 128000 48 testv/stv4ISM48n.wav bit -../IVAS_dec -render_config testv/rend_config_combined.cfg -dpid 3 0 2 1 BINAURAL_ROOM_REVERB 48 bit testv/stv4ISM48n+combined_render_config_brate_128000-48-binaural_room_reverb.wav - // 4 ISM with extended metadata and non diegetic pan object switching bitrate 256 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL out ../IVAS_cod -dtx -ism +4 testv/stvISM1.csv NULL testv/stvISM_with_no_diegetic_switch.csv testv/stvISM4.csv 256000 48 testv/stv4ISM48n.wav bit ../IVAS_dec BINAURAL 48 bit testv/stv+4ISM48n+non_diegetic_pan.wav_brate_256000-48_DTX_binaural.tst -- GitLab From fbcf5687b0ca1cef67113de2462724f7ecf2fe23 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Tue, 19 Nov 2024 14:58:51 +0100 Subject: [PATCH 40/40] fix errors in prm file --- scripts/config/self_test_basop_encoder.prm | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/scripts/config/self_test_basop_encoder.prm b/scripts/config/self_test_basop_encoder.prm index e3d37c520e..97506e3c68 100644 --- a/scripts/config/self_test_basop_encoder.prm +++ b/scripts/config/self_test_basop_encoder.prm @@ -163,9 +163,9 @@ ../IVAS_cod -sba -3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv3OA48c.wav bit ../IVAS_dec 7_1_4 48 bit testv/stv3OA48c.wav_sw_48-48_7_1_4.tst -// SBA planar 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3out +// SBA planar 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3 out ../IVAS_cod -sba -3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.wav bit -../IVAS_dec HOA348 bit testv/stv3OA48c.wav_sw_48-48_DTX_HOA3.tst +../IVAS_dec HOA3 48 bit testv/stv3OA48c.wav_sw_48-48_DTX_HOA3.tst // SBA planar 2OA bitrate switching from 13.2 kbps to 128 kbps, 32kHz in, 32kHz out, DTX on, HOA2out ../IVAS_cod -dtx -sba -2 ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv2OA32c.wav bit @@ -253,7 +253,7 @@ // SBA at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -sba 1 13200 48 testv/stvFOA48c.wav bit -../IVAS_dec BINAURAL 48 netsimoutput testv/stvFOA32c.wav_SBA_13200_48-48_BINAURAL.tst +../IVAS_dec BINAURAL 48 bit testv/stvFOA32c.wav_SBA_13200_48-48_BINAURAL.tst // SBA at 13.2 kbps, 32kHz in, 32kHz out, HOA3 out, bandwidth switching ../IVAS_cod -max_band testv/ivas_bws_20fr_start_WB.txt -sba 3 13200 32 testv/stv3OA32c.wav bit @@ -470,7 +470,7 @@ // OMASA 2Dir2TC 4ISM at 256 kbps, 48kHz in, 48kHz out, EXT out ../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv NULL testv/stvISM4.csv testv/stv2MASA2TC48c.met 256000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit -../IVAS_dec EXT 48 netsimoutput testv/stvOMASA_4ISM_2MASA2TC48c.wav_EXT_256000_48-48.tst +../IVAS_dec EXT 48 bit testv/stvOMASA_4ISM_2MASA2TC48c.wav_EXT_256000_48-48.tst // OMASA 2Dir2TC 4ISM at 192 kbps, 48kHz in, 48kHz out, STEREO out ../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv2MASA2TC48c.met 192000 48 testv/stvOMASA_4ISM_2MASA2TC48c.wav bit @@ -486,7 +486,7 @@ // OMASA 2Dir2TC 3ISM at br sw techs 13.2 to 512 kbps start 160 kbps, 48kHz in, 48kHz out, MONO out ../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_160k_omasatechs_3ism.bin 48 testv/stvOMASA_3ISM_2MASA2TC48c.wav bit -../IVAS_dec MONO 48 netsimoutput testv/stvOMASA_3ISM_2MASA2TC48c.wav_MONO_sw_48-48.tst +../IVAS_dec MONO 48 bit testv/stvOMASA_3ISM_2MASA2TC48c.wav_MONO_sw_48-48.tst // OMASA 2Dir2TC 3ISM at 80 kbps, 32kHz in, 16kHz out, 5.1.4 out ../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA2TC48c.met 80000 32 testv/stvOMASA_3ISM_2MASA2TC32c.wav bit @@ -502,7 +502,7 @@ // OMASA 2Dir2TC 2ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 48kHz out, 7.1 out ../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv NULL testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_2ism.bin 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit -../IVAS_dec 7_1 48 netsimoutput testv/stvOMASA_2ISM_2MASA2TC48c.wav_7_1_sw_48-48.tst +../IVAS_dec 7_1 48 bit testv/stvOMASA_2ISM_2MASA2TC48c.wav_7_1_sw_48-48.tst // OMASA 2Dir2TC 2ISM at 32 kbps, 48kHz in, 48kHz out, STEREO out, FER at 5% ../IVAS_cod -ism_masa 2 2 testv/stvISM1.csv testv/stvISM2.csv testv/stv2MASA2TC48c.met 32000 48 testv/stvOMASA_2ISM_2MASA2TC48c.wav bit @@ -510,7 +510,7 @@ // OMASA 2Dir2TC 1ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_IR out ../IVAS_cod -ism_masa 1 2 testv/stvISM1.csv testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_1ism.bin 48 testv/stvOMASA_1ISM_2MASA2TC48c.wav bit -../IVAS_dec BINAURAL_ROOM_IR 48 netsimoutput testv/stvOMASA_1ISM_2MASA2TC48c.wav_BINAURAL_ROOM_IR_sw_48-48.tst +../IVAS_dec BINAURAL_ROOM_IR 48 bit testv/stvOMASA_1ISM_2MASA2TC48c.wav_BINAURAL_ROOM_IR_sw_48-48.tst // OMASA 2Dir2TC 1ISM at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -ism_masa 1 2 NULL testv/stv2MASA2TC48c.met 13200 48 testv/stvOMASA_1ISM_2MASA2TC48c.wav bit @@ -522,7 +522,7 @@ // OMASA 2Dir1TC 3ISM at br sw techs 13.2 to 512 kbps start 48 kbps, 48kHz in, 32kHz out, STEREO out ../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA1TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_48k_omasatechs_3ism.bin 48 testv/stvOMASA_3ISM_2MASA1TC48c.wav bit -../IVAS_dec STEREO 32 netsimoutput testv/stvOMASA_3ISM_2MASA1TC48c.wav_STEREO_sw_48-32.tst +../IVAS_dec STEREO 32 bit testv/stvOMASA_3ISM_2MASA1TC48c.wav_STEREO_sw_48-32.tst // OMASA 2Dir1TC 3ISM at 96 kbps, 48kHz in, 48kHz out, MONO out ../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA1TC48c.met 96000 48 testv/stvOMASA_3ISM_2MASA1TC48c.wav bit @@ -538,7 +538,7 @@ // OMASA 1Dir2TC 4ISM at br sw techs 13.2 to 512 kbps start 80 kbps, 48kHz in, 48kHz out, FOA out ../IVAS_cod -ism_masa 4 2 NULL testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_80k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_1MASA2TC48c.wav bit -../IVAS_dec FOA 48 netsimoutput testv/stvOMASA_4ISM_1MASA2TC48c.wav_FOA_sw_48-48.tst +../IVAS_dec FOA 48 bit testv/stvOMASA_4ISM_1MASA2TC48c.wav_FOA_sw_48-48.tst // OMASA 1Dir2TC 4ISM at 80 kbps, 48kHz in, 48kHz out, MONO out ../IVAS_cod -ism_masa 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA2TC48c.met 80000 48 testv/stvOMASA_4ISM_1MASA2TC48c.wav bit @@ -550,7 +550,7 @@ // OMASA 1Dir2TC 3ISM at br sw techs 13.2 to 512 kbps start 24.4 kbps, 32kHz in, 48kHz out, 5.1.2 out ../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv1MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_24k4_omasatechs_3ism.bin 32 testv/stvOMASA_3ISM_1MASA2TC32c.wav bit -../IVAS_dec 5_1_2 48 netsimoutput testv/stvOMASA_3ISM_1MASA2TC32c.wav_5_1_2_sw_32-48.tst +../IVAS_dec 5_1_2 48 bit testv/stvOMASA_3ISM_1MASA2TC32c.wav_5_1_2_sw_32-48.tst // OMASA 1Dir2TC 3ISM at 32 kbps, 48kHz in, 16kHz out, STEREO out ../IVAS_cod -ism_masa 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv1MASA2TC48c.met 32000 48 testv/stvOMASA_3ISM_1MASA2TC48c.wav bit @@ -570,7 +570,7 @@ // OMASA 1Dir1TC 4ISM at br sw techs 13.2 to 512 kbps start 32 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met ../scripts/switchPaths/sw_13k2_512k_2fr_start_32k_omasatechs_4ism.bin 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit -../IVAS_dec BINAURAL 48 netsimoutput testv/stvOMASA_4ISM_1MASA1TC48c.wav_BINAURAL_sw_48-48.tst +../IVAS_dec BINAURAL 48 bit testv/stvOMASA_4ISM_1MASA1TC48c.wav_BINAURAL_sw_48-48.tst // OMASA 1Dir1TC 4ISM at 48 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM_REVERB out ../IVAS_cod -ism_masa 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv testv/stv1MASA1TC48c.met 48000 48 testv/stvOMASA_4ISM_1MASA1TC48c.wav bit @@ -622,7 +622,7 @@ // Multi-channel 7_1_4 at 256 kbps, 48kHz in, 48kHz out, 7_1_4 out ../IVAS_cod -mc 7_1_4 256000 48 testv/stv714MC48c.wav bit -../IVAS_dec 7_1_4 48 netsimoutput testv/stv714MC48c.wav_MC714_256000_48-48_7_1_4.tst +../IVAS_dec 7_1_4 48 bit testv/stv714MC48c.wav_MC714_256000_48-48_7_1_4.tst // Multi-channel 7_1_4 at 160 kbps, 48kHz in, 48 kHz out, BINAURAL_ROOM_REVERB out default configuration ../IVAS_cod -mc 7_1_4 160000 48 testv/stv714MC48c.wav bit @@ -738,7 +738,7 @@ // MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, EXT out ../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit -../IVAS_dec EXT 48 netsimoutput testv/stv2MASA2TC48c.wav_sw_48-48_EXT.tst +../IVAS_dec EXT 48 bit testv/stv2MASA2TC48c.wav_sw_48-48_EXT.tst // MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit @@ -750,7 +750,7 @@ // MASA 2dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out ../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv2MASA2TC48c.wav bit -../IVAS_dec BINAURAL 16 netsimoutput testv/stv2MASA2TC48c.wav_sw_48-16_BINAURAL.tst +../IVAS_dec BINAURAL 16 bit testv/stv2MASA2TC48c.wav_sw_48-16_BINAURAL.tst // MASA 2dir 2TC at 96 kbps, 48kHz in, 48kHz out, EXT out ../IVAS_cod -masa 2 testv/stv2MASA2TC48c.met 96000 48 testv/stv2MASA2TC48c.wav bit @@ -822,11 +822,11 @@ // MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 32kHz out, MONO out ../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit -../IVAS_dec MONO 32 netsimoutput testv/stv1MASA2TC48n.wav_sw_48-32_MONO.tst +../IVAS_dec MONO 32 bit testv/stv1MASA2TC48n.wav_sw_48-32_MONO.tst // MASA 1dir 2TC bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 16kHz out, BINAURAL out ../IVAS_cod -masa 2 testv/stv1MASA2TC48n.met ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv1MASA2TC48n.wav bit -../IVAS_dec BINAURAL 16 netsimoutput testv/stv1MASA2TC48n.wav_sw_48-16_BINAURAL.tst +../IVAS_dec BINAURAL 16 bit testv/stv1MASA2TC48n.wav_sw_48-16_BINAURAL.tst // MASA 1dir 2TC at 96 kbps, 48kHz in, 48kHz out, MONO out ../IVAS_cod -masa 2 testv/stv1MASA2TC48c.met 96000 48 testv/stv1MASA2TC48c.wav bit @@ -886,7 +886,7 @@ // MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, STEREO out ../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit -../IVAS_dec STEREO 48 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-48_STEREO.tst +../IVAS_dec STEREO 48 bit testv/stv1MASA1TC48n.wav_sw_48-48_STEREO.tst // MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, STEREO out ../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit @@ -894,7 +894,7 @@ // MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, FOA out ../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit -../IVAS_dec FOA 48 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-48_FOA.tst +../IVAS_dec FOA 48 bit testv/stv1MASA1TC48n.wav_sw_48-48_FOA.tst // MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, FOA out ../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit @@ -910,7 +910,7 @@ // MASA 1dir 1TC bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 32kHz out, 5_1 out ../IVAS_cod -masa 1 testv/stv1MASA1TC48n.met ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv1MASA1TC48n.wav bit -../IVAS_dec 5_1 32 netsimoutput testv/stv1MASA1TC48n.wav_sw_48-32_5_1.tst +../IVAS_dec 5_1 32 bit testv/stv1MASA1TC48n.wav_sw_48-32_5_1.tst // MASA 1dir 1TC at 64 kbps, 48kHz in, 48kHz out, STEREO out ../IVAS_cod -masa 1 testv/stv1MASA1TC48c.met 64000 48 testv/stv1MASA1TC48c.wav bit @@ -958,7 +958,7 @@ // 4 ISm with metadata at 32 kbps, 48 kHz in, 48 kHz out, FOA out ../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 32000 48 testv/stv4ISM48s.wav bit -../IVAS_dec FOA 48 netsimoutput testv/stv4ISM48s.wav_32000_48-48_FOA.tst +../IVAS_dec FOA 48 bit testv/stv4ISM48s.wav_32000_48-48_FOA.tst // 4 ISm with metadata at 256 kbps, 48 kHz in, 48 kHz out, TD BINAURAL out, HR, OT ../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stv4ISM48s.wav bit -- GitLab