Loading apps/decoder.c +8 −1 Original line number Diff line number Diff line Loading @@ -189,8 +189,11 @@ int main( /*------------------------------------------------------------------------------------------* * Open decoder handle *------------------------------------------------------------------------------------------*/ #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.no_diegetic_pan ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.orientation_tracking, arg.no_diegetic_pan ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "Open failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; Loading Loading @@ -355,7 +358,11 @@ int main( * Configure the decoder *------------------------------------------------------------------------------------------*/ #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; Loading apps/renderer.c +24 −0 Original line number Diff line number Diff line Loading @@ -1374,23 +1374,43 @@ static bool parseOrientationTracking( if ( strcmp( value, "NONE" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_NONE; #else *tracking_type = IVAS_ORIENT_TRK_NONE; #endif } else if ( strcmp( value, "REF" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_REF; #else *tracking_type = IVAS_ORIENT_TRK_REF; #endif } else if ( strcmp( value, "AVG" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_AVG; #else *tracking_type = IVAS_ORIENT_TRK_AVG; #endif } else if ( strcmp( value, "REF_VEC" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_REF_VEC; #else *tracking_type = IVAS_ORIENT_TRK_REF_VEC; #endif } else if ( strcmp( value, "REF_VEC_LEV" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_REF_VEC_LEV; #else *tracking_type = IVAS_ORIENT_TRK_REF_VEC_LEV; #endif } else { Loading Loading @@ -1614,7 +1634,11 @@ static CmdlnArgs defaultArgs( clearString( args.customHrtfFilePath ); clearString( args.renderConfigFilePath ); #ifdef FIX_439_OTR_PARAMS args.orientationTracking = HEAD_ORIENT_TRK_NONE; #else args.orientationTracking = IVAS_ORIENT_TRK_NONE; #endif args.noDiegeticPan = 0.0f; args.delayCompensationEnabled = true; Loading lib_com/ivas_cnst.h +11 −1 Original line number Diff line number Diff line Loading @@ -1544,6 +1544,16 @@ typedef enum *----------------------------------------------------------------------------------*/ /* Orientation tracking types */ #ifdef FIX_439_OTR_PARAMS typedef enum { HEAD_ORIENT_TRK_NONE, HEAD_ORIENT_TRK_REF, HEAD_ORIENT_TRK_AVG, HEAD_ORIENT_TRK_REF_VEC, HEAD_ORIENT_TRK_REF_VEC_LEV } HEAD_ORIENT_TRK_TYPE; #else #define IVAS_ORIENT_TRK_NONE 0 #define IVAS_ORIENT_TRK_REF 1 #define IVAS_ORIENT_TRK_AVG 2 Loading @@ -1559,7 +1569,7 @@ typedef enum OTR_TRACKING_REF_VEC = IVAS_ORIENT_TRK_REF_VEC, /* track orientation relative to external reference vector */ OTR_TRACKING_REF_VEC_LEV = IVAS_ORIENT_TRK_REF_VEC_LEV /* track orientation relative to level component of external reference vector */ } OTR_TRACKING_T; #endif /*----------------------------------------------------------------------------------* * Reverberator constants Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -188,6 +188,7 @@ #define FIX_446_STEREO_DMX_CRASH /* FhG: fix discrepancy with EVS code that could cause crashes in rare cases */ #define FIX_386_CORECODER_RECONFIG_2 /* VA: Issue 386: Resolve remaining ToDo comments in CoreCoder reconfig. */ #define FIX_439_OTR_PARAMS /* Philips: Issue 439: orientation tracking parameter aspects. */ #define FIX_440_PARAM_ISM_DIR_NOISE /* FhG: Issue 440: Fix directional background noise becoming diffuse in ParamISM */ #define FIX_445_SNS_BUGFIXES /* FhG: bug fix for spectral tilt in SNS computation + necessary update of codebooks and converison to fixedpoint-compatible tables */ Loading lib_dec/ivas_init_dec.c +7 −0 Original line number Diff line number Diff line Loading @@ -750,6 +750,12 @@ ivas_error ivas_init_decoder( if ( st_ivas->hDecoderConfig->Opt_Headrotation ) { #ifdef FIX_439_OTR_PARAMS if ( ( error = ivas_orient_trk_SetTrackingType( st_ivas->hHeadTrackData->OrientationTracker, st_ivas->hDecoderConfig->orientation_tracking ) ) != IVAS_ERR_OK ) { return error; } #else if ( st_ivas->hDecoderConfig->orientation_tracking == IVAS_ORIENT_TRK_NONE ) { if ( ( error = ivas_orient_trk_SetTrackingType( st_ivas->hHeadTrackData->OrientationTracker, OTR_TRACKING_NONE ) ) != IVAS_ERR_OK ) Loading Loading @@ -789,6 +795,7 @@ ivas_error ivas_init_decoder( { return IVAS_ERR_WRONG_MODE; } #endif } /*-----------------------------------------------------------------* Loading Loading
apps/decoder.c +8 −1 Original line number Diff line number Diff line Loading @@ -189,8 +189,11 @@ int main( /*------------------------------------------------------------------------------------------* * Open decoder handle *------------------------------------------------------------------------------------------*/ #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.no_diegetic_pan ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Open( &hIvasDec, arg.decMode, arg.orientation_tracking, arg.no_diegetic_pan ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "Open failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; Loading Loading @@ -355,7 +358,11 @@ int main( * Configure the decoder *------------------------------------------------------------------------------------------*/ #ifdef FIX_439_OTR_PARAMS if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; Loading
apps/renderer.c +24 −0 Original line number Diff line number Diff line Loading @@ -1374,23 +1374,43 @@ static bool parseOrientationTracking( if ( strcmp( value, "NONE" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_NONE; #else *tracking_type = IVAS_ORIENT_TRK_NONE; #endif } else if ( strcmp( value, "REF" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_REF; #else *tracking_type = IVAS_ORIENT_TRK_REF; #endif } else if ( strcmp( value, "AVG" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_AVG; #else *tracking_type = IVAS_ORIENT_TRK_AVG; #endif } else if ( strcmp( value, "REF_VEC" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_REF_VEC; #else *tracking_type = IVAS_ORIENT_TRK_REF_VEC; #endif } else if ( strcmp( value, "REF_VEC_LEV" ) == 0 ) { #ifdef FIX_439_OTR_PARAMS *tracking_type = HEAD_ORIENT_TRK_REF_VEC_LEV; #else *tracking_type = IVAS_ORIENT_TRK_REF_VEC_LEV; #endif } else { Loading Loading @@ -1614,7 +1634,11 @@ static CmdlnArgs defaultArgs( clearString( args.customHrtfFilePath ); clearString( args.renderConfigFilePath ); #ifdef FIX_439_OTR_PARAMS args.orientationTracking = HEAD_ORIENT_TRK_NONE; #else args.orientationTracking = IVAS_ORIENT_TRK_NONE; #endif args.noDiegeticPan = 0.0f; args.delayCompensationEnabled = true; Loading
lib_com/ivas_cnst.h +11 −1 Original line number Diff line number Diff line Loading @@ -1544,6 +1544,16 @@ typedef enum *----------------------------------------------------------------------------------*/ /* Orientation tracking types */ #ifdef FIX_439_OTR_PARAMS typedef enum { HEAD_ORIENT_TRK_NONE, HEAD_ORIENT_TRK_REF, HEAD_ORIENT_TRK_AVG, HEAD_ORIENT_TRK_REF_VEC, HEAD_ORIENT_TRK_REF_VEC_LEV } HEAD_ORIENT_TRK_TYPE; #else #define IVAS_ORIENT_TRK_NONE 0 #define IVAS_ORIENT_TRK_REF 1 #define IVAS_ORIENT_TRK_AVG 2 Loading @@ -1559,7 +1569,7 @@ typedef enum OTR_TRACKING_REF_VEC = IVAS_ORIENT_TRK_REF_VEC, /* track orientation relative to external reference vector */ OTR_TRACKING_REF_VEC_LEV = IVAS_ORIENT_TRK_REF_VEC_LEV /* track orientation relative to level component of external reference vector */ } OTR_TRACKING_T; #endif /*----------------------------------------------------------------------------------* * Reverberator constants Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -188,6 +188,7 @@ #define FIX_446_STEREO_DMX_CRASH /* FhG: fix discrepancy with EVS code that could cause crashes in rare cases */ #define FIX_386_CORECODER_RECONFIG_2 /* VA: Issue 386: Resolve remaining ToDo comments in CoreCoder reconfig. */ #define FIX_439_OTR_PARAMS /* Philips: Issue 439: orientation tracking parameter aspects. */ #define FIX_440_PARAM_ISM_DIR_NOISE /* FhG: Issue 440: Fix directional background noise becoming diffuse in ParamISM */ #define FIX_445_SNS_BUGFIXES /* FhG: bug fix for spectral tilt in SNS computation + necessary update of codebooks and converison to fixedpoint-compatible tables */ Loading
lib_dec/ivas_init_dec.c +7 −0 Original line number Diff line number Diff line Loading @@ -750,6 +750,12 @@ ivas_error ivas_init_decoder( if ( st_ivas->hDecoderConfig->Opt_Headrotation ) { #ifdef FIX_439_OTR_PARAMS if ( ( error = ivas_orient_trk_SetTrackingType( st_ivas->hHeadTrackData->OrientationTracker, st_ivas->hDecoderConfig->orientation_tracking ) ) != IVAS_ERR_OK ) { return error; } #else if ( st_ivas->hDecoderConfig->orientation_tracking == IVAS_ORIENT_TRK_NONE ) { if ( ( error = ivas_orient_trk_SetTrackingType( st_ivas->hHeadTrackData->OrientationTracker, OTR_TRACKING_NONE ) ) != IVAS_ERR_OK ) Loading Loading @@ -789,6 +795,7 @@ ivas_error ivas_init_decoder( { return IVAS_ERR_WRONG_MODE; } #endif } /*-----------------------------------------------------------------* Loading