diff --git a/lib_com/options.h b/lib_com/options.h index 556b6f79b027a4be7bea4c59bc71d2f96a5b495c..6f7547635813c3274c3b1520ddce7e9868539340 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -220,6 +220,8 @@ #define COMPLEXITY_LEVEL_INDICATION +#define FIX_642 /* FhG: Fix for issue 642, buggy DoA-array access in DirAC head rotation*/ + #define VARIABLE_SPEED_DECODING /* FhG: variable speed decoding employing the JBM functioniality */ #define JBM_TSM_ON_TCS /* FhG: run the TSM part of JBM on the TCs instead of the final output pcm waveforms */ diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 861b7da54545d30ba6ca1f56cc9fd47e39d4a9df..cb7c9f5b9afe00a869f2a6d93fcadef4e3caa299 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -2922,6 +2922,7 @@ void ivas_dirac_dec_render_sf( #endif #ifdef JBM_TSM_ON_TCS /* Another workaround for self test BE */ +#ifndef FIX_642 if ( st_ivas->hHeadTrackData && st_ivas->hDecoderConfig->voip_active == 0 ) { QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[st_ivas->hHeadTrackData->num_quaternions++], st_ivas->hHeadTrackData->Rmat ); @@ -2942,6 +2943,7 @@ void ivas_dirac_dec_render_sf( { p_Rmat = 0; } +#endif /* copy parameters into local buffers*/ @@ -2976,7 +2978,11 @@ void ivas_dirac_dec_render_sf( } #ifdef JBM_TSM_ON_TCS - if ( st_ivas->hHeadTrackData && st_ivas->hDecoderConfig->voip_active == 1 ) + if ( st_ivas->hHeadTrackData +#ifndef FIX_642 + && st_ivas->hDecoderConfig->voip_active == 1 +#endif + ) #else if ( st_ivas->hHeadTrackData ) #endif @@ -2996,7 +3002,6 @@ void ivas_dirac_dec_render_sf( { #ifdef JBM_TSM_ON_TCS rotateAziEle_DirAC( azimuth[slot_idx], elevation[slot_idx], num_freq_bands, hDirAC->num_freq_bands, p_Rmat ); - #else /* note, this seems wrong since it does not take the dirac read ptr into account */ index_slot = subframe_idx * hDirAC->subframe_nbslots + slot_idx; @@ -3006,7 +3011,7 @@ void ivas_dirac_dec_render_sf( } } } -#ifdef JBM_TSM_ON_TCS +#if defined( JBM_TSM_ON_TCS ) & !defined( FIX_642 ) else if ( !st_ivas->hHeadTrackData ) #else else