From 7780578fab9c007e88ccfd231f50a996976a487d Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Sun, 11 Feb 2024 11:42:43 +0530 Subject: [PATCH] Fix for renderer pytest crash issue. vbap freeing issue fixed with these changes. --- lib_dec/ivas_dirac_dec.c | 8 ++++++++ lib_dec/ivas_init_dec.c | 4 ++++ lib_dec/ivas_mct_dec.c | 14 ++++++++++++-- lib_dec/ivas_sba_dec.c | 4 ++++ lib_rend/ivas_vbap.c | 30 ++++-------------------------- 5 files changed, 32 insertions(+), 28 deletions(-) diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index ca086537e..96c53e8eb 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -584,13 +584,21 @@ static ivas_error ivas_dirac_rend_config( { if ( flag_config == DIRAC_RECONFIGURE && st_ivas->hVBAPdata != NULL ) { +#ifdef IVAS_FLOAT_FIXED + vbap_free_data_fx(&(st_ivas->hVBAPdata)); +#else vbap_free_data( &( st_ivas->hVBAPdata ) ); +#endif } hDirACRend->hoa_decoder = NULL; } else if ( flag_config == DIRAC_RECONFIGURE && st_ivas->hVBAPdata != NULL ) { +#ifdef IVAS_FLOAT_FIXED + vbap_free_data_fx(&(st_ivas->hVBAPdata)); +#else vbap_free_data( &( st_ivas->hVBAPdata ) ); +#endif } /* HOA panning/dec */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 140f966f9..51f1e97b6 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -2438,7 +2438,11 @@ void ivas_destroy_dec( efap_free_data( &st_ivas->hEFAPdata ); /* VBAP handle */ +#ifdef IVAS_FLOAT_FIXED + vbap_free_data_fx(&(st_ivas->hVBAPdata)); +#else vbap_free_data( &( st_ivas->hVBAPdata ) ); +#endif /* Fastconv binaural renderer handle */ ivas_binRenderer_close( &st_ivas->hBinRenderer ); diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 888b70dfe..304839f00 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1059,7 +1059,11 @@ static ivas_error ivas_mc_dec_reconfig( ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); +#ifdef IVAS_FLOAT_FIXED + vbap_free_data_fx(&(st_ivas->hVBAPdata)); +#else vbap_free_data( &( st_ivas->hVBAPdata ) ); +#endif } /* init LS conversion if the renderer type asks for it */ @@ -1169,8 +1173,11 @@ static ivas_error ivas_mc_dec_reconfig( ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); - +#ifdef IVAS_FLOAT_FIXED + vbap_free_data_fx(&(st_ivas->hVBAPdata)); +#else vbap_free_data( &( st_ivas->hVBAPdata ) ); +#endif } if ( last_mc_mode == MC_MODE_MCT ) @@ -1433,8 +1440,11 @@ static ivas_error ivas_mc_dec_reconfig( ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); - +#ifdef IVAS_FLOAT_FIXED + vbap_free_data_fx(&(st_ivas->hVBAPdata)); +#else vbap_free_data( &( st_ivas->hVBAPdata ) ); +#endif } } diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 55fd202fe..e577fdd77 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -460,7 +460,11 @@ ivas_error ivas_sba_dec_reconfigure( ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); +#ifdef IVAS_FLOAT_FIXED + vbap_free_data_fx(&(st_ivas->hVBAPdata)); +#else vbap_free_data( &( st_ivas->hVBAPdata ) ); +#endif } if ( st_ivas->hDirAC != NULL ) diff --git a/lib_rend/ivas_vbap.c b/lib_rend/ivas_vbap.c index 2ee455c7c..73a629916 100644 --- a/lib_rend/ivas_vbap.c +++ b/lib_rend/ivas_vbap.c @@ -578,7 +578,11 @@ ivas_error vbap_init_data_fx( } ELSE { +#ifdef IVAS_FLOAT_FIXED + vbap_free_data_fx(&vbap); +#else vbap_free_data( &vbap ); +#endif } return IVAS_ERR_OK; @@ -959,32 +963,6 @@ void vbap_free_data( { free( ( *hVBAPdata )->search_struct[1].triplets ); } -#ifdef IVAS_FLOAT_FIXED - IF((*hVBAPdata)->bottom_virtual_speaker_node_division_gains_fx != NULL) - { - free((*hVBAPdata)->bottom_virtual_speaker_node_division_gains_fx); - } - IF((*hVBAPdata)->top_virtual_speaker_node_division_gains_fx != NULL) - { - free((*hVBAPdata)->top_virtual_speaker_node_division_gains_fx); - } - IF((*hVBAPdata)->back_virtual_speaker_node_division_gains_fx != NULL) - { - free((*hVBAPdata)->back_virtual_speaker_node_division_gains_fx); - } - IF((*hVBAPdata)->object_mode_bottom_virtual_speaker_node_division_gains_fx != NULL) - { - free((*hVBAPdata)->object_mode_bottom_virtual_speaker_node_division_gains_fx); - } - IF((*hVBAPdata)->object_mode_top_virtual_speaker_node_division_gains_fx != NULL) - { - free((*hVBAPdata)->object_mode_top_virtual_speaker_node_division_gains_fx); - } - IF((*hVBAPdata)->object_mode_back_virtual_speaker_node_division_gains_fx != NULL) - { - free((*hVBAPdata)->object_mode_back_virtual_speaker_node_division_gains_fx); - } -#endif free( *hVBAPdata ); *hVBAPdata = NULL; -- GitLab