From 7e14781029e4bd0a2f5f51d6a3d9dfe279768bd1 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Sat, 28 Sep 2024 09:50:49 +0200 Subject: [PATCH 1/3] Add NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR to handle subframes shorter than filter in TD renderer --- lib_dec/ivas_objectRenderer_internal.c | 1 + lib_rend/ivas_objectRenderer_sfx.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib_dec/ivas_objectRenderer_internal.c b/lib_dec/ivas_objectRenderer_internal.c index 77d89242a9..19ef209136 100644 --- a/lib_dec/ivas_objectRenderer_internal.c +++ b/lib_dec/ivas_objectRenderer_internal.c @@ -224,6 +224,7 @@ ivas_error ivas_td_binaural_renderer_sf( /* Render subframe */ /* ism_md_subframe_update_jbm != subframe_idx: trigger update only for ism_md_subframe_update_jbm == subframe_idx, where then the two TDREND_GetMix()-arguments subframe_idx and ism_md_subframe_update are equal, and we want to enforce the update inside TDREND_GetMix to use subframe_idx == 0 */ + dbgwrite( &output_frame, sizeof( short ), 1, 1, "output_frame.short" ); if ( ( error = TDREND_GetMix( st_ivas->hBinRendererTd, output_f_local, output_frame, 0, ism_md_subframe_update_jbm != subframe_idx ) ) != IVAS_ERR_OK ) { return error; diff --git a/lib_rend/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c index f0c24ef848..cd734f659d 100644 --- a/lib_rend/ivas_objectRenderer_sfx.c +++ b/lib_rend/ivas_objectRenderer_sfx.c @@ -260,9 +260,14 @@ void TDREND_firfilt( /* Handle memory */ p_signal = buffer + filterlength - 1; - mvr2r( mem, buffer, filterlength - 1 ); /* Insert memory */ + mvr2r( mem, buffer, filterlength - 1 ); /* Insert memory */ +#ifdef NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR + mvr2r( signal, p_signal, subframe_length ); /* Insert current frame */ + mvr2r( p_signal + subframe_length - filterlength + 1, mem, filterlength - 1 ); /* Update memory for next frame */ +#else mvr2r( signal, buffer + filterlength - 1, subframe_length ); /* Insert current frame */ mvr2r( signal + subframe_length - filterlength + 1, mem, filterlength - 1 ); /* Update memory for next frame */ +#endif /* Convolution */ for ( i = 0; i < subframe_length; i++ ) -- GitLab From 263bd0787cfeaf33deeafa76109f79b04c709d81 Mon Sep 17 00:00:00 2001 From: norvell Date: Sat, 28 Sep 2024 08:00:27 +0000 Subject: [PATCH 2/3] Remove unintentional dbgwrite --- lib_dec/ivas_objectRenderer_internal.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib_dec/ivas_objectRenderer_internal.c b/lib_dec/ivas_objectRenderer_internal.c index 19ef209136..77d89242a9 100644 --- a/lib_dec/ivas_objectRenderer_internal.c +++ b/lib_dec/ivas_objectRenderer_internal.c @@ -224,7 +224,6 @@ ivas_error ivas_td_binaural_renderer_sf( /* Render subframe */ /* ism_md_subframe_update_jbm != subframe_idx: trigger update only for ism_md_subframe_update_jbm == subframe_idx, where then the two TDREND_GetMix()-arguments subframe_idx and ism_md_subframe_update are equal, and we want to enforce the update inside TDREND_GetMix to use subframe_idx == 0 */ - dbgwrite( &output_frame, sizeof( short ), 1, 1, "output_frame.short" ); if ( ( error = TDREND_GetMix( st_ivas->hBinRendererTd, output_f_local, output_frame, 0, ism_md_subframe_update_jbm != subframe_idx ) ) != IVAS_ERR_OK ) { return error; -- GitLab From 712bea2dc26c0997aa2bf7bd3c38a48dc7174a72 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Sat, 28 Sep 2024 10:03:21 +0200 Subject: [PATCH 3/3] Add define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR --- lib_com/options.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lib_com/options.h b/lib_com/options.h index 367583eb90..962b8ceb28 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -181,6 +181,7 @@ #define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */ +#define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ /* ##################### End NON-BE switches ########################### */ -- GitLab