From d4bc1bf00031be3da0f131471065dcd3d834d253 Mon Sep 17 00:00:00 2001 From: rtyag Date: Tue, 9 Jan 2024 16:21:10 +1100 Subject: [PATCH 1/3] fix for distorted MC output with 5ms framing --- lib_com/options.h | 2 +- lib_dec/ivas_jbm_dec.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 8b9acd92dd..d9f83c14e2 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -162,7 +162,7 @@ #define NONBE_FIX_856_TCX_LTP_SYNTH_FILTER /* FhG: issue 856: correct filtering length for tcx-ltp synth filtering*/ #define NONBE_FIX_943_RECONFIG_IGF_AFTER_SETTING_BW /* FhG: issue 943: fix crash in BW switchin from WB in MDCT-Stereo core encoder */ - +#define NONBE_FIX_949_MC_5MS_FRAMING /* Dlb: issue 949: fix for issue 949, distorted output in MC mode with 5ms framing*/ /* ##################### End NON-BE switches ########################### */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 30fe1142b0..69288104ec 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -1260,6 +1260,12 @@ ivas_error ivas_jbm_dec_render( } else if ( st_ivas->ivas_format == MC_FORMAT ) { +#ifdef NONBE_FIX_949_MC_5MS_FRAMING + for ( n = 0; n < st_ivas->hTcBuffer->nchan_buffer_full; n++ ) + { + p_tc[n] = &st_ivas->hTcBuffer->tc[n][st_ivas->hTcBuffer->n_samples_rendered]; + } +#endif if ( st_ivas->mc_mode == MC_MODE_MCT ) { int16_t crendInPlaceRotation = FALSE; -- GitLab From f4e4d1734058bdff97278ecb25ea30123516ba6a Mon Sep 17 00:00:00 2001 From: rtyag Date: Tue, 9 Jan 2024 18:29:23 +1100 Subject: [PATCH 2/3] addition of IVAS decoder tests with 5 ms framing --- scripts/config/self_test.prm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 0be62cefe6..95520c08ae 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -681,6 +681,10 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ../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, 48kHz in, 48kHz out, BINAURAL out, fr 5ms +../IVAS_cod -sba 3 48000 48 testv/stv3OA48c.wav bit +../IVAS_dec -fr 5 -t testv/headrot.csv BINAURAL 48 bit testv/stv3OA48c.wav_SBA_48000_48-48_binaural_ht_fr5.tst + // SBA at 64 kbps, 32kHz in, 32kHz out, FOA out, DTX, random FER at 5% ../IVAS_cod -dtx -sba 1 64000 32 testv/stvFOA32c.wav bit eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g192 bit_error @@ -798,6 +802,10 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ../IVAS_cod -sba 3 512000 48 testv/stv3OA48c.wav bit ../IVAS_dec -t testv/headrot.csv -exof testv/headrot_case00_3000_q_combinedRotationTest.csv BINAURAL 48 bit testv/stv3OA48c.wav_SBA_512000_48-48_Binaural_Headrot_EXOF.tst +// SBA at 512 kbps, 48kHz in, 48kHz out, BINAURAL out, fr 5ms +../IVAS_cod -sba 3 512000 48 testv/stv3OA48c.wav bit +../IVAS_dec -fr 5 -t testv/headrot.csv BINAURAL 48 bit testv/stv3OA48c.wav_SBA_512000_48-48_binaural_ht_fr5.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 @@ -1192,6 +1200,18 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 ../IVAS_cod -mc 7_1_4 160000 48 testv/stv714MC48c.wav bit ../IVAS_dec 7_1_4 48 bit testv/stv714MC48c.wav_MC714_160000_48-48_MC714.tst +// Multi-channel 7_1_4 at 160 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM out, fr 5ms +../IVAS_cod -mc 7_1_4 160000 48 testv/stv714MC48c.wav bit +../IVAS_dec -fr 5 BINAURAL_ROOM 48 bit testv/stv714MC48c.wav_MC714_160000_48-48_MC_binaural_room_fr5.tst + +// Multi-channel 7_1_4 at 512 kbps, 48kHz in, 48kHz out, with headtracking, BINAURAL out, fr 5ms +../IVAS_cod -mc 7_1_4 512000 48 testv/stv714MC48c.wav bit +../IVAS_dec -fr 5 -t testv/headrot.csv BINAURAL 48 bit testv/stv714MC48c.wav_MC714_512000_48-48_MC_binaural_ht_fr5.tst + +// Multi-channel 5_1 at 512 kbps, 48kHz in, 48kHz out, BINAURAL out, fr 5ms +../IVAS_cod -mc 5_1 512000 48 testv/stv51MC48c.wav bit +../IVAS_dec -fr 5 -t testv/headrot.csv BINAURAL 48 bit testv/stv51MC48c.wav_MC51_512000_48-48_MC_binaural_ht_fr5.tst + // Multi-channel 5_1_2 at 32 kbps, 48kHz in, 48kHz out, STEREO out, random FER at 5% ../IVAS_cod -mc 5_1_2 32000 48 testv/stv512MC48c.wav bit eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g192 bit_error -- GitLab From a344233b0300b1c48a9227db02435537921e2a68 Mon Sep 17 00:00:00 2001 From: rtyag Date: Wed, 10 Jan 2024 19:40:46 +1100 Subject: [PATCH 3/3] fix the new test by changing to BINAURAL_ROOM to BINAURAL_ROOM_IR --- 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 95520c08ae..203c8dfc4d 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -1202,7 +1202,7 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1 // Multi-channel 7_1_4 at 160 kbps, 48kHz in, 48kHz out, BINAURAL_ROOM out, fr 5ms ../IVAS_cod -mc 7_1_4 160000 48 testv/stv714MC48c.wav bit -../IVAS_dec -fr 5 BINAURAL_ROOM 48 bit testv/stv714MC48c.wav_MC714_160000_48-48_MC_binaural_room_fr5.tst +../IVAS_dec -fr 5 BINAURAL_ROOM_IR 48 bit testv/stv714MC48c.wav_MC714_160000_48-48_MC_binaural_room_fr5.tst // Multi-channel 7_1_4 at 512 kbps, 48kHz in, 48kHz out, with headtracking, BINAURAL out, fr 5ms ../IVAS_cod -mc 7_1_4 512000 48 testv/stv714MC48c.wav bit -- GitLab