diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index 48d6cde2368d72c0b05f0f3c2c1596104dca2d82..e4a08b0540fbb3f8a9fd3af399fd02f415d5d54a 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -413,13 +413,14 @@ ivas_error ivas_dec( &st_ivas->hIntSetup, st_ivas->hEFAPdata, output, - output_Fs ) != IVAS_ERR_OK ) ) + output_Fs ) ) != IVAS_ERR_OK ) { return error; } #else ivas_crend_process( st_ivas, output ); #endif + ivas_binaural_add_LFE( st_ivas, output_frame, output ); } else if ( st_ivas->renderer_type == RENDERER_MC ) diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 0e5f58fc3db013319cef160349eb9dd037fdb30e..535ba14fb7630db4e38eca535265c7d2e6cd2132 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1187,14 +1187,16 @@ ivas_error ivas_init_decoder( return error; } } + if ( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), getRendAudioConfigFromIvasAudioConfig( st_ivas->intern_config ), getRendAudioConfigFromIvasAudioConfig( st_ivas->hDecoderConfig->output_config ), st_ivas->hRenderConfig, st_ivas->hDecoderConfig->Opt_Headrotation, - st_ivas->hDecoderConfig->output_Fs ) != IVAS_ERR_OK ) ) + st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) { return error; } + st_ivas->binaural_latency_ns = st_ivas->hCrendWrapper->binaural_latency_ns; #else if ( ivas_crend_open( st_ivas ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 75d122f20ec2fbfed1f47bcc71d81ed249e8f230..3836f7b7049b70ca1b2311d555a7e3131e99ef0b 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -1121,22 +1121,20 @@ static ivas_error ivas_mc_dec_reconfig( getRendAudioConfigFromIvasAudioConfig( st_ivas->intern_config ), getRendAudioConfigFromIvasAudioConfig( st_ivas->hDecoderConfig->output_config ), st_ivas->hRenderConfig, st_ivas->hDecoderConfig->Opt_Headrotation, - st_ivas->hDecoderConfig->output_Fs ) != IVAS_ERR_OK ) ) + st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) { return error; } st_ivas->binaural_latency_ns = st_ivas->hCrendWrapper->binaural_latency_ns; } #else - } - else if ( st_ivas->hCrend == NULL && ( st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) - { - if ( ivas_crend_open( st_ivas ) != IVAS_ERR_OK ) + else if ( st_ivas->hCrend == NULL && ( st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) { - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "ivas_crend_open failed" ); + if ( ivas_crend_open( st_ivas ) != IVAS_ERR_OK ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "ivas_crend_open failed" ); + } } - } - #endif } /* mono/stereo */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 61a3682680bdcf49c1f9b338505aa9dbe60373e0..c4d41ebc55ff7b59a2790778869ecabfd2b72ab7 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -3348,7 +3348,7 @@ ivas_error IVAS_REND_GetDelay( if ( hIvasRend->inputsIsm[i].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { #ifdef FIX_197_CREND_INTERFACE - latency_ns = max( hIvasRend->inputsIsm[i].crendWrapper->binaural_latency_ns, + latency_ns = max( ( hIvasRend->inputsIsm[i].crendWrapper != NULL ) ? hIvasRend->inputsIsm[i].crendWrapper->binaural_latency_ns : 0, hIvasRend->inputsIsm[i].tdRendWrapper.binaural_latency_ns ); #else latency_ns = max( hIvasRend->inputsIsm[i].crendWrapper.binaural_latency_ns, @@ -3363,7 +3363,7 @@ ivas_error IVAS_REND_GetDelay( if ( hIvasRend->inputsMc[i].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { #ifdef FIX_197_CREND_INTERFACE - latency_ns = max( hIvasRend->inputsMc[i].crendWrapper->binaural_latency_ns, + latency_ns = max( ( hIvasRend->inputsMc[i].crendWrapper != NULL ) ? hIvasRend->inputsMc[i].crendWrapper->binaural_latency_ns : 0, hIvasRend->inputsMc[i].tdRendWrapper.binaural_latency_ns ); #else latency_ns = max( hIvasRend->inputsMc[i].crendWrapper.binaural_latency_ns, @@ -3378,7 +3378,7 @@ ivas_error IVAS_REND_GetDelay( if ( hIvasRend->inputsSba[i].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { #ifdef FIX_197_CREND_INTERFACE - latency_ns = hIvasRend->inputsSba[i].crendWrapper->binaural_latency_ns; + latency_ns = ( hIvasRend->inputsSba[i].crendWrapper != NULL ) ? hIvasRend->inputsSba[i].crendWrapper->binaural_latency_ns : 0; #else latency_ns = hIvasRend->inputsSba[i].crendWrapper.binaural_latency_ns; #endif