diff --git a/lib_com/options.h b/lib_com/options.h index 346383984ef0be9412bf6f7ebba06bb909aa6aad..a84db75dc7f0d4bea007e5a2a557a098c1cd5bfd 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -193,6 +193,7 @@ #define NONBE_1229_FIX_ISM1_DPID /* Eri: issue 1229: fix bug causing ISM 1 to use default -dpid instead of the specified one */ #define NONBE_SVD_OPTIMIZATION #define FIX_1158_FASTCONV_REVERB_HRTF /* Philips: issue 1158: Rendering with FastConv to BINAURAL_ROOM_REVERB uses BRIR convolution instead of HRTF */ +#define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ /* #################### End BASOP porting switches ############################ */ diff --git a/lib_rend/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c index 64b8fa5be4143056094b42d21e0b563cac2d8b57..daa9137dbb731e2a78bfd3951cdfcbfa55e7336c 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++ )