Loading lib_com/options.h +2 −2 Original line number Diff line number Diff line Loading @@ -159,8 +159,8 @@ #define FIX_712_713_SPLIT_REND_MASA_MC /*Dlb : Fix for issue 712 and 713*/ #endif #define FIX_818_DOUBLE_PREC_KERNEN_SW /* FhG: Issue 818: Avoid double precision in kernel switching */ #define FIX_818_DOUBLE_PREC_KERNEL_SW /* FhG: Issue 818: Avoid double precision in kernel switching */ #define FIX_822_REFACTOR_BIN_REVERB_OPEN /* Nokia: Addresses first step of issue 822 by refactoring ivas_binaural_reverb_open */ /* #################### End BE switches ################################## */ Loading lib_dec/ivas_binRenderer_internal.c +4 −0 Original line number Diff line number Diff line Loading @@ -1230,7 +1230,11 @@ ivas_error ivas_binRenderer_open( /* Allocate memories needed for reverb module */ if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->hIntSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN if ( ( error = ivas_binaural_reverb_open_fastconv( &( hBinRenderer->hReverb ), hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hIntSetup.output_config, st_ivas->hDecoderConfig->output_Fs, st_ivas->hHrtfFastConv ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_binaural_reverb_open( &( hBinRenderer->hReverb ), hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hIntSetup.output_config, st_ivas->hDecoderConfig->output_Fs, RENDERER_BINAURAL_FASTCONV, st_ivas->hHrtfFastConv, st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK ) #endif { return error; } Loading lib_rend/ivas_dirac_dec_binaural_functions.c +6 −1 Original line number Diff line number Diff line Loading @@ -234,7 +234,12 @@ ivas_error ivas_dirac_dec_init_binaural_data( if ( hDiracDecBin->hReverb == NULL ) #endif { #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN /* Todo Philips: Room acoustics should be passed here once the underlying part works. Probably enough to pick it from st_ivas but you know best. */ if ( ( error = ivas_binaural_reverb_open_parambin( &hDiracDecBin->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, output_Fs, st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_binaural_reverb_open( &hDiracDecBin->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, st_ivas->hIntSetup.output_config, output_Fs, RENDERER_BINAURAL_PARAMETRIC_ROOM, st_ivas->hHrtfFastConv, st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK ) #endif { return error; } Loading lib_rend/ivas_prot_rend.h +21 −0 Original line number Diff line number Diff line Loading @@ -882,6 +882,26 @@ ivas_error ivas_rend_crendProcessSubframe( * Reverberator *----------------------------------------------------------------------------------*/ #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN ivas_error ivas_binaural_reverb_open_fastconv( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const AUDIO_CONFIG internal_config, /* i : internal audio config for FastConv */ const int32_t sampling_rate, /* i : sampling rate */ const HRTFS_FASTCONV_HANDLE hHrtfFastConv /* i : FastConv HRTF handle */ ); ivas_error ivas_binaural_reverb_open_parambin( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const int32_t sampling_rate, /* i : sampling rate */ const HRTFS_PARAMBIN_HANDLE hHrtfParambin /* i : Parametric binauralizer HRTF handle */ ); #else ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ Loading @@ -893,6 +913,7 @@ ivas_error ivas_binaural_reverb_open( const HRTFS_FASTCONV_HANDLE hHrtfFastConv, /* i : FastConv HRTF handle */ const HRTFS_PARAMBIN_HANDLE hHrtfParambin /* i : Parametric binauralizer HRTF handle */ ); #endif void ivas_binaural_reverb_close( REVERB_STRUCT_HANDLE *hReverb /* i/o: binaural reverb handle */ Loading lib_rend/ivas_reverb.c +118 −2 Original line number Diff line number Diff line Loading @@ -1777,6 +1777,17 @@ void ivas_binaural_reverb_processSubframe( * Allocate and initialize binaural room reverberator handle *------------------------------------------------------------------------*/ #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN static ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ const int32_t sampling_rate, /* i : sampling rate */ const float *revTimes, /* i : reverberation times T60 for each CLDFB bin in seconds */ const float *revEnes, /* i : spectrum for reverberated sound at each CLDFB bin */ const int16_t preDelay /* i : reverb pre-delay in CLDFB slots */ ) #else ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ Loading @@ -1788,13 +1799,16 @@ ivas_error ivas_binaural_reverb_open( const HRTFS_FASTCONV_HANDLE hHrtfFastConv, /* i : FastConv HRTF handle */ const HRTFS_PARAMBIN_HANDLE hHrtfParambin /* i : Parametric binauralizer HRTF handle */ ) #endif { int16_t bin, chIdx, k, len; REVERB_STRUCT_HANDLE hReverb; #ifndef FIX_822_REFACTOR_BIN_REVERB_OPEN const float *revTimes; float t60[CLDFB_NO_CHANNELS_MAX]; float ene[CLDFB_NO_CHANNELS_MAX]; ivas_error error; #endif if ( ( *hReverbPr = (REVERB_STRUCT_HANDLE) malloc( sizeof( REVERB_STRUCT ) ) ) == NULL ) { Loading @@ -1816,6 +1830,7 @@ ivas_error ivas_binaural_reverb_open( set_f( hReverb->preDelayBufferImag[k], 0.0f, hReverb->numBins ); } #ifndef FIX_822_REFACTOR_BIN_REVERB_OPEN if ( renderer_type == RENDERER_BINAURAL_FASTCONV ) { if ( !roomAcoustics->override ) Loading @@ -1831,7 +1846,7 @@ ivas_error ivas_binaural_reverb_open( { revTimes = hHrtfParambin->parametricReverberationTimes; } #endif for ( bin = 0; bin < hReverb->numBins; bin++ ) { /* Loop Buffer */ Loading Loading @@ -1894,7 +1909,10 @@ ivas_error ivas_binaural_reverb_open( } } #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN ivas_binaural_reverb_setReverbTimes( hReverb, sampling_rate, revTimes, revEnes ); ivas_binaural_reverb_setPreDelay( hReverb, preDelay ); #else if ( ( roomAcoustics ) && ( roomAcoustics->override ) ) { if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfFastConv, output_config, false, sampling_rate, t60, ene ) ) != IVAS_ERR_OK ) Loading @@ -1917,11 +1935,109 @@ ivas_error ivas_binaural_reverb_open( ivas_binaural_reverb_setPreDelay( hReverb, 10 ); } } #endif return IVAS_ERR_OK; } #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN /*------------------------------------------------------------------------- * ivas_binaural_reverb_open_fastconv() * * Allocate and initialize binaural room reverberator handle for FastConv *------------------------------------------------------------------------*/ ivas_error ivas_binaural_reverb_open_fastconv( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const AUDIO_CONFIG internal_config, /* i : internal audio config for FastConv */ const int32_t sampling_rate, /* i : sampling rate */ const HRTFS_FASTCONV_HANDLE hHrtfFastConv /* i : FastConv HRTF handle */ ) { ivas_error error; const float *revTimes; const float *revEne; float t60[CLDFB_NO_CHANNELS_MAX]; float ene[CLDFB_NO_CHANNELS_MAX]; int16_t preDelay; error = IVAS_ERR_OK; if ( ( roomAcoustics != NULL ) && roomAcoustics->override ) { revTimes = t60; revEne = ene; if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfFastConv, internal_config, false, sampling_rate, t60, ene ) ) != IVAS_ERR_OK ) { return error; } preDelay = (int16_t) roundf( 48000.0f * roomAcoustics->acousticPreDelay / CLDFB_NO_CHANNELS_MAX ); } else { revTimes = hHrtfFastConv->fastconvReverberationTimes; revEne = hHrtfFastConv->fastconvReverberationEneCorrections; preDelay = 10; } error = ivas_binaural_reverb_open( hReverbPr, numBins, numCldfbSlotsPerFrame, sampling_rate, revTimes, revEne, preDelay ); return error; } /*------------------------------------------------------------------------- * ivas_binaural_reverb_open_parambin() * * Allocate and initialize binaural room reverberator handle for ParamBin *------------------------------------------------------------------------*/ ivas_error ivas_binaural_reverb_open_parambin( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const int32_t sampling_rate, /* i : sampling rate */ const HRTFS_PARAMBIN_HANDLE hHrtfParambin /* i : Parametric binauralizer HRTF handle */ ) { ivas_error error; const float *revTimes; const float *revEne; float t60[CLDFB_NO_CHANNELS_MAX]; float ene[CLDFB_NO_CHANNELS_MAX]; int16_t preDelay; error = IVAS_ERR_OK; if ( ( roomAcoustics != NULL ) && roomAcoustics->override ) { revTimes = t60; revEne = ene; /* Todo Philips: This needs a suitable function for ParamBin here. */ // if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfFastConv, internal_config, false, sampling_rate, t60, ene ) ) != IVAS_ERR_OK ) // { // return error; // } preDelay = (int16_t) roundf( 48000.0f * roomAcoustics->acousticPreDelay / CLDFB_NO_CHANNELS_MAX ); } else { revTimes = hHrtfParambin->parametricReverberationTimes; revEne = hHrtfParambin->parametricReverberationEneCorrections; preDelay = 10; } error = ivas_binaural_reverb_open( hReverbPr, numBins, numCldfbSlotsPerFrame, sampling_rate, revTimes, revEne, preDelay ); return error; } #endif /*------------------------------------------------------------------------- * ivas_binaural_reverb_close() * Loading Loading
lib_com/options.h +2 −2 Original line number Diff line number Diff line Loading @@ -159,8 +159,8 @@ #define FIX_712_713_SPLIT_REND_MASA_MC /*Dlb : Fix for issue 712 and 713*/ #endif #define FIX_818_DOUBLE_PREC_KERNEN_SW /* FhG: Issue 818: Avoid double precision in kernel switching */ #define FIX_818_DOUBLE_PREC_KERNEL_SW /* FhG: Issue 818: Avoid double precision in kernel switching */ #define FIX_822_REFACTOR_BIN_REVERB_OPEN /* Nokia: Addresses first step of issue 822 by refactoring ivas_binaural_reverb_open */ /* #################### End BE switches ################################## */ Loading
lib_dec/ivas_binRenderer_internal.c +4 −0 Original line number Diff line number Diff line Loading @@ -1230,7 +1230,11 @@ ivas_error ivas_binRenderer_open( /* Allocate memories needed for reverb module */ if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->hIntSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN if ( ( error = ivas_binaural_reverb_open_fastconv( &( hBinRenderer->hReverb ), hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hIntSetup.output_config, st_ivas->hDecoderConfig->output_Fs, st_ivas->hHrtfFastConv ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_binaural_reverb_open( &( hBinRenderer->hReverb ), hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hIntSetup.output_config, st_ivas->hDecoderConfig->output_Fs, RENDERER_BINAURAL_FASTCONV, st_ivas->hHrtfFastConv, st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK ) #endif { return error; } Loading
lib_rend/ivas_dirac_dec_binaural_functions.c +6 −1 Original line number Diff line number Diff line Loading @@ -234,7 +234,12 @@ ivas_error ivas_dirac_dec_init_binaural_data( if ( hDiracDecBin->hReverb == NULL ) #endif { #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN /* Todo Philips: Room acoustics should be passed here once the underlying part works. Probably enough to pick it from st_ivas but you know best. */ if ( ( error = ivas_binaural_reverb_open_parambin( &hDiracDecBin->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, output_Fs, st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_binaural_reverb_open( &hDiracDecBin->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, st_ivas->hIntSetup.output_config, output_Fs, RENDERER_BINAURAL_PARAMETRIC_ROOM, st_ivas->hHrtfFastConv, st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK ) #endif { return error; } Loading
lib_rend/ivas_prot_rend.h +21 −0 Original line number Diff line number Diff line Loading @@ -882,6 +882,26 @@ ivas_error ivas_rend_crendProcessSubframe( * Reverberator *----------------------------------------------------------------------------------*/ #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN ivas_error ivas_binaural_reverb_open_fastconv( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const AUDIO_CONFIG internal_config, /* i : internal audio config for FastConv */ const int32_t sampling_rate, /* i : sampling rate */ const HRTFS_FASTCONV_HANDLE hHrtfFastConv /* i : FastConv HRTF handle */ ); ivas_error ivas_binaural_reverb_open_parambin( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const int32_t sampling_rate, /* i : sampling rate */ const HRTFS_PARAMBIN_HANDLE hHrtfParambin /* i : Parametric binauralizer HRTF handle */ ); #else ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ Loading @@ -893,6 +913,7 @@ ivas_error ivas_binaural_reverb_open( const HRTFS_FASTCONV_HANDLE hHrtfFastConv, /* i : FastConv HRTF handle */ const HRTFS_PARAMBIN_HANDLE hHrtfParambin /* i : Parametric binauralizer HRTF handle */ ); #endif void ivas_binaural_reverb_close( REVERB_STRUCT_HANDLE *hReverb /* i/o: binaural reverb handle */ Loading
lib_rend/ivas_reverb.c +118 −2 Original line number Diff line number Diff line Loading @@ -1777,6 +1777,17 @@ void ivas_binaural_reverb_processSubframe( * Allocate and initialize binaural room reverberator handle *------------------------------------------------------------------------*/ #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN static ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ const int32_t sampling_rate, /* i : sampling rate */ const float *revTimes, /* i : reverberation times T60 for each CLDFB bin in seconds */ const float *revEnes, /* i : spectrum for reverberated sound at each CLDFB bin */ const int16_t preDelay /* i : reverb pre-delay in CLDFB slots */ ) #else ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ Loading @@ -1788,13 +1799,16 @@ ivas_error ivas_binaural_reverb_open( const HRTFS_FASTCONV_HANDLE hHrtfFastConv, /* i : FastConv HRTF handle */ const HRTFS_PARAMBIN_HANDLE hHrtfParambin /* i : Parametric binauralizer HRTF handle */ ) #endif { int16_t bin, chIdx, k, len; REVERB_STRUCT_HANDLE hReverb; #ifndef FIX_822_REFACTOR_BIN_REVERB_OPEN const float *revTimes; float t60[CLDFB_NO_CHANNELS_MAX]; float ene[CLDFB_NO_CHANNELS_MAX]; ivas_error error; #endif if ( ( *hReverbPr = (REVERB_STRUCT_HANDLE) malloc( sizeof( REVERB_STRUCT ) ) ) == NULL ) { Loading @@ -1816,6 +1830,7 @@ ivas_error ivas_binaural_reverb_open( set_f( hReverb->preDelayBufferImag[k], 0.0f, hReverb->numBins ); } #ifndef FIX_822_REFACTOR_BIN_REVERB_OPEN if ( renderer_type == RENDERER_BINAURAL_FASTCONV ) { if ( !roomAcoustics->override ) Loading @@ -1831,7 +1846,7 @@ ivas_error ivas_binaural_reverb_open( { revTimes = hHrtfParambin->parametricReverberationTimes; } #endif for ( bin = 0; bin < hReverb->numBins; bin++ ) { /* Loop Buffer */ Loading Loading @@ -1894,7 +1909,10 @@ ivas_error ivas_binaural_reverb_open( } } #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN ivas_binaural_reverb_setReverbTimes( hReverb, sampling_rate, revTimes, revEnes ); ivas_binaural_reverb_setPreDelay( hReverb, preDelay ); #else if ( ( roomAcoustics ) && ( roomAcoustics->override ) ) { if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfFastConv, output_config, false, sampling_rate, t60, ene ) ) != IVAS_ERR_OK ) Loading @@ -1917,11 +1935,109 @@ ivas_error ivas_binaural_reverb_open( ivas_binaural_reverb_setPreDelay( hReverb, 10 ); } } #endif return IVAS_ERR_OK; } #ifdef FIX_822_REFACTOR_BIN_REVERB_OPEN /*------------------------------------------------------------------------- * ivas_binaural_reverb_open_fastconv() * * Allocate and initialize binaural room reverberator handle for FastConv *------------------------------------------------------------------------*/ ivas_error ivas_binaural_reverb_open_fastconv( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const AUDIO_CONFIG internal_config, /* i : internal audio config for FastConv */ const int32_t sampling_rate, /* i : sampling rate */ const HRTFS_FASTCONV_HANDLE hHrtfFastConv /* i : FastConv HRTF handle */ ) { ivas_error error; const float *revTimes; const float *revEne; float t60[CLDFB_NO_CHANNELS_MAX]; float ene[CLDFB_NO_CHANNELS_MAX]; int16_t preDelay; error = IVAS_ERR_OK; if ( ( roomAcoustics != NULL ) && roomAcoustics->override ) { revTimes = t60; revEne = ene; if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfFastConv, internal_config, false, sampling_rate, t60, ene ) ) != IVAS_ERR_OK ) { return error; } preDelay = (int16_t) roundf( 48000.0f * roomAcoustics->acousticPreDelay / CLDFB_NO_CHANNELS_MAX ); } else { revTimes = hHrtfFastConv->fastconvReverberationTimes; revEne = hHrtfFastConv->fastconvReverberationEneCorrections; preDelay = 10; } error = ivas_binaural_reverb_open( hReverbPr, numBins, numCldfbSlotsPerFrame, sampling_rate, revTimes, revEne, preDelay ); return error; } /*------------------------------------------------------------------------- * ivas_binaural_reverb_open_parambin() * * Allocate and initialize binaural room reverberator handle for ParamBin *------------------------------------------------------------------------*/ ivas_error ivas_binaural_reverb_open_parambin( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const int32_t sampling_rate, /* i : sampling rate */ const HRTFS_PARAMBIN_HANDLE hHrtfParambin /* i : Parametric binauralizer HRTF handle */ ) { ivas_error error; const float *revTimes; const float *revEne; float t60[CLDFB_NO_CHANNELS_MAX]; float ene[CLDFB_NO_CHANNELS_MAX]; int16_t preDelay; error = IVAS_ERR_OK; if ( ( roomAcoustics != NULL ) && roomAcoustics->override ) { revTimes = t60; revEne = ene; /* Todo Philips: This needs a suitable function for ParamBin here. */ // if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfFastConv, internal_config, false, sampling_rate, t60, ene ) ) != IVAS_ERR_OK ) // { // return error; // } preDelay = (int16_t) roundf( 48000.0f * roomAcoustics->acousticPreDelay / CLDFB_NO_CHANNELS_MAX ); } else { revTimes = hHrtfParambin->parametricReverberationTimes; revEne = hHrtfParambin->parametricReverberationEneCorrections; preDelay = 10; } error = ivas_binaural_reverb_open( hReverbPr, numBins, numCldfbSlotsPerFrame, sampling_rate, revTimes, revEne, preDelay ); return error; } #endif /*------------------------------------------------------------------------- * ivas_binaural_reverb_close() * Loading