diff --git a/lib_com/options.h b/lib_com/options.h index 40ee19e404cf09da8119488dfb46c2e38e2b3484..fe344ed7ab329b2dba6bb910b4b715278970c995 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -176,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 b265faa3f074baac8c7560d9b09f31eb7b966b7b..92fe91e15184901a98addd84856408e2210e984c 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -274,6 +274,14 @@ static ivas_error ivas_ism_bitrate_switching_dec( } /* Close the TD Binaural renderer */ +#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 ) + { + 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 +292,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( ivas_reverb_close( &st_ivas->hReverb ); } } +#endif } else { diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 88ef9df74bbaad733bd58fd6fa710e026145dd75..61f00bb85128c6ca1491a69a1dee8b181dc40cdd 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 NONBE_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 7004538730bdf2296e590dfddf195ab2386b44ee..5f6b7e694514e1ebc3f591549ab3836bd4d09df5 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 NONBE_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 8547643049bda6d7015e296f1bc6e5de2d5a1eeb..3161d6920da013cf21b173e271cbd5e2a37b7c8c 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 NONBE_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;