Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ #define FIX_1383_HEAD_TRACK_SANITIZER /* Nok: issue 1383: Fix head tracking struc values reading in renderer */ #define FIX_1411_IGF_CRASH_BW_SWITCHING /* FhG: Fix for issue 1411: fixes crash that can happen for IGF with BW switching and DTX*/ #define NONBE_MDCT_ST_DTX_FIX_SUBOPT_SPATIAL_CNG /* FhG: Fix MDCT-Stereo comfort noise for certain noise types */ #define NONBE_FIX_NONBE_BETWEEN_OPTIMIZATION_LEVELS /* FhG: fix non-BE in DFT stereo encoder between optimization levels */ // object-editing feature porting #define FIX_HRTF_LOAD_API // solves API conflicts between HRTF and object-editing features Loading lib_enc/ivas_stereo_dft_enc.c +12 −0 Original line number Diff line number Diff line Loading @@ -1318,12 +1318,24 @@ void stereo_dft_enc_process( if ( hStereoDft->hItd->deltaItd[k_offset] != 0 && hStereoDft->hConfig->dmx_active ) { #ifdef NONBE_FIX_NONBE_BETWEEN_OPTIMIZATION_LEVELS /* Note: this variable is used as an in-between step when passing the angle to the trig functions. * this keeps the compilter from applying optimizations at higher optimizaton levels which can break bit-exactness */ volatile float alpha_tmp; #endif /*time shift channels*/ alpha = -2.0f * EVS_PI * hStereoDft->hItd->deltaItd[k_offset] / hStereoDft->NFFT; c = 1.f; /*cos(0)*/ s = 0.f; /*sin(0)*/ #ifdef NONBE_FIX_NONBE_BETWEEN_OPTIMIZATION_LEVELS alpha_tmp = alpha; c1 = cosf( alpha_tmp ); s1 = sinf( alpha_tmp ); #else c1 = cosf( alpha ); s1 = sinf( alpha ); #endif if ( alpha >= 0 ) { Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ #define FIX_1383_HEAD_TRACK_SANITIZER /* Nok: issue 1383: Fix head tracking struc values reading in renderer */ #define FIX_1411_IGF_CRASH_BW_SWITCHING /* FhG: Fix for issue 1411: fixes crash that can happen for IGF with BW switching and DTX*/ #define NONBE_MDCT_ST_DTX_FIX_SUBOPT_SPATIAL_CNG /* FhG: Fix MDCT-Stereo comfort noise for certain noise types */ #define NONBE_FIX_NONBE_BETWEEN_OPTIMIZATION_LEVELS /* FhG: fix non-BE in DFT stereo encoder between optimization levels */ // object-editing feature porting #define FIX_HRTF_LOAD_API // solves API conflicts between HRTF and object-editing features Loading
lib_enc/ivas_stereo_dft_enc.c +12 −0 Original line number Diff line number Diff line Loading @@ -1318,12 +1318,24 @@ void stereo_dft_enc_process( if ( hStereoDft->hItd->deltaItd[k_offset] != 0 && hStereoDft->hConfig->dmx_active ) { #ifdef NONBE_FIX_NONBE_BETWEEN_OPTIMIZATION_LEVELS /* Note: this variable is used as an in-between step when passing the angle to the trig functions. * this keeps the compilter from applying optimizations at higher optimizaton levels which can break bit-exactness */ volatile float alpha_tmp; #endif /*time shift channels*/ alpha = -2.0f * EVS_PI * hStereoDft->hItd->deltaItd[k_offset] / hStereoDft->NFFT; c = 1.f; /*cos(0)*/ s = 0.f; /*sin(0)*/ #ifdef NONBE_FIX_NONBE_BETWEEN_OPTIMIZATION_LEVELS alpha_tmp = alpha; c1 = cosf( alpha_tmp ); s1 = sinf( alpha_tmp ); #else c1 = cosf( alpha ); s1 = sinf( alpha ); #endif if ( alpha >= 0 ) { Loading