Loading apps/renderer.c +2 −2 Original line number Diff line number Diff line Loading @@ -2236,11 +2236,11 @@ cleanup: hrtfFileReader_close( &hrtfFileReader ); #endif #ifdef FIX_BINARY_BINAURAL_READING if ( *hSetOfHRTF != NULL ) if ( hSetOfHRTF != NULL && *hSetOfHRTF != NULL ) { destroy_SetOfHRTF( *hSetOfHRTF ); } if ( hHrtfTD != NULL ) if ( hHrtfTD != NULL && *hHrtfTD != NULL ) { dealloc_HRTF_binary( *hHrtfTD ); } Loading lib_rend/ivas_dirac_dec_binaural_functions.c +4 −1 Original line number Diff line number Diff line Loading @@ -407,7 +407,7 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs( int16_t i, j; if ( hHrtfParambin != NULL && *hHrtfParambin != NULL ) { /* Tables already loaded from file */ /* Tables already allocated */ return IVAS_ERR_OK; } else Loading @@ -433,6 +433,9 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs( mvr2r( parametricReverberationEneCorrections, hrtfParambin->parametricReverberationEneCorrections, CLDFB_NO_CHANNELS_MAX ); mvr2r( parametricEarlyPartEneCorrection, hrtfParambin->parametricEarlyPartEneCorrection, CLDFB_NO_CHANNELS_MAX ); #ifdef FIX_BINARY_BINAURAL_READING hrtfParambin->allocatedFromFile = 0; #endif *hHrtfParambin = hrtfParambin; } Loading lib_rend/ivas_stat_rend.h +4 −0 Original line number Diff line number Diff line Loading @@ -1303,6 +1303,10 @@ typedef struct ivas_hrtfs_parambin_struct float parametricReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; float parametricEarlyPartEneCorrection[CLDFB_NO_CHANNELS_MAX]; #ifdef FIX_BINARY_BINAURAL_READING int16_t allocatedFromFile; #endif } HRTFS_PARAMBIN, *HRTFS_PARAMBIN_HANDLE; Loading lib_rend/lib_rend.c +10 −0 Original line number Diff line number Diff line Loading @@ -3578,7 +3578,11 @@ static void freeDecoderDummy( #ifdef LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK /* Parametric binaural renderer HRTF structure */ #ifdef FIX_BINARY_BINAURAL_READING if ( pDecDummy->hHrtfParambin != NULL && pDecDummy->hHrtfParambin->allocatedFromFile == 0 ) #else if ( pDecDummy->hHrtfParambin != NULL ) #endif { #endif free( pDecDummy->hHrtfParambin ); Loading Loading @@ -9328,6 +9332,12 @@ void IVAS_REND_Close( ivas_combined_orientation_close( &hIvasRend->hCombinedOrientationData ); #ifdef FIX_BINARY_BINAURAL_READING /* Fastconv HRTF memories */ ivas_binaural_hrtf_close( &hIvasRend->hHrtfFastConv ); /* Parametric binauralizer HRTF filters */ ivas_HRTF_binary_close( &( hIvasRend->hHrtfTD ) ); ivas_HRTF_CRend_binary_close( &( hIvasRend->hSetOfHRTF ) ); ivas_HRTF_fastconv_binary_close( &( hIvasRend->hHrtfFastConv ) ); Loading lib_util/hrtf_file_reader.c +4 −0 Original line number Diff line number Diff line Loading @@ -1636,6 +1636,10 @@ static ivas_error create_parambin_HRTF_from_rawdata( memcpy( ( *hHRTF )->parametricEarlyPartEneCorrection, hrtf_data_rptr, CLDFB_NO_CHANNELS_MAX * sizeof( float ) ); hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( float ); #ifdef FIX_BINARY_BINAURAL_READING ( *hHRTF )->allocatedFromFile = 1; #endif return IVAS_ERR_OK; } Loading Loading
apps/renderer.c +2 −2 Original line number Diff line number Diff line Loading @@ -2236,11 +2236,11 @@ cleanup: hrtfFileReader_close( &hrtfFileReader ); #endif #ifdef FIX_BINARY_BINAURAL_READING if ( *hSetOfHRTF != NULL ) if ( hSetOfHRTF != NULL && *hSetOfHRTF != NULL ) { destroy_SetOfHRTF( *hSetOfHRTF ); } if ( hHrtfTD != NULL ) if ( hHrtfTD != NULL && *hHrtfTD != NULL ) { dealloc_HRTF_binary( *hHrtfTD ); } Loading
lib_rend/ivas_dirac_dec_binaural_functions.c +4 −1 Original line number Diff line number Diff line Loading @@ -407,7 +407,7 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs( int16_t i, j; if ( hHrtfParambin != NULL && *hHrtfParambin != NULL ) { /* Tables already loaded from file */ /* Tables already allocated */ return IVAS_ERR_OK; } else Loading @@ -433,6 +433,9 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs( mvr2r( parametricReverberationEneCorrections, hrtfParambin->parametricReverberationEneCorrections, CLDFB_NO_CHANNELS_MAX ); mvr2r( parametricEarlyPartEneCorrection, hrtfParambin->parametricEarlyPartEneCorrection, CLDFB_NO_CHANNELS_MAX ); #ifdef FIX_BINARY_BINAURAL_READING hrtfParambin->allocatedFromFile = 0; #endif *hHrtfParambin = hrtfParambin; } Loading
lib_rend/ivas_stat_rend.h +4 −0 Original line number Diff line number Diff line Loading @@ -1303,6 +1303,10 @@ typedef struct ivas_hrtfs_parambin_struct float parametricReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; float parametricEarlyPartEneCorrection[CLDFB_NO_CHANNELS_MAX]; #ifdef FIX_BINARY_BINAURAL_READING int16_t allocatedFromFile; #endif } HRTFS_PARAMBIN, *HRTFS_PARAMBIN_HANDLE; Loading
lib_rend/lib_rend.c +10 −0 Original line number Diff line number Diff line Loading @@ -3578,7 +3578,11 @@ static void freeDecoderDummy( #ifdef LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK /* Parametric binaural renderer HRTF structure */ #ifdef FIX_BINARY_BINAURAL_READING if ( pDecDummy->hHrtfParambin != NULL && pDecDummy->hHrtfParambin->allocatedFromFile == 0 ) #else if ( pDecDummy->hHrtfParambin != NULL ) #endif { #endif free( pDecDummy->hHrtfParambin ); Loading Loading @@ -9328,6 +9332,12 @@ void IVAS_REND_Close( ivas_combined_orientation_close( &hIvasRend->hCombinedOrientationData ); #ifdef FIX_BINARY_BINAURAL_READING /* Fastconv HRTF memories */ ivas_binaural_hrtf_close( &hIvasRend->hHrtfFastConv ); /* Parametric binauralizer HRTF filters */ ivas_HRTF_binary_close( &( hIvasRend->hHrtfTD ) ); ivas_HRTF_CRend_binary_close( &( hIvasRend->hSetOfHRTF ) ); ivas_HRTF_fastconv_binary_close( &( hIvasRend->hHrtfFastConv ) ); Loading
lib_util/hrtf_file_reader.c +4 −0 Original line number Diff line number Diff line Loading @@ -1636,6 +1636,10 @@ static ivas_error create_parambin_HRTF_from_rawdata( memcpy( ( *hHRTF )->parametricEarlyPartEneCorrection, hrtf_data_rptr, CLDFB_NO_CHANNELS_MAX * sizeof( float ) ); hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( float ); #ifdef FIX_BINARY_BINAURAL_READING ( *hHRTF )->allocatedFromFile = 1; #endif return IVAS_ERR_OK; } Loading