Loading lib_dec/ivas_binRenderer_internal.c +47 −48 Original line number Diff line number Diff line Loading @@ -436,37 +436,37 @@ ivas_error ivas_allocate_binaural_hrtf( } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { if ( ( HrtfFastConv->leftHRIRReal_HOA3[i] = (float **) malloc( HRTF_SH_CHANNELS * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_HOA3[i] = (float **) malloc( HOA3_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); } if ( ( HrtfFastConv->leftHRIRImag_HOA3[i] = (float **) malloc( HRTF_SH_CHANNELS * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_HOA3[i] = (float **) malloc( HOA3_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); } if ( ( HrtfFastConv->rightHRIRReal_HOA3[i] = (float **) malloc( HRTF_SH_CHANNELS * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_HOA3[i] = (float **) malloc( HOA3_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } if ( ( HrtfFastConv->rightHRIRImag_HOA3[i] = (float **) malloc( HRTF_SH_CHANNELS * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_HOA3[i] = (float **) malloc( HOA3_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) for ( j = 0; j < HOA3_CHANNELS; j++ ) { if ( ( HrtfFastConv->leftHRIRReal_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); } if ( ( HrtfFastConv->leftHRIRImag_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); } if ( ( HrtfFastConv->rightHRIRReal_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); } if ( ( HrtfFastConv->rightHRIRImag_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } Loading @@ -474,7 +474,7 @@ ivas_error ivas_allocate_binaural_hrtf( } } } else if ( output_config == AUDIO_CONFIG_HOA2 || input_config == BINAURAL_INPUT_AUDIO_CONFIG_HOA2 ) if ( output_config == AUDIO_CONFIG_HOA2 || input_config == BINAURAL_INPUT_AUDIO_CONFIG_HOA2 ) { if ( ( HrtfFastConv->leftHRIRReal_HOA2 != NULL ) && ( HrtfFastConv->leftHRIRImag_HOA2 != NULL ) && ( HrtfFastConv->rightHRIRReal_HOA2 != NULL ) && ( HrtfFastConv->rightHRIRImag_HOA2 != NULL ) ) { Loading @@ -500,37 +500,37 @@ ivas_error ivas_allocate_binaural_hrtf( } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { if ( ( HrtfFastConv->leftHRIRReal_HOA2[i] = (float **) malloc( 9 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_HOA2[i] = (float **) malloc( HOA2_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); } if ( ( HrtfFastConv->leftHRIRImag_HOA2[i] = (float **) malloc( 9 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_HOA2[i] = (float **) malloc( HOA2_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" ); } if ( ( HrtfFastConv->rightHRIRReal_HOA2[i] = (float **) malloc( 9 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_HOA2[i] = (float **) malloc( HOA2_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } if ( ( HrtfFastConv->rightHRIRImag_HOA2[i] = (float **) malloc( 9 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_HOA2[i] = (float **) malloc( HOA2_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } for ( j = 0; j < 9; j++ ) for ( j = 0; j < HOA2_CHANNELS; j++ ) { if ( ( HrtfFastConv->leftHRIRReal_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); } if ( ( HrtfFastConv->leftHRIRImag_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" ); } if ( ( HrtfFastConv->rightHRIRReal_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA2" ); } if ( ( HrtfFastConv->rightHRIRImag_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } Loading @@ -538,7 +538,7 @@ ivas_error ivas_allocate_binaural_hrtf( } } } else if ( output_config == AUDIO_CONFIG_FOA || input_config == BINAURAL_INPUT_AUDIO_CONFIG_FOA ) if ( output_config == AUDIO_CONFIG_FOA || input_config == BINAURAL_INPUT_AUDIO_CONFIG_FOA ) { if ( ( HrtfFastConv->leftHRIRReal_FOA != NULL ) && ( HrtfFastConv->leftHRIRImag_FOA != NULL ) && ( HrtfFastConv->rightHRIRReal_FOA != NULL ) && ( HrtfFastConv->rightHRIRImag_FOA != NULL ) ) { Loading @@ -564,37 +564,37 @@ ivas_error ivas_allocate_binaural_hrtf( } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { if ( ( HrtfFastConv->leftHRIRReal_FOA[i] = (float **) malloc( 4 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_FOA[i] = (float **) malloc( FOA_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); } if ( ( HrtfFastConv->leftHRIRImag_FOA[i] = (float **) malloc( 4 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_FOA[i] = (float **) malloc( FOA_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" ); } if ( ( HrtfFastConv->rightHRIRReal_FOA[i] = (float **) malloc( 4 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_FOA[i] = (float **) malloc( FOA_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } if ( ( HrtfFastConv->rightHRIRImag_FOA[i] = (float **) malloc( 4 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_FOA[i] = (float **) malloc( FOA_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } for ( j = 0; j < 4; j++ ) for ( j = 0; j < FOA_CHANNELS; j++ ) { if ( ( HrtfFastConv->leftHRIRReal_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); } if ( ( HrtfFastConv->leftHRIRImag_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" ); } if ( ( HrtfFastConv->rightHRIRReal_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_FOA" ); } if ( ( HrtfFastConv->rightHRIRImag_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } Loading Loading @@ -822,33 +822,32 @@ static ivas_error ivas_binaural_hrtf_open( } if ( output_config == AUDIO_CONFIG_HOA3 ) { for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) for ( j = 0; j < HOA3_CHANNELS; j++ ) { mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRImag_HOA3[i][j], HrtfFastConv->leftHRIRImag_HOA3[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRReal_HOA3[i][j], HrtfFastConv->rightHRIRReal_HOA3[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRImag_HOA3[i][j], HrtfFastConv->rightHRIRImag_HOA3[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_HOA3[i][j], HrtfFastConv->leftHRIRImag_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_HOA3[i][j], HrtfFastConv->rightHRIRReal_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_HOA3[i][j], HrtfFastConv->rightHRIRImag_HOA3[i][j], BINAURAL_NTAPS_SBA ); } } if ( output_config == AUDIO_CONFIG_HOA2 ) { for ( j = 0; j < 9; j++ ) for ( j = 0; j < HOA2_CHANNELS; j++ ) { mvr2r( leftHRIRReal_HOA2[i][j], HrtfFastConv->leftHRIRReal_HOA2[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRImag_HOA2[i][j], HrtfFastConv->leftHRIRImag_HOA2[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRReal_HOA2[i][j], HrtfFastConv->rightHRIRReal_HOA2[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRImag_HOA2[i][j], HrtfFastConv->rightHRIRImag_HOA2[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRReal_HOA2[i][j], HrtfFastConv->leftHRIRReal_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_HOA2[i][j], HrtfFastConv->leftHRIRImag_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_HOA2[i][j], HrtfFastConv->rightHRIRReal_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_HOA2[i][j], HrtfFastConv->rightHRIRImag_HOA2[i][j], BINAURAL_NTAPS_SBA ); } } if ( output_config == AUDIO_CONFIG_FOA ) { for ( j = 0; j < 4; j++ ) for ( j = 0; j < FOA_CHANNELS; j++ ) { mvr2r( leftHRIRReal_FOA[i][j], HrtfFastConv->leftHRIRReal_FOA[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRImag_FOA[i][j], HrtfFastConv->leftHRIRImag_FOA[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRReal_FOA[i][j], HrtfFastConv->rightHRIRReal_FOA[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRImag_FOA[i][j], HrtfFastConv->rightHRIRImag_FOA[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRReal_FOA[i][j], HrtfFastConv->leftHRIRReal_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_FOA[i][j], HrtfFastConv->leftHRIRImag_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_FOA[i][j], HrtfFastConv->rightHRIRReal_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_FOA[i][j], HrtfFastConv->rightHRIRImag_FOA[i][j], BINAURAL_NTAPS_SBA ); } } #else Loading Loading @@ -1451,7 +1450,7 @@ void ivas_binaural_hrtf_close( { for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) for ( j = 0; j < HOA3_CHANNELS; j++ ) { free( ( *hHrtfFastConv )->leftHRIRReal_HOA3[i][j] ); ( *hHrtfFastConv )->leftHRIRReal_HOA3[i][j] = NULL; Loading Loading @@ -1484,7 +1483,7 @@ void ivas_binaural_hrtf_close( { for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < 9; j++ ) for ( j = 0; j < HOA2_CHANNELS; j++ ) { free( ( *hHrtfFastConv )->leftHRIRReal_HOA2[i][j] ); ( *hHrtfFastConv )->leftHRIRReal_HOA2[i][j] = NULL; Loading Loading @@ -1517,7 +1516,7 @@ void ivas_binaural_hrtf_close( { for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < 4; j++ ) for ( j = 0; j < FOA_CHANNELS; j++ ) { free( ( *hHrtfFastConv )->leftHRIRReal_FOA[i][j] ); ( *hHrtfFastConv )->leftHRIRReal_FOA[i][j] = NULL; Loading lib_rend/ivas_hrtf.c +6 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,9 @@ #include "ivas_prot_rend.h" #include "ivas_error.h" #include "wmc_auto.h" #ifdef FIX_1720_HRTF_FASTCONV #include <string.h> #endif /*-----------------------------------------------------------------------* * ivas_HRTF_binary_open() Loading Loading @@ -139,7 +142,9 @@ ivas_error ivas_HRTF_fastconv_binary_open( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for FASTCONV HRTF tables!" ); } #ifdef FIX_1720_HRTF_FASTCONV memset( *hHrtfFastConv, 0x00, sizeof( HRTFS_FASTCONV ) ); #endif return IVAS_ERR_OK; } Loading lib_util/hrtf_file_reader.c +2 −16 Original line number Diff line number Diff line Loading @@ -1231,12 +1231,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( /* HRIR_HOA2 */ ( *hHRTF )->FASTCONV_HOA2_latency_s = *( (float *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( float ); #ifdef FIX_1720_HRTF_FASTCONV if ( 9 != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HRTF_SH_CHANNELS)" ); } hrtf_data_rptr += sizeof( uint16_t ); #ifdef UPDATE_FASTCONV_SBA_FILTER if ( HOA2_CHANNELS != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { Loading Loading @@ -1323,19 +1317,12 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif } } #endif } else if ( rend_type == RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_FOA ) { /* HRIR_FOA */ ( *hHRTF )->FASTCONV_FOA_latency_s = *( (float *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( float ); #ifdef FIX_1720_HRTF_FASTCONV if ( 4 != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HRTF_SH_CHANNELS)" ); } hrtf_data_rptr += sizeof( uint16_t ); #ifdef UPDATE_FASTCONV_SBA_FILTER if ( FOA_CHANNELS != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { Loading Loading @@ -1422,7 +1409,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif } } #endif } /* BRIR */ else if ( rend_type == RENDERER_BINAURAL_FASTCONV_ROOM && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) Loading Loading @@ -1535,9 +1521,9 @@ ivas_error load_fastconv_HRTF_from_binary( } /* Read & load */ #ifndef FIX_1720_HRTF_FASTCONV memset( hHrtfFastConv, 0x00, sizeof( HRTFS_FASTCONV ) ); #endif for ( hrtf_id = 0; hrtf_id < hrtfs_file_header.nb_hrtf; hrtf_id++ ) { if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading
lib_dec/ivas_binRenderer_internal.c +47 −48 Original line number Diff line number Diff line Loading @@ -436,37 +436,37 @@ ivas_error ivas_allocate_binaural_hrtf( } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { if ( ( HrtfFastConv->leftHRIRReal_HOA3[i] = (float **) malloc( HRTF_SH_CHANNELS * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_HOA3[i] = (float **) malloc( HOA3_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); } if ( ( HrtfFastConv->leftHRIRImag_HOA3[i] = (float **) malloc( HRTF_SH_CHANNELS * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_HOA3[i] = (float **) malloc( HOA3_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); } if ( ( HrtfFastConv->rightHRIRReal_HOA3[i] = (float **) malloc( HRTF_SH_CHANNELS * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_HOA3[i] = (float **) malloc( HOA3_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } if ( ( HrtfFastConv->rightHRIRImag_HOA3[i] = (float **) malloc( HRTF_SH_CHANNELS * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_HOA3[i] = (float **) malloc( HOA3_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) for ( j = 0; j < HOA3_CHANNELS; j++ ) { if ( ( HrtfFastConv->leftHRIRReal_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); } if ( ( HrtfFastConv->leftHRIRImag_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); } if ( ( HrtfFastConv->rightHRIRReal_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); } if ( ( HrtfFastConv->rightHRIRImag_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_HOA3[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } Loading @@ -474,7 +474,7 @@ ivas_error ivas_allocate_binaural_hrtf( } } } else if ( output_config == AUDIO_CONFIG_HOA2 || input_config == BINAURAL_INPUT_AUDIO_CONFIG_HOA2 ) if ( output_config == AUDIO_CONFIG_HOA2 || input_config == BINAURAL_INPUT_AUDIO_CONFIG_HOA2 ) { if ( ( HrtfFastConv->leftHRIRReal_HOA2 != NULL ) && ( HrtfFastConv->leftHRIRImag_HOA2 != NULL ) && ( HrtfFastConv->rightHRIRReal_HOA2 != NULL ) && ( HrtfFastConv->rightHRIRImag_HOA2 != NULL ) ) { Loading @@ -500,37 +500,37 @@ ivas_error ivas_allocate_binaural_hrtf( } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { if ( ( HrtfFastConv->leftHRIRReal_HOA2[i] = (float **) malloc( 9 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_HOA2[i] = (float **) malloc( HOA2_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); } if ( ( HrtfFastConv->leftHRIRImag_HOA2[i] = (float **) malloc( 9 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_HOA2[i] = (float **) malloc( HOA2_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" ); } if ( ( HrtfFastConv->rightHRIRReal_HOA2[i] = (float **) malloc( 9 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_HOA2[i] = (float **) malloc( HOA2_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } if ( ( HrtfFastConv->rightHRIRImag_HOA2[i] = (float **) malloc( 9 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_HOA2[i] = (float **) malloc( HOA2_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } for ( j = 0; j < 9; j++ ) for ( j = 0; j < HOA2_CHANNELS; j++ ) { if ( ( HrtfFastConv->leftHRIRReal_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); } if ( ( HrtfFastConv->leftHRIRImag_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" ); } if ( ( HrtfFastConv->rightHRIRReal_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA2" ); } if ( ( HrtfFastConv->rightHRIRImag_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_HOA2[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } Loading @@ -538,7 +538,7 @@ ivas_error ivas_allocate_binaural_hrtf( } } } else if ( output_config == AUDIO_CONFIG_FOA || input_config == BINAURAL_INPUT_AUDIO_CONFIG_FOA ) if ( output_config == AUDIO_CONFIG_FOA || input_config == BINAURAL_INPUT_AUDIO_CONFIG_FOA ) { if ( ( HrtfFastConv->leftHRIRReal_FOA != NULL ) && ( HrtfFastConv->leftHRIRImag_FOA != NULL ) && ( HrtfFastConv->rightHRIRReal_FOA != NULL ) && ( HrtfFastConv->rightHRIRImag_FOA != NULL ) ) { Loading @@ -564,37 +564,37 @@ ivas_error ivas_allocate_binaural_hrtf( } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { if ( ( HrtfFastConv->leftHRIRReal_FOA[i] = (float **) malloc( 4 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_FOA[i] = (float **) malloc( FOA_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); } if ( ( HrtfFastConv->leftHRIRImag_FOA[i] = (float **) malloc( 4 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_FOA[i] = (float **) malloc( FOA_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" ); } if ( ( HrtfFastConv->rightHRIRReal_FOA[i] = (float **) malloc( 4 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_FOA[i] = (float **) malloc( FOA_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } if ( ( HrtfFastConv->rightHRIRImag_FOA[i] = (float **) malloc( 4 * sizeof( float * ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_FOA[i] = (float **) malloc( FOA_CHANNELS * sizeof( float * ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } for ( j = 0; j < 4; j++ ) for ( j = 0; j < FOA_CHANNELS; j++ ) { if ( ( HrtfFastConv->leftHRIRReal_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRReal_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); } if ( ( HrtfFastConv->leftHRIRImag_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->leftHRIRImag_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" ); } if ( ( HrtfFastConv->rightHRIRReal_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRReal_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_FOA" ); } if ( ( HrtfFastConv->rightHRIRImag_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS * sizeof( float ) ) ) == NULL ) if ( ( HrtfFastConv->rightHRIRImag_FOA[i][j] = (float *) malloc( BINAURAL_NTAPS_SBA * sizeof( float ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } Loading Loading @@ -822,33 +822,32 @@ static ivas_error ivas_binaural_hrtf_open( } if ( output_config == AUDIO_CONFIG_HOA3 ) { for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) for ( j = 0; j < HOA3_CHANNELS; j++ ) { mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRImag_HOA3[i][j], HrtfFastConv->leftHRIRImag_HOA3[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRReal_HOA3[i][j], HrtfFastConv->rightHRIRReal_HOA3[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRImag_HOA3[i][j], HrtfFastConv->rightHRIRImag_HOA3[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_HOA3[i][j], HrtfFastConv->leftHRIRImag_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_HOA3[i][j], HrtfFastConv->rightHRIRReal_HOA3[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_HOA3[i][j], HrtfFastConv->rightHRIRImag_HOA3[i][j], BINAURAL_NTAPS_SBA ); } } if ( output_config == AUDIO_CONFIG_HOA2 ) { for ( j = 0; j < 9; j++ ) for ( j = 0; j < HOA2_CHANNELS; j++ ) { mvr2r( leftHRIRReal_HOA2[i][j], HrtfFastConv->leftHRIRReal_HOA2[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRImag_HOA2[i][j], HrtfFastConv->leftHRIRImag_HOA2[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRReal_HOA2[i][j], HrtfFastConv->rightHRIRReal_HOA2[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRImag_HOA2[i][j], HrtfFastConv->rightHRIRImag_HOA2[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRReal_HOA2[i][j], HrtfFastConv->leftHRIRReal_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_HOA2[i][j], HrtfFastConv->leftHRIRImag_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_HOA2[i][j], HrtfFastConv->rightHRIRReal_HOA2[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_HOA2[i][j], HrtfFastConv->rightHRIRImag_HOA2[i][j], BINAURAL_NTAPS_SBA ); } } if ( output_config == AUDIO_CONFIG_FOA ) { for ( j = 0; j < 4; j++ ) for ( j = 0; j < FOA_CHANNELS; j++ ) { mvr2r( leftHRIRReal_FOA[i][j], HrtfFastConv->leftHRIRReal_FOA[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRImag_FOA[i][j], HrtfFastConv->leftHRIRImag_FOA[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRReal_FOA[i][j], HrtfFastConv->rightHRIRReal_FOA[i][j], BINAURAL_NTAPS ); mvr2r( rightHRIRImag_FOA[i][j], HrtfFastConv->rightHRIRImag_FOA[i][j], BINAURAL_NTAPS ); mvr2r( leftHRIRReal_FOA[i][j], HrtfFastConv->leftHRIRReal_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( leftHRIRImag_FOA[i][j], HrtfFastConv->leftHRIRImag_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRReal_FOA[i][j], HrtfFastConv->rightHRIRReal_FOA[i][j], BINAURAL_NTAPS_SBA ); mvr2r( rightHRIRImag_FOA[i][j], HrtfFastConv->rightHRIRImag_FOA[i][j], BINAURAL_NTAPS_SBA ); } } #else Loading Loading @@ -1451,7 +1450,7 @@ void ivas_binaural_hrtf_close( { for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) for ( j = 0; j < HOA3_CHANNELS; j++ ) { free( ( *hHrtfFastConv )->leftHRIRReal_HOA3[i][j] ); ( *hHrtfFastConv )->leftHRIRReal_HOA3[i][j] = NULL; Loading Loading @@ -1484,7 +1483,7 @@ void ivas_binaural_hrtf_close( { for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < 9; j++ ) for ( j = 0; j < HOA2_CHANNELS; j++ ) { free( ( *hHrtfFastConv )->leftHRIRReal_HOA2[i][j] ); ( *hHrtfFastConv )->leftHRIRReal_HOA2[i][j] = NULL; Loading Loading @@ -1517,7 +1516,7 @@ void ivas_binaural_hrtf_close( { for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < 4; j++ ) for ( j = 0; j < FOA_CHANNELS; j++ ) { free( ( *hHrtfFastConv )->leftHRIRReal_FOA[i][j] ); ( *hHrtfFastConv )->leftHRIRReal_FOA[i][j] = NULL; Loading
lib_rend/ivas_hrtf.c +6 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,9 @@ #include "ivas_prot_rend.h" #include "ivas_error.h" #include "wmc_auto.h" #ifdef FIX_1720_HRTF_FASTCONV #include <string.h> #endif /*-----------------------------------------------------------------------* * ivas_HRTF_binary_open() Loading Loading @@ -139,7 +142,9 @@ ivas_error ivas_HRTF_fastconv_binary_open( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for FASTCONV HRTF tables!" ); } #ifdef FIX_1720_HRTF_FASTCONV memset( *hHrtfFastConv, 0x00, sizeof( HRTFS_FASTCONV ) ); #endif return IVAS_ERR_OK; } Loading
lib_util/hrtf_file_reader.c +2 −16 Original line number Diff line number Diff line Loading @@ -1231,12 +1231,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( /* HRIR_HOA2 */ ( *hHRTF )->FASTCONV_HOA2_latency_s = *( (float *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( float ); #ifdef FIX_1720_HRTF_FASTCONV if ( 9 != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HRTF_SH_CHANNELS)" ); } hrtf_data_rptr += sizeof( uint16_t ); #ifdef UPDATE_FASTCONV_SBA_FILTER if ( HOA2_CHANNELS != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { Loading Loading @@ -1323,19 +1317,12 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif } } #endif } else if ( rend_type == RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_FOA ) { /* HRIR_FOA */ ( *hHRTF )->FASTCONV_FOA_latency_s = *( (float *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( float ); #ifdef FIX_1720_HRTF_FASTCONV if ( 4 != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HRTF_SH_CHANNELS)" ); } hrtf_data_rptr += sizeof( uint16_t ); #ifdef UPDATE_FASTCONV_SBA_FILTER if ( FOA_CHANNELS != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { Loading Loading @@ -1422,7 +1409,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif } } #endif } /* BRIR */ else if ( rend_type == RENDERER_BINAURAL_FASTCONV_ROOM && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) Loading Loading @@ -1535,9 +1521,9 @@ ivas_error load_fastconv_HRTF_from_binary( } /* Read & load */ #ifndef FIX_1720_HRTF_FASTCONV memset( hHrtfFastConv, 0x00, sizeof( HRTFS_FASTCONV ) ); #endif for ( hrtf_id = 0; hrtf_id < hrtfs_file_header.nb_hrtf; hrtf_id++ ) { if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading