From 03a826eb9eda719fa3b08d6b24d6ae5fbfb2ed01 Mon Sep 17 00:00:00 2001 From: marc emerit Date: Thu, 14 Mar 2024 18:52:43 +0100 Subject: [PATCH 1/5] First try --- lib_com/options.h | 1 + lib_dec/ivas_ism_dec.c | 2 ++ lib_dec/ivas_mct_dec.c | 2 ++ lib_dec/ivas_omasa_dec.c | 3 ++- lib_dec/ivas_sba_dec.c | 2 ++ 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 52357d6c25..b97db1348c 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -157,6 +157,7 @@ /*#define SPLIT_REND_WITH_HEAD_ROT */ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ #define FIX_1027_GSC_INT_OVERFLOW /* VA: issue 2207: overflow in GSC */ +#define FIX_1033_MEMORY_LEAK_OMASA /* VA: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index b23b16ca63..3b3c806631 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -272,7 +272,9 @@ static ivas_error ivas_ism_bitrate_switching_dec( if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); +#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; +#endif if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 1df83b0ce5..f9e26c33f3 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1211,7 +1211,9 @@ static ivas_error ivas_mc_dec_reconfig( if ( st_ivas->hBinRendererTd != NULL && ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); +#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; +#endif } #ifdef SPLIT_REND_WITH_HEAD_ROT diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 763c37a709..76014bb97d 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -393,8 +393,9 @@ ivas_error ivas_omasa_dec_config( { /* TD renderer handle */ ivas_td_binaural_close( &st_ivas->hBinRendererTd ); +#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; - +#endif /* ISM renderer handle + ISM data handle */ ivas_omasa_separate_object_renderer_close( st_ivas ); } diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index af102dd96e..e9c61aa233 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -526,7 +526,9 @@ ivas_error ivas_sba_dec_reconfigure( if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); +#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; +#endif } } nchan_transport_old += st_ivas->nchan_ism; -- GitLab From 52da583a7b2b1a4dcf64ba83ea1257054d7863db Mon Sep 17 00:00:00 2001 From: Jouni Paulus Date: Mon, 18 Mar 2024 15:32:43 +0100 Subject: [PATCH 2/5] update company in the switch comment --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index b97db1348c..a504c51182 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -157,7 +157,7 @@ /*#define SPLIT_REND_WITH_HEAD_ROT */ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ #define FIX_1027_GSC_INT_OVERFLOW /* VA: issue 2207: overflow in GSC */ -#define FIX_1033_MEMORY_LEAK_OMASA /* VA: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ +#define FIX_1033_MEMORY_LEAK_OMASA /* Nokia / Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ /* #################### End BE switches ################################## */ -- GitLab From 913c2834cb303028f86f18e5824acc31339be710 Mon Sep 17 00:00:00 2001 From: marc emerit Date: Thu, 21 Mar 2024 10:42:04 +0100 Subject: [PATCH 3/5] add missing test modelROM --- lib_com/options.h | 3 ++- lib_dec/ivas_mct_dec.c | 11 +++++++++-- lib_dec/ivas_omasa_dec.c | 13 ++++++++++--- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index a504c51182..cf5b89ce16 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -157,7 +157,8 @@ /*#define SPLIT_REND_WITH_HEAD_ROT */ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ #define FIX_1027_GSC_INT_OVERFLOW /* VA: issue 2207: overflow in GSC */ -#define FIX_1033_MEMORY_LEAK_OMASA /* Nokia / Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ +//#define FIX_1033_MEMORY_LEAK_OMASA /* Nokia / Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ +#define FIX_1033_MEMORY_LEAK_OMASA_BIS /* Nokia / Second solution Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index f9e26c33f3..1b59c74160 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1210,9 +1210,16 @@ static ivas_error ivas_mc_dec_reconfig( if ( st_ivas->hBinRendererTd != NULL && ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) ) { - ivas_td_binaural_close( &st_ivas->hBinRendererTd ); +#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS + if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) + { +#endif + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); #ifndef FIX_1033_MEMORY_LEAK_OMASA - st_ivas->hHrtfTD = NULL; + st_ivas->hHrtfTD = NULL; +#endif +#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS + } #endif } diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 76014bb97d..37ec1ecb1f 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -391,10 +391,17 @@ ivas_error ivas_omasa_dec_config( } else { - /* TD renderer handle */ - ivas_td_binaural_close( &st_ivas->hBinRendererTd ); +#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS + if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) + { +#endif + /* TD renderer handle */ + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); #ifndef FIX_1033_MEMORY_LEAK_OMASA - st_ivas->hHrtfTD = NULL; + st_ivas->hHrtfTD = NULL; +#endif +#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS + } #endif /* ISM renderer handle + ISM data handle */ ivas_omasa_separate_object_renderer_close( st_ivas ); -- GitLab From a498dc94744566675a5be1792e846edda5f90a99 Mon Sep 17 00:00:00 2001 From: Jouni Paulus Date: Thu, 21 Mar 2024 14:05:32 +0100 Subject: [PATCH 4/5] remove earlier FIX_1033_MEMORY_LEAK_OMASA solution and rename remaining FIX_1033_MEMORY_LEAK_OMASA_BIS into FIX_1033_MEMORY_LEAK_OMASA. allocate tdbin in OMASA. --- lib_com/options.h | 3 +-- lib_dec/ivas_ism_dec.c | 2 -- lib_dec/ivas_mct_dec.c | 6 ++---- lib_dec/ivas_omasa_dec.c | 20 ++++++++++++-------- lib_dec/ivas_sba_dec.c | 2 -- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index cf5b89ce16..091667b10c 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -157,8 +157,7 @@ /*#define SPLIT_REND_WITH_HEAD_ROT */ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ #define FIX_1027_GSC_INT_OVERFLOW /* VA: issue 2207: overflow in GSC */ -//#define FIX_1033_MEMORY_LEAK_OMASA /* Nokia / Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ -#define FIX_1033_MEMORY_LEAK_OMASA_BIS /* Nokia / Second solution Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ +#define FIX_1033_MEMORY_LEAK_OMASA /* Nokia / Orange: issue #1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index 3b3c806631..b23b16ca63 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -272,9 +272,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; -#endif if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 1b59c74160..e0ef92ecfc 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1210,15 +1210,13 @@ static ivas_error ivas_mc_dec_reconfig( if ( st_ivas->hBinRendererTd != NULL && ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) ) { -#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS +#ifdef FIX_1033_MEMORY_LEAK_OMASA if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { #endif ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; -#endif -#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS +#ifdef FIX_1033_MEMORY_LEAK_OMASA } #endif } diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 37ec1ecb1f..b1a0a0e9ee 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -378,11 +378,17 @@ ivas_error ivas_omasa_dec_config( if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { /* Allocate TD renderer for the objects in DISC mode */ - if ( ( error = ivas_td_binaural_open( st_ivas ) ) != IVAS_ERR_OK ) +#ifdef FIX_1033_MEMORY_LEAK_OMASA + if ( st_ivas->hBinRendererTd == NULL ) { - return error; +#endif + if ( ( error = ivas_td_binaural_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } +#ifdef FIX_1033_MEMORY_LEAK_OMASA } - +#endif /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ if ( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ) != IVAS_ERR_OK ) { @@ -391,16 +397,14 @@ ivas_error ivas_omasa_dec_config( } else { -#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS - if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) +#ifdef FIX_1033_MEMORY_LEAK_OMASA + if ( st_ivas->hBinRendererTd != NULL && st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { #endif /* TD renderer handle */ ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; -#endif -#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS +#ifdef FIX_1033_MEMORY_LEAK_OMASA } #endif /* ISM renderer handle + ISM data handle */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index e9c61aa233..af102dd96e 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -526,9 +526,7 @@ ivas_error ivas_sba_dec_reconfigure( if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; -#endif } } nchan_transport_old += st_ivas->nchan_ism; -- GitLab From 7f863ead9ed6570227c9ce2768c7e837742812f0 Mon Sep 17 00:00:00 2001 From: marc emerit Date: Thu, 21 Mar 2024 14:36:28 +0100 Subject: [PATCH 5/5] keep only fix testing modelROM value --- lib_com/options.h | 3 +-- lib_dec/ivas_ism_dec.c | 2 -- lib_dec/ivas_mct_dec.c | 6 ++---- lib_dec/ivas_omasa_dec.c | 6 ++---- lib_dec/ivas_sba_dec.c | 2 -- 5 files changed, 5 insertions(+), 14 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 3de7a656d3..da54fa4720 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -156,8 +156,7 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define SPLIT_REND_WITH_HEAD_ROT */ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ -//#define FIX_1033_MEMORY_LEAK_OMASA /* Nokia / Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ -#define FIX_1033_MEMORY_LEAK_OMASA_BIS /* Nokia / Second solution Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ +#define FIX_1033_MEMORY_LEAK_OMASA /* Nokia / Orange: issue 1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index 3b3c806631..b23b16ca63 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -272,9 +272,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; -#endif if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 1b59c74160..e0ef92ecfc 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1210,15 +1210,13 @@ static ivas_error ivas_mc_dec_reconfig( if ( st_ivas->hBinRendererTd != NULL && ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) ) { -#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS +#ifdef FIX_1033_MEMORY_LEAK_OMASA if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { #endif ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; -#endif -#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS +#ifdef FIX_1033_MEMORY_LEAK_OMASA } #endif } diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 37ec1ecb1f..cbf36e53f1 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -391,16 +391,14 @@ ivas_error ivas_omasa_dec_config( } else { -#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS +#ifdef FIX_1033_MEMORY_LEAK_OMASA if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { #endif /* TD renderer handle */ ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; -#endif -#ifdef FIX_1033_MEMORY_LEAK_OMASA_BIS +#ifdef FIX_1033_MEMORY_LEAK_OMASA } #endif /* ISM renderer handle + ISM data handle */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index e9c61aa233..af102dd96e 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -526,9 +526,7 @@ ivas_error ivas_sba_dec_reconfigure( if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -#ifndef FIX_1033_MEMORY_LEAK_OMASA st_ivas->hHrtfTD = NULL; -#endif } } nchan_transport_old += st_ivas->nchan_ism; -- GitLab