diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index ca086537e8ebb470c2ed64cc0a10572f547f303b..96c53e8ebfb5c6cefb0843fb5053554772f3586c 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 140f966f9699e0ed805953b0d6be5ca904f61cd3..51f1e97b63f1dafeaa0b50503a859a09166a4651 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 888b70dfe7a0bc03e83473d17da6b6f3fe2fc317..304839f00a2faa05f90e9660fcefe299397d1a9d 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 55fd202feccdb474bd16df20371989e38d5f6515..e577fdd777aa3ece23cc4237f847be1b1ea5c7b4 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 2ee455c7c190a66c5c1d9275d7cbbb02a24a26af..73a6299160fc2ee89f24f24bd04fc4950399fde7 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;