From 1f71cba139a9da424fc76e5496ec4306d976a8bd Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 18 Dec 2023 14:25:34 +0100 Subject: [PATCH 1/4] switch order of setting the BW for MDCT-St and IGF reconfig --- lib_com/options.h | 1 + lib_enc/ivas_cpe_enc.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index ee1d1b1559..8f1408af7e 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -165,6 +165,7 @@ #define NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING /* Dlb: issue 907: fix for band mapping at VLBR */ #define NONBE_FIX_869_MASA_PREREND_MERGE /* Nokia: issue: #869: MASA pre-rend not updating energy */ #define NONBE_FIX_931_IGF_STEREO_DEC_NOISE /* FhG: issue #931: fix noise substitution in the stereo IGF decoder */ +#define NONBE_FIX_943_RECONFIG_IGF_AFTER_SETTING_BW /* FhG: issue 943: fix crash in BW switchin from WB in MDCT-Stereo core encoder */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 480b559dc7..558d569f7b 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -519,6 +519,7 @@ ivas_error ivas_cpe_enc( * Core codec configuration *----------------------------------------------------------------*/ +#ifndef NONBE_FIX_943_RECONFIG_IGF_AFTER_SETTING_BW /* IGF reconfiguration */ for ( n = 0; n < n_CoreChannels; n++ ) { @@ -533,6 +534,7 @@ ivas_error ivas_cpe_enc( } } +#endif if ( hCPE->element_mode == IVAS_CPE_MDCT && st_ivas->hMCT == NULL ) { /* set coded BW for MDCT stereo */ @@ -554,6 +556,22 @@ ivas_error ivas_cpe_enc( } } +#ifdef NONBE_FIX_943_RECONFIG_IGF_AFTER_SETTING_BW + /* IGF reconfiguration */ + for ( n = 0; n < n_CoreChannels; n++ ) + { + if ( ( hCPE->last_element_brate != hCPE->element_brate || hCPE->element_mode != hCPE->last_element_mode || ( hCPE->element_mode == IVAS_CPE_TD && sts[0]->bits_frame_nominal != last_bits_frame_nominal ) || sts[n]->last_bwidth != sts[n]->bwidth ) && ( n == 0 || hCPE->element_mode == IVAS_CPE_MDCT ) ) + { + int16_t igf; + igf = getIgfPresent( sts[n]->element_mode, sts[n]->bits_frame_nominal * FRAMES_PER_SEC, sts[n]->max_bwidth, sts[n]->rf_mode ); + if ( ( error = IGF_Reconfig( &sts[n]->hIGFEnc, igf, 0, sts[n]->bits_frame_nominal * FRAMES_PER_SEC, sts[n]->max_bwidth, sts[n]->element_mode, sts[n]->rf_mode ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } +#endif + /* set ACELP@12k8 / ACELP@16k flag for flexible ACELP core */ for ( n = 0; n < n_CoreChannels; n++ ) { -- GitLab From 83258a991a1c02f5443a8f69452bbfeefce3dea0 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 18 Dec 2023 14:42:11 +0100 Subject: [PATCH 2/4] add testcase for fix --- scripts/config/self_test.prm | 4 +- scripts/testv/ivas_bws_20fr_start_FB.txt | 300 ++++++++++++++++++++++ scripts/testv/ivas_bws_20fr_start_SWB.txt | 300 ++++++++++++++++++++++ scripts/testv/ivas_bws_20fr_start_WB.txt | 300 ++++++++++++++++++++++ 4 files changed, 902 insertions(+), 2 deletions(-) create mode 100644 scripts/testv/ivas_bws_20fr_start_FB.txt create mode 100644 scripts/testv/ivas_bws_20fr_start_SWB.txt create mode 100644 scripts/testv/ivas_bws_20fr_start_WB.txt diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 0be62cefe6..bf5bcbf6af 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -690,8 +690,8 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ../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, 48kHz in, 48kHz out, 7_1_4 out -../IVAS_cod -sba 1 64000 48 testv/stvFOA48c.wav bit +// SBA at 64 kbps, 48kHz in, 48kHz out, 7_1_4 out, bandwidth switching from WB +../IVAS_cod -max_band scripts/testv/ivas_bws_20fr_start_WB.txt -sba 1 64000 48 testv/stvFOA48c.wav bit ../IVAS_dec 7_1_4 48 bit testv/stvFOA48c.wav_SBA_64000_48-48_7_1_4.tst // SBA at 64 kpbs, 48kHz in, 48kHz out, BINAURAL out, DTX diff --git a/scripts/testv/ivas_bws_20fr_start_FB.txt b/scripts/testv/ivas_bws_20fr_start_FB.txt new file mode 100644 index 0000000000..19ce2034ec --- /dev/null +++ b/scripts/testv/ivas_bws_20fr_start_FB.txt @@ -0,0 +1,300 @@ +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB diff --git a/scripts/testv/ivas_bws_20fr_start_SWB.txt b/scripts/testv/ivas_bws_20fr_start_SWB.txt new file mode 100644 index 0000000000..b28fc5ca57 --- /dev/null +++ b/scripts/testv/ivas_bws_20fr_start_SWB.txt @@ -0,0 +1,300 @@ +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB diff --git a/scripts/testv/ivas_bws_20fr_start_WB.txt b/scripts/testv/ivas_bws_20fr_start_WB.txt new file mode 100644 index 0000000000..d2a6ba76ca --- /dev/null +++ b/scripts/testv/ivas_bws_20fr_start_WB.txt @@ -0,0 +1,300 @@ +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB +20 WB +20 SWB +20 WB +20 FB +20 SWB +20 FB -- GitLab From 25d80a130348200aa77639665efdcf210cf4626c Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 18 Dec 2023 16:49:19 +0100 Subject: [PATCH 3/4] correct path for bw switching file --- scripts/config/self_test.prm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index bf5bcbf6af..9a6fccb48b 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -691,7 +691,7 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ../IVAS_dec 5_1_4 48 bit testv/stvFOA48c.wav_SBA_64000_48-48_5_1_4.tst // SBA at 64 kbps, 48kHz in, 48kHz out, 7_1_4 out, bandwidth switching from WB -../IVAS_cod -max_band scripts/testv/ivas_bws_20fr_start_WB.txt -sba 1 64000 48 testv/stvFOA48c.wav bit +../IVAS_cod -max_band ../scripts/testv/ivas_bws_20fr_start_WB.txt -sba 1 64000 48 testv/stvFOA48c.wav bit ../IVAS_dec 7_1_4 48 bit testv/stvFOA48c.wav_SBA_64000_48-48_7_1_4.tst // SBA at 64 kpbs, 48kHz in, 48kHz out, BINAURAL out, DTX -- GitLab From 1604e81cb21bfecb21ce9d48580d4f871dcfe03e Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 18 Dec 2023 16:59:37 +0100 Subject: [PATCH 4/4] revert addition of testcase - to be done separately --- scripts/config/self_test.prm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 9a6fccb48b..0be62cefe6 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -690,8 +690,8 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ../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, 48kHz in, 48kHz out, 7_1_4 out, bandwidth switching from WB -../IVAS_cod -max_band ../scripts/testv/ivas_bws_20fr_start_WB.txt -sba 1 64000 48 testv/stvFOA48c.wav bit +// SBA at 64 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -sba 1 64000 48 testv/stvFOA48c.wav bit ../IVAS_dec 7_1_4 48 bit testv/stvFOA48c.wav_SBA_64000_48-48_7_1_4.tst // SBA at 64 kpbs, 48kHz in, 48kHz out, BINAURAL out, DTX -- GitLab