Commit 0cdbc770 authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Orientation tracking parameter aspects

parent 0f5c89cd
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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;
+24 −0
Original line number Diff line number Diff line
@@ -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
    {
@@ -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;
+11 −1
Original line number Diff line number Diff line
@@ -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
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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 */
+7 −0
Original line number Diff line number Diff line
@@ -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 )
@@ -789,6 +795,7 @@ ivas_error ivas_init_decoder(
        {
            return IVAS_ERR_WRONG_MODE;
        }
#endif
    }

    /*-----------------------------------------------------------------*
Loading