From 86f695e7c55ce72034262688fc708a11a6510611 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 15 Apr 2024 09:43:25 +0200 Subject: [PATCH 1/4] Enable TD renderer reset in BR switching under FIX_1045_ISM_BITRATE_SWITCHING --- lib_com/options.h | 1 + lib_dec/ivas_ism_dec.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 0799f2bf16..9c77e43c14 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -159,6 +159,7 @@ #define FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI /* FhG: move setting of pointers for parameter decoding so they are skipped in lost frames when they are not needed */ #define FIX_970_USAN_IN_NELP_SEED #define FIX_1044_ISM_REND_MEMORY /* VA: issue 1044: Lower the memory of the ISM renderer handle. */ +#define FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index b265faa3f0..628f6c0eb4 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -274,6 +274,15 @@ static ivas_error ivas_ism_bitrate_switching_dec( } /* Close the TD Binaural renderer */ +#ifdef FIX_1045_ISM_BITRATE_SWITCHING + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); + st_ivas->hHrtfTD = NULL; + + if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) + { + ivas_reverb_close( &st_ivas->hReverb ); + } +#else if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); @@ -284,6 +293,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( ivas_reverb_close( &st_ivas->hReverb ); } } +#endif } else { -- GitLab From f647195abd12ab56bb0496108aebca0e062c99e6 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 15 Apr 2024 14:23:51 +0200 Subject: [PATCH 2/4] Remove reset of st_ivas->hHrtfTD to allow proper dealloc. Fix TD renderer use in non-ISM formats --- lib_dec/ivas_ism_dec.c | 1 - lib_dec/ivas_mct_dec.c | 4 ++++ lib_dec/ivas_omasa_dec.c | 8 ++++++++ lib_dec/ivas_sba_dec.c | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index 628f6c0eb4..69ac7f94aa 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -276,7 +276,6 @@ static ivas_error ivas_ism_bitrate_switching_dec( /* Close the TD Binaural renderer */ #ifdef FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; 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 88ef9df74b..e18f2d6113 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1210,11 +1210,15 @@ static ivas_error ivas_mc_dec_reconfig( if ( st_ivas->hBinRendererTd != NULL && ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) ) { +#ifdef FIX_1045_ISM_BITRATE_SWITCHING + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); +#else if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); 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 7004538730..086421922d 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -402,12 +402,20 @@ ivas_error ivas_omasa_dec_config( } else { +#ifdef FIX_1045_ISM_BITRATE_SWITCHING + if ( st_ivas->hBinRendererTd != NULL ) + { + /* TD renderer handle */ + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); + } +#else if ( st_ivas->hBinRendererTd != NULL && st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { /* TD renderer handle */ ivas_td_binaural_close( &st_ivas->hBinRendererTd ); 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 8547643049..21743dc40a 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -532,11 +532,15 @@ ivas_error ivas_sba_dec_reconfigure( /* Time Domain binaural renderer handle */ if ( st_ivas->hBinRendererTd != NULL ) { +#ifdef FIX_1045_ISM_BITRATE_SWITCHING + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); +#else if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close( &st_ivas->hBinRendererTd ); st_ivas->hHrtfTD = NULL; } +#endif } nchan_transport_old += st_ivas->nchan_ism; st_ivas->ism_mode = ISM_MODE_NONE; -- GitLab From 934bcdea0f61516cb56220280fde85c31db0d55c Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 15 Apr 2024 14:27:36 +0200 Subject: [PATCH 3/4] Clang format --- lib_dec/ivas_omasa_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 086421922d..7cf4003013 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -403,7 +403,7 @@ ivas_error ivas_omasa_dec_config( else { #ifdef FIX_1045_ISM_BITRATE_SWITCHING - if ( st_ivas->hBinRendererTd != NULL ) + if ( st_ivas->hBinRendererTd != NULL ) { /* TD renderer handle */ ivas_td_binaural_close( &st_ivas->hBinRendererTd ); -- GitLab From 72f25d73205d960f58172adb7c3b5a19a732b99d Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Tue, 16 Apr 2024 08:28:11 +0200 Subject: [PATCH 4/4] Prefix switch with NONBE to reflect the fix is non-be --- lib_com/options.h | 2 +- lib_dec/ivas_ism_dec.c | 2 +- lib_dec/ivas_mct_dec.c | 2 +- lib_dec/ivas_omasa_dec.c | 2 +- lib_dec/ivas_sba_dec.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 9c77e43c14..dd02b1f7dc 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -159,7 +159,6 @@ #define FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI /* FhG: move setting of pointers for parameter decoding so they are skipped in lost frames when they are not needed */ #define FIX_970_USAN_IN_NELP_SEED #define FIX_1044_ISM_REND_MEMORY /* VA: issue 1044: Lower the memory of the ISM renderer handle. */ -#define FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ /* #################### End BE switches ################################## */ @@ -177,6 +176,7 @@ #define NON_BE_FIX_1048_THRESHOLD_COH_BASOP /* Nokia: Fix 1048 replace comparison with 0 with comparison to threshold, to align with BASOP*/ #define NONBE_FIX_1054_NEGATIVE_LVQ_INDEX /* Nokia: issue 1054: Input to decode_comb in deindex_lvq_SHB should be positive */ #define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */ +#define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index 69ac7f94aa..92fe91e151 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -274,7 +274,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( } /* Close the TD Binaural renderer */ -#ifdef FIX_1045_ISM_BITRATE_SWITCHING +#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close( &st_ivas->hBinRendererTd ); 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 e18f2d6113..61f00bb851 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1210,7 +1210,7 @@ static ivas_error ivas_mc_dec_reconfig( if ( st_ivas->hBinRendererTd != NULL && ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) ) { -#ifdef FIX_1045_ISM_BITRATE_SWITCHING +#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close( &st_ivas->hBinRendererTd ); #else if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 7cf4003013..5f6b7e6945 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -402,7 +402,7 @@ ivas_error ivas_omasa_dec_config( } else { -#ifdef FIX_1045_ISM_BITRATE_SWITCHING +#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING if ( st_ivas->hBinRendererTd != NULL ) { /* TD renderer handle */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 21743dc40a..3161d6920d 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -532,7 +532,7 @@ ivas_error ivas_sba_dec_reconfigure( /* Time Domain binaural renderer handle */ if ( st_ivas->hBinRendererTd != NULL ) { -#ifdef FIX_1045_ISM_BITRATE_SWITCHING +#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING ivas_td_binaural_close( &st_ivas->hBinRendererTd ); #else if ( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) -- GitLab