From 2de057c7734693f9e6761daaf617fb3e4b7a3ec5 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Tue, 8 Jul 2025 10:06:58 +0200 Subject: [PATCH 1/2] Port NONBE_FIX_1045_ISM_BITRATE_SWITCHING --- lib_com/options.h | 1 + lib_dec/ivas_ism_dec_fx.c | 9 +++++++++ lib_dec/ivas_mct_dec_fx.c | 4 ++++ lib_dec/ivas_omasa_dec_fx.c | 19 +++++++++++++------ lib_dec/ivas_sba_dec_fx.c | 4 ++++ 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 67aafdc6e..dacfa6096 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -112,6 +112,7 @@ #define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */ #define FIX_1060_USAN_ARRAY_BOUNDS /* FhG: issue 1060: USAN array-bounds errors */ #define NONBE_FIX_SBA_SIGNALING_BITS_B /* FhG: issue 1061: option B: signal sba order additionally in OSBA */ +#define NONBE_FIX_1045_ISM_BITRATE_SWITCHING /* Eri: Difference between ROM/File HRTF in ISM bitrate switching */ /* #################### End BASOP porting switches ############################ */ diff --git a/lib_dec/ivas_ism_dec_fx.c b/lib_dec/ivas_ism_dec_fx.c index ec5a19a5d..febc6af54 100644 --- a/lib_dec/ivas_ism_dec_fx.c +++ b/lib_dec/ivas_ism_dec_fx.c @@ -278,6 +278,14 @@ static ivas_error ivas_ism_bitrate_switching_dec_fx( } /* Close the TD Binaural renderer */ +#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING + ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); + + IF( EQ_32( 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_fx( &st_ivas->hBinRendererTd ); @@ -288,6 +296,7 @@ static ivas_error ivas_ism_bitrate_switching_dec_fx( ivas_reverb_close( &st_ivas->hReverb ); } } +#endif } ELSE { diff --git a/lib_dec/ivas_mct_dec_fx.c b/lib_dec/ivas_mct_dec_fx.c index a18e9c0f9..67978cd0c 100644 --- a/lib_dec/ivas_mct_dec_fx.c +++ b/lib_dec/ivas_mct_dec_fx.c @@ -1436,11 +1436,15 @@ static ivas_error ivas_mc_dec_reconfig_fx( test(); IF( st_ivas->hBinRendererTd != NULL && ( NE_16( st_ivas->renderer_type, RENDERER_BINAURAL_OBJECTS_TD ) ) ) { +#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING + ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); +#else IF( EQ_16( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM, TRUE ) ) { ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); st_ivas->hHrtfTD = NULL; } +#endif } IF( st_ivas->hDiracDecBin[0] != NULL ) diff --git a/lib_dec/ivas_omasa_dec_fx.c b/lib_dec/ivas_omasa_dec_fx.c index 08da97c57..b91728b9e 100644 --- a/lib_dec/ivas_omasa_dec_fx.c +++ b/lib_dec/ivas_omasa_dec_fx.c @@ -715,20 +715,27 @@ ivas_error ivas_omasa_dec_config_fx( } ELSE { +#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING + if ( st_ivas->hBinRendererTd != NULL ) + { + /* TD renderer handle */ + ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); + } +#else /* TD renderer handle */ test(); IF( st_ivas->hBinRendererTd != NULL && EQ_16( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM, TRUE ) ) { ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; + st_ivas->hHrtfTD = NULL; + } +#endif + /* ISM renderer handle + ISM data handle */ + ivas_omasa_separate_object_renderer_close( st_ivas ); + } } - /* ISM renderer handle + ISM data handle */ - ivas_omasa_separate_object_renderer_close( st_ivas ); - } -} - IF( EQ_32( st_ivas->renderer_type, RENDERER_DIRAC ) ) { IF( NE_32( ( error = ivas_dirac_dec_config_fx( st_ivas, DIRAC_RECONFIGURE ) ), IVAS_ERR_OK ) ) diff --git a/lib_dec/ivas_sba_dec_fx.c b/lib_dec/ivas_sba_dec_fx.c index 744c9c14e..b817893f2 100644 --- a/lib_dec/ivas_sba_dec_fx.c +++ b/lib_dec/ivas_sba_dec_fx.c @@ -595,11 +595,15 @@ ivas_error ivas_sba_dec_reconfigure_fx( /* Time Domain binaural renderer handle */ IF( st_ivas->hBinRendererTd != NULL ) { +#ifdef NONBE_FIX_1045_ISM_BITRATE_SWITCHING + ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); +#else IF( st_ivas->hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == TRUE ) { ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); st_ivas->hHrtfTD = NULL; } +#endif } nchan_transport_old = add( nchan_transport_old, st_ivas->nchan_ism ); /*Q0*/ st_ivas->ism_mode = ISM_MODE_NONE; -- GitLab From 9de9ad6464f601b75dfb63f92f279cc1f9412eee Mon Sep 17 00:00:00 2001 From: Charles Kinuthia Date: Mon, 4 Aug 2025 13:33:34 +0200 Subject: [PATCH 2/2] [clang-format] --- lib_dec/ivas_omasa_dec_fx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib_dec/ivas_omasa_dec_fx.c b/lib_dec/ivas_omasa_dec_fx.c index b91728b9e..c01fda7d7 100644 --- a/lib_dec/ivas_omasa_dec_fx.c +++ b/lib_dec/ivas_omasa_dec_fx.c @@ -728,13 +728,13 @@ ivas_error ivas_omasa_dec_config_fx( { ivas_td_binaural_close_fx( &st_ivas->hBinRendererTd ); - st_ivas->hHrtfTD = NULL; - } -#endif - /* ISM renderer handle + ISM data handle */ - ivas_omasa_separate_object_renderer_close( st_ivas ); - } + st_ivas->hHrtfTD = NULL; } +#endif + /* ISM renderer handle + ISM data handle */ + ivas_omasa_separate_object_renderer_close( st_ivas ); + } +} IF( EQ_32( st_ivas->renderer_type, RENDERER_DIRAC ) ) { -- GitLab