Loading lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ /* #################### Start NON-BE switches ############################ */ /* any switch which is non-be wrt. TS 26.258 V3.0 */ #define FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW /* Orange: float issue 1548: Harmonize non diegetic panning law in ISM and renderers */ #define FIX_1543_MID_LSF_BITS /* VA: float issue 1543: Resolve "MSAN: use-of-uninitialized-value in lib_enc/lsf_enc.c:262:5 for EVS encoder" */ Loading lib_rend/ivas_objectRenderer_sources.c +6 −0 Original line number Diff line number Diff line Loading @@ -390,8 +390,14 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( *Gain = 1.0f; set_f( hrf_left, 0.0f, *filterlength ); set_f( hrf_right, 0.0f, *filterlength ); #ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW float pan = ( SrcSpatial_p->Pos_p[1] + 1.f ) * 0.5f; hrf_left[0] = sinf( pan * EVS_PI * 0.5f ); hrf_right[0] = cosf( pan * EVS_PI * 0.5f ); #else hrf_left[0] = ( SrcSpatial_p->Pos_p[1] + 1.f ) * 0.5f; hrf_right[0] = 1.f - hrf_left[0]; #endif *intp_count = MAX_INTERPOLATION_STEPS; Src_p->elev_prev = 0; Src_p->azim_prev = 360.0f; /* Dummy angle -- sets max interpolation if switching to TDREND_POSTYPE_ABSOLUTE */ Loading lib_rend/lib_rend.c +18 −0 Original line number Diff line number Diff line Loading @@ -2234,8 +2234,14 @@ static ivas_error updateMcPanGainsForMcOut( { if ( ( inputMc->base.inConfig == IVAS_AUDIO_CONFIG_MONO ) && ( inputMc->nonDiegeticPan ) ) { #ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW float pan = ( inputMc->nonDiegeticPanGain + 1.f ) * 0.5f; inputMc->panGains[0][0] = sinf( pan * EVS_PI * 0.5f ); inputMc->panGains[0][1] = cosf( pan * EVS_PI * 0.5f ); #else inputMc->panGains[0][0] = ( inputMc->nonDiegeticPanGain + 1.f ) * 0.5f; inputMc->panGains[0][1] = 1.f - inputMc->panGains[0][0]; #endif error = IVAS_ERR_OK; } else Loading Loading @@ -2369,8 +2375,14 @@ static ivas_error updateMcPanGainsForBinauralOut( setZeroPanMatrix( inputMc->panGains ); if ( inputMc->base.inConfig == IVAS_AUDIO_CONFIG_MONO ) { #ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW float pan = ( inputMc->nonDiegeticPanGain + 1.f ) * 0.5f; inputMc->panGains[0][0] = sinf( pan * EVS_PI * 0.5f ); inputMc->panGains[0][1] = cosf( pan * EVS_PI * 0.5f ); #else inputMc->panGains[0][0] = ( inputMc->nonDiegeticPanGain + 1.f ) * 0.5f; inputMc->panGains[0][1] = 1.f - inputMc->panGains[0][0]; #endif } else { Loading Loading @@ -5988,8 +6000,14 @@ static ivas_error renderIsmToMc( { if ( ismInput->nonDiegeticPan ) { #ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW float pan = ( ismInput->nonDiegeticPanGain + 1.f ) * 0.5f; ismInput->prev_pan_gains[0] = currentPanGains[0] = sinf( pan * EVS_PI * 0.5f ); ismInput->prev_pan_gains[1] = currentPanGains[1] = cosf( pan * EVS_PI * 0.5f ); #else ismInput->prev_pan_gains[0] = currentPanGains[0] = ( ismInput->nonDiegeticPanGain + 1.f ) * 0.5f; ismInput->prev_pan_gains[1] = currentPanGains[1] = 1.f - currentPanGains[0]; #endif } else { Loading Loading
lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ /* #################### Start NON-BE switches ############################ */ /* any switch which is non-be wrt. TS 26.258 V3.0 */ #define FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW /* Orange: float issue 1548: Harmonize non diegetic panning law in ISM and renderers */ #define FIX_1543_MID_LSF_BITS /* VA: float issue 1543: Resolve "MSAN: use-of-uninitialized-value in lib_enc/lsf_enc.c:262:5 for EVS encoder" */ Loading
lib_rend/ivas_objectRenderer_sources.c +6 −0 Original line number Diff line number Diff line Loading @@ -390,8 +390,14 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( *Gain = 1.0f; set_f( hrf_left, 0.0f, *filterlength ); set_f( hrf_right, 0.0f, *filterlength ); #ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW float pan = ( SrcSpatial_p->Pos_p[1] + 1.f ) * 0.5f; hrf_left[0] = sinf( pan * EVS_PI * 0.5f ); hrf_right[0] = cosf( pan * EVS_PI * 0.5f ); #else hrf_left[0] = ( SrcSpatial_p->Pos_p[1] + 1.f ) * 0.5f; hrf_right[0] = 1.f - hrf_left[0]; #endif *intp_count = MAX_INTERPOLATION_STEPS; Src_p->elev_prev = 0; Src_p->azim_prev = 360.0f; /* Dummy angle -- sets max interpolation if switching to TDREND_POSTYPE_ABSOLUTE */ Loading
lib_rend/lib_rend.c +18 −0 Original line number Diff line number Diff line Loading @@ -2234,8 +2234,14 @@ static ivas_error updateMcPanGainsForMcOut( { if ( ( inputMc->base.inConfig == IVAS_AUDIO_CONFIG_MONO ) && ( inputMc->nonDiegeticPan ) ) { #ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW float pan = ( inputMc->nonDiegeticPanGain + 1.f ) * 0.5f; inputMc->panGains[0][0] = sinf( pan * EVS_PI * 0.5f ); inputMc->panGains[0][1] = cosf( pan * EVS_PI * 0.5f ); #else inputMc->panGains[0][0] = ( inputMc->nonDiegeticPanGain + 1.f ) * 0.5f; inputMc->panGains[0][1] = 1.f - inputMc->panGains[0][0]; #endif error = IVAS_ERR_OK; } else Loading Loading @@ -2369,8 +2375,14 @@ static ivas_error updateMcPanGainsForBinauralOut( setZeroPanMatrix( inputMc->panGains ); if ( inputMc->base.inConfig == IVAS_AUDIO_CONFIG_MONO ) { #ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW float pan = ( inputMc->nonDiegeticPanGain + 1.f ) * 0.5f; inputMc->panGains[0][0] = sinf( pan * EVS_PI * 0.5f ); inputMc->panGains[0][1] = cosf( pan * EVS_PI * 0.5f ); #else inputMc->panGains[0][0] = ( inputMc->nonDiegeticPanGain + 1.f ) * 0.5f; inputMc->panGains[0][1] = 1.f - inputMc->panGains[0][0]; #endif } else { Loading Loading @@ -5988,8 +6000,14 @@ static ivas_error renderIsmToMc( { if ( ismInput->nonDiegeticPan ) { #ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW float pan = ( ismInput->nonDiegeticPanGain + 1.f ) * 0.5f; ismInput->prev_pan_gains[0] = currentPanGains[0] = sinf( pan * EVS_PI * 0.5f ); ismInput->prev_pan_gains[1] = currentPanGains[1] = cosf( pan * EVS_PI * 0.5f ); #else ismInput->prev_pan_gains[0] = currentPanGains[0] = ( ismInput->nonDiegeticPanGain + 1.f ) * 0.5f; ismInput->prev_pan_gains[1] = currentPanGains[1] = 1.f - currentPanGains[0]; #endif } else { Loading