From 082b094990acf83cc0c4c773d350dc013dadb203 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 11 Jan 2023 13:21:37 +0100 Subject: [PATCH 1/4] Fix missing padding bytes in bsCompactToSerial --- lib_dec/lib_dec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 818433ab58..a823e9603b 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1265,6 +1265,12 @@ static void bsCompactToSerial( const uint8_t *compact, uint16_t *serial, uint16_ byte <<= 1; } + + /* Add 4 padding bytes required by core coder */ + for ( i = 0; i < 4 * 8; ++i ) + { + serial[num_bits + i] = 0; + } #undef WMC_TOOL_SKIP } #endif -- GitLab From b563037c09d3e889792a155a2803a4c63bd518be Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 11 Jan 2023 13:49:59 +0100 Subject: [PATCH 2/4] Wrapp changes in preprocessor switch --- lib_com/options.h | 1 + lib_dec/lib_dec.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index a5193624e9..719dc3cd44 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,6 +150,7 @@ #define MC_JBM /* FhG: extend JBM beyond mono for running IVAS in VoIP mode (contribution 19) */ #define FIX_265_MC_BRATE_SWITCHING /* Issue 265: fix use-of-uninitialized-value in MC bitrate switching */ #define FIX_ANGLE_WRAPPING /* Issue 244: Problems with angle wrapping*/ +#define FIX_245_RANGE_CODER_VOIP_MSAN /* Issue 245: fix use-of-uninitialized-value in range coder in VoIP mode */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index a823e9603b..8b78c399ec 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1266,11 +1266,13 @@ static void bsCompactToSerial( const uint8_t *compact, uint16_t *serial, uint16_ byte <<= 1; } +#ifdef FIX_245_RANGE_CODER_VOIP_MSAN /* Add 4 padding bytes required by core coder */ for ( i = 0; i < 4 * 8; ++i ) { serial[num_bits + i] = 0; } +#endif #undef WMC_TOOL_SKIP } #endif -- GitLab From 8c6bbc61d04a77c5ab8e10eb5791be8bbb197ed6 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 11 Jan 2023 14:48:03 +0100 Subject: [PATCH 3/4] Revert "Remove JBM test condition failing due to range coder problems" This reverts commit f56fb29d71cdee95514d9b1910ed864f04ba1825. --- scripts/config/self_test.prm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index a998eefe2c..136a3c1e84 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -933,3 +933,8 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit ../IVAS_cod -sba 3 80000 32 testv/stv3OA32c.pcm bit networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 ../IVAS_dec -Tracefile tracefile_dec -VOIP HOA3 32 netsimoutput testv/stv3OA32c.pcm_SBA_80000_32-32_HOA3_JBM5.tst + +// Multi-channel 5_1 at 384 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5 +../IVAS_cod -mc 5_1 384000 48 testv/stv51MC48c.pcm bit +networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 +../IVAS_dec -Tracefile tracefile_dec -VOIP 7_1_4 48 netsimoutput testv/stv51MC48c.pcm_MC51_384000_48-48_7_1_4_JBM5.tst \ No newline at end of file -- GitLab From 67aba192ec52e68e159e29c45e0398b50ee8336e Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 11 Jan 2023 16:17:18 +0100 Subject: [PATCH 4/4] Fix incorrect buffer size --- lib_dec/lib_dec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 8b78c399ec..5b7e5f9046 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -541,7 +541,11 @@ ivas_error IVAS_DEC_EnableVoIP( #define WMC_TOOL_SKIP /* Bitstream conversion is not counted towards complexity and memory usage */ +#ifdef FIX_245_RANGE_CODER_VOIP_MSAN + hIvasDec->hVoIP->bs_conversion_buf = malloc( sizeof( uint16_t ) * ( MAX_BITS_PER_FRAME + 4 * 8 ) ); +#else hIvasDec->hVoIP->bs_conversion_buf = malloc( sizeof( uint16_t ) * MAX_BITS_PER_FRAME + 4 * 8 ); +#endif #undef WMC_TOOL_SKIP if ( hIvasDec->hVoIP->bs_conversion_buf == NULL ) -- GitLab