Loading lib_dec/ivas_binRenderer_internal.c +112 −6 Original line number Diff line number Diff line Loading @@ -167,7 +167,11 @@ static ivas_error ivas_binRenderer_convModuleOpen( if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM hBinRenConvModule->numTaps = hHrtf->ntaps_brir; #else hBinRenConvModule->numTaps = BINAURAL_NTAPS_MAX; #endif /* Use variable order filtering */ bandIdx = 0; Loading Loading @@ -196,11 +200,19 @@ static ivas_error ivas_binRenderer_convModuleOpen( { if ( hBinRenderer->ivas_format == SBA_FORMAT ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM hBinRenConvModule->numTaps = hHrtf->ntaps_hrir_sba; #else hBinRenConvModule->numTaps = BINAURAL_NTAPS_SBA; #endif } else { #ifdef FIX_1123_FASTCONV_16BIT_ROM hBinRenConvModule->numTaps = hHrtf->ntaps_hrir_mc; #else hBinRenConvModule->numTaps = BINAURAL_NTAPS; #endif } /* Use fixed order filtering */ Loading Loading @@ -543,6 +555,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); Loading @@ -559,6 +589,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } #endif } } Loading @@ -570,6 +601,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA2" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); Loading @@ -586,6 +635,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } #endif } } Loading @@ -597,6 +647,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_FOA" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); Loading @@ -613,6 +681,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } #endif } } Loading @@ -628,7 +697,24 @@ ivas_error ivas_allocate_binaural_hrtf( if ( ( HrtfFastConv->leftHRIRReal == NULL ) && ( HrtfFastConv->leftHRIRImag == NULL ) && ( HrtfFastConv->rightHRIRReal == NULL ) && ( HrtfFastConv->rightHRIRImag == NULL ) ) #endif { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir_mc, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir_mc, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir_mc, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir_mc, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" ); Loading @@ -645,6 +731,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" ); } #endif } } Loading @@ -660,6 +747,24 @@ ivas_error ivas_allocate_binaural_hrtf( if ( ( HrtfFastConv->leftBRIRReal == NULL ) && ( HrtfFastConv->leftBRIRImag == NULL ) && ( HrtfFastConv->rightBRIRReal == NULL ) && ( HrtfFastConv->rightBRIRImag == NULL ) ) #endif { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRImag" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRReal" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS_MAX, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" ); Loading @@ -676,6 +781,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" ); } #endif } } Loading Loading @@ -757,7 +863,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_hrir_mc; k++ ) { HrtfFastConv->leftHRIRReal[i][j][k] = (float) leftHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->leftHRIRImag[i][j][k] = (float) leftHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); Loading @@ -777,7 +883,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS_MAX; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_brir; k++ ) { HrtfFastConv->leftBRIRReal[i][j][k] = (float) leftBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->leftBRIRImag[i][j][k] = (float) leftBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); Loading @@ -797,7 +903,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < HOA3_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_hrir_sba; k++ ) { HrtfFastConv->leftHRIRReal_HOA3[i][j][k] = (float) leftHRIRReal_HOA3[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ ); HrtfFastConv->leftHRIRImag_HOA3[i][j][k] = (float) leftHRIRImag_HOA3[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ ); Loading @@ -817,7 +923,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < HOA2_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_hrir_sba; k++ ) { HrtfFastConv->leftHRIRReal_HOA2[i][j][k] = (float) leftHRIRReal_HOA2[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ ); HrtfFastConv->leftHRIRImag_HOA2[i][j][k] = (float) leftHRIRImag_HOA2[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ ); Loading @@ -837,7 +943,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < FOA_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_hrir_sba; k++ ) { HrtfFastConv->leftHRIRReal_FOA[i][j][k] = (float) leftHRIRReal_FOA[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ ); HrtfFastConv->leftHRIRImag_FOA[i][j][k] = (float) leftHRIRImag_FOA[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ ); Loading lib_rend/ivas_stat_rend.h +10 −0 Original line number Diff line number Diff line Loading @@ -1253,12 +1253,17 @@ typedef struct ivas_hrtfs_crend_structure typedef struct ivas_hrtfs_fastconv_struct { float FASTCONV_HOA3_latency_s; #ifndef FIX_1123_FASTCONV_16BIT_ROM float FASTCONV_HRIR_latency_s; #endif float ***leftHRIRReal_HOA3; float ***leftHRIRImag_HOA3; float ***rightHRIRReal_HOA3; float ***rightHRIRImag_HOA3; #ifdef FIX_1123_FASTCONV_16BIT_ROM float FASTCONV_HRIR_latency_s; #endif float ***leftHRIRReal; float ***leftHRIRImag; float ***rightHRIRReal; Loading @@ -1283,6 +1288,11 @@ typedef struct ivas_hrtfs_fastconv_struct float FASTCONV_FOA_latency_s; int16_t allocate_init_flag; /*Memory allocation flag 0: if the hrtf pointers are allocated at application level , 1: of allocated at ivas_binaural_hrtf_open() */ #ifdef FIX_1123_FASTCONV_16BIT_ROM uint16_t ntaps_hrir_mc; uint16_t ntaps_hrir_sba; uint16_t ntaps_brir; #endif float fastconvReverberationTimes[CLDFB_NO_CHANNELS_MAX]; float fastconvReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; Loading lib_util/hrtf_file_reader.c +80 −40 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
lib_dec/ivas_binRenderer_internal.c +112 −6 Original line number Diff line number Diff line Loading @@ -167,7 +167,11 @@ static ivas_error ivas_binRenderer_convModuleOpen( if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM hBinRenConvModule->numTaps = hHrtf->ntaps_brir; #else hBinRenConvModule->numTaps = BINAURAL_NTAPS_MAX; #endif /* Use variable order filtering */ bandIdx = 0; Loading Loading @@ -196,11 +200,19 @@ static ivas_error ivas_binRenderer_convModuleOpen( { if ( hBinRenderer->ivas_format == SBA_FORMAT ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM hBinRenConvModule->numTaps = hHrtf->ntaps_hrir_sba; #else hBinRenConvModule->numTaps = BINAURAL_NTAPS_SBA; #endif } else { #ifdef FIX_1123_FASTCONV_16BIT_ROM hBinRenConvModule->numTaps = hHrtf->ntaps_hrir_mc; #else hBinRenConvModule->numTaps = BINAURAL_NTAPS; #endif } /* Use fixed order filtering */ Loading Loading @@ -543,6 +555,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); Loading @@ -559,6 +589,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } #endif } } Loading @@ -570,6 +601,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA2" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); Loading @@ -586,6 +635,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } #endif } } Loading @@ -597,6 +647,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_FOA" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_sba, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); Loading @@ -613,6 +681,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } #endif } } Loading @@ -628,7 +697,24 @@ ivas_error ivas_allocate_binaural_hrtf( if ( ( HrtfFastConv->leftHRIRReal == NULL ) && ( HrtfFastConv->leftHRIRImag == NULL ) && ( HrtfFastConv->rightHRIRReal == NULL ) && ( HrtfFastConv->rightHRIRImag == NULL ) ) #endif { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir_mc, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir_mc, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir_mc, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir_mc, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" ); Loading @@ -645,6 +731,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" ); } #endif } } Loading @@ -660,6 +747,24 @@ ivas_error ivas_allocate_binaural_hrtf( if ( ( HrtfFastConv->leftBRIRReal == NULL ) && ( HrtfFastConv->leftBRIRImag == NULL ) && ( HrtfFastConv->rightBRIRReal == NULL ) && ( HrtfFastConv->rightBRIRImag == NULL ) ) #endif { #ifdef FIX_1123_FASTCONV_16BIT_ROM if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRImag" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRReal" ); } if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS_MAX, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" ); Loading @@ -676,6 +781,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" ); } #endif } } Loading Loading @@ -757,7 +863,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_hrir_mc; k++ ) { HrtfFastConv->leftHRIRReal[i][j][k] = (float) leftHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); HrtfFastConv->leftHRIRImag[i][j][k] = (float) leftHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ ); Loading @@ -777,7 +883,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS_MAX; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_brir; k++ ) { HrtfFastConv->leftBRIRReal[i][j][k] = (float) leftBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); HrtfFastConv->leftBRIRImag[i][j][k] = (float) leftBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ ); Loading @@ -797,7 +903,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < HOA3_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_hrir_sba; k++ ) { HrtfFastConv->leftHRIRReal_HOA3[i][j][k] = (float) leftHRIRReal_HOA3[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ ); HrtfFastConv->leftHRIRImag_HOA3[i][j][k] = (float) leftHRIRImag_HOA3[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ ); Loading @@ -817,7 +923,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < HOA2_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_hrir_sba; k++ ) { HrtfFastConv->leftHRIRReal_HOA2[i][j][k] = (float) leftHRIRReal_HOA2[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ ); HrtfFastConv->leftHRIRImag_HOA2[i][j][k] = (float) leftHRIRImag_HOA2[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ ); Loading @@ -837,7 +943,7 @@ static ivas_error ivas_binaural_hrtf_open( for ( j = 0; j < FOA_CHANNELS; j++ ) { #ifdef FIX_1123_FASTCONV_16BIT_ROM for ( k = 0; k < BINAURAL_NTAPS; k++ ) for ( k = 0; k < HrtfFastConv->ntaps_hrir_sba; k++ ) { HrtfFastConv->leftHRIRReal_FOA[i][j][k] = (float) leftHRIRReal_FOA[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ ); HrtfFastConv->leftHRIRImag_FOA[i][j][k] = (float) leftHRIRImag_FOA[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ ); Loading
lib_rend/ivas_stat_rend.h +10 −0 Original line number Diff line number Diff line Loading @@ -1253,12 +1253,17 @@ typedef struct ivas_hrtfs_crend_structure typedef struct ivas_hrtfs_fastconv_struct { float FASTCONV_HOA3_latency_s; #ifndef FIX_1123_FASTCONV_16BIT_ROM float FASTCONV_HRIR_latency_s; #endif float ***leftHRIRReal_HOA3; float ***leftHRIRImag_HOA3; float ***rightHRIRReal_HOA3; float ***rightHRIRImag_HOA3; #ifdef FIX_1123_FASTCONV_16BIT_ROM float FASTCONV_HRIR_latency_s; #endif float ***leftHRIRReal; float ***leftHRIRImag; float ***rightHRIRReal; Loading @@ -1283,6 +1288,11 @@ typedef struct ivas_hrtfs_fastconv_struct float FASTCONV_FOA_latency_s; int16_t allocate_init_flag; /*Memory allocation flag 0: if the hrtf pointers are allocated at application level , 1: of allocated at ivas_binaural_hrtf_open() */ #ifdef FIX_1123_FASTCONV_16BIT_ROM uint16_t ntaps_hrir_mc; uint16_t ntaps_hrir_sba; uint16_t ntaps_brir; #endif float fastconvReverberationTimes[CLDFB_NO_CHANNELS_MAX]; float fastconvReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; Loading
lib_util/hrtf_file_reader.c +80 −40 File changed.Preview size limit exceeded, changes collapsed. Show changes