Commit ae6f33c7 authored by multrus's avatar multrus
Browse files

[cleanup] accept OTR_REFERENCE_VECTOR_TRACKING

parent 3fb4027d
Loading
Loading
Loading
Loading
+0 −32
Original line number Diff line number Diff line
@@ -42,9 +42,7 @@
#include "ls_custom_file_reader.h"
#include "hrtf_file_reader.h"
#include "head_rotation_file_reader.h"
#ifdef OTR_REFERENCE_VECTOR_TRACKING
#include "vector3_pair_file_reader.h"
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#include "jbm_file_writer.h"
#include "evs_rtp_payload.h"
#ifdef DEBUGGING
@@ -75,10 +73,8 @@ static
#define IVAS_PUBLIC_ORIENT_TRK_NONE ( 0 )
#define IVAS_PUBLIC_ORIENT_TRK_REF  ( 1 )
#define IVAS_PUBLIC_ORIENT_TRK_AVG  ( 2 )
#ifdef OTR_REFERENCE_VECTOR_TRACKING
#define IVAS_PUBLIC_ORIENT_TRK_REF_VEC     ( 3 )
#define IVAS_PUBLIC_ORIENT_TRK_REF_VEC_LEV ( 4 )
#endif /* OTR_REFERENCE_VECTOR_TRACKING */

typedef struct
{
@@ -94,10 +90,8 @@ typedef struct
    char *headrotTrajFileName;
    bool enableReferenceRotation;
    char *refrotTrajFileName;
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    bool enableReferenceVectorTracking;
    char *referenceVectorTrajFileName;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#ifdef SUPPORT_JBM_TRACEFILE
    char *jbmTraceFilename;
#endif
@@ -133,11 +127,7 @@ typedef struct

static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg );
static void usage_dec( void );
#ifdef OTR_REFERENCE_VECTOR_TRACKING
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#else /* OTR_REFERENCE_VECTOR_TRACKING */
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#endif
static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec );
#ifdef DEBUGGING
static ivas_error printBitstreamInfoVoip( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec );
@@ -164,9 +154,7 @@ int main(
    hrtfFileReader *hrtfReader = NULL;
    HeadRotFileReader *headRotReader = NULL;
    HeadRotFileReader *refRotReader = NULL;
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader *referenceVectorReader = NULL;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    ivas_error error = IVAS_ERR_UNKNOWN;
    int16_t pcmBuf[MAX_OUTPUT_PCM_BUFFER_SIZE];
    RenderConfigReader *renderConfigReader = NULL;
@@ -287,7 +275,6 @@ int main(
            goto cleanup;
        }
    }
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    /*------------------------------------------------------------------------------------------*
     * Open reference vector trajectory file
     *------------------------------------------------------------------------------------------*/
@@ -299,7 +286,6 @@ int main(
            goto cleanup;
        }
    }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */

    /*------------------------------------------------------------------------------------------*
     * Open custom loudspeaker layout file
@@ -549,11 +535,7 @@ int main(
    }
    else
    {
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        error = decodeG192( arg, hBsReader, headRotReader, refRotReader, referenceVectorReader, hIvasDec, pcmBuf );
#else
        error = decodeG192( arg, hBsReader, headRotReader, refRotReader, hIvasDec, pcmBuf );
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    }

    if ( error == IVAS_ERR_OK || error == IVAS_ERR_END_OF_FILE )
@@ -610,9 +592,7 @@ cleanup:
    hrtfFileReader_close( &hrtfReader );
    HeadRotationFileReader_close( &headRotReader );
    HeadRotationFileReader_close( &refRotReader );
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader_close( &referenceVectorReader );
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    RenderConfigReader_close( &renderConfigReader );

    if ( BS_Reader_Close( &hBsReader ) != IVAS_ERR_OK )
@@ -752,10 +732,8 @@ static bool parseCmdlIVAS_dec(
    arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_NONE;
    arg->enableReferenceRotation = false;
    arg->headrotTrajFileName = NULL;
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    arg->enableReferenceVectorTracking = false;
    arg->referenceVectorTrajFileName = NULL;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */

#ifdef SUPPORT_JBM_TRACEFILE
    arg->jbmTraceFilename = NULL;
@@ -948,7 +926,6 @@ static bool parseCmdlIVAS_dec(
            {
                arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_AVG;
            }
#ifdef OTR_REFERENCE_VECTOR_TRACKING
            else if ( strcmp( argv_to_upper, "REF_VEC" ) == 0 )
            {
                arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF_VEC;
@@ -957,7 +934,6 @@ static bool parseCmdlIVAS_dec(
            {
                arg->orientation_tracking = IVAS_PUBLIC_ORIENT_TRK_REF_VEC_LEV;
            }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
            else
            {
                fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", argv[i + 1] );
@@ -981,7 +957,6 @@ static bool parseCmdlIVAS_dec(
            arg->refrotTrajFileName = argv[i];
            i++;
        }
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        else if ( strcmp( argv_to_upper, "-RVF" ) == 0 )
        {
            arg->enableReferenceVectorTracking = true;
@@ -997,7 +972,6 @@ static bool parseCmdlIVAS_dec(
            arg->referenceVectorTrajFileName = argv[i];
            i++;
        }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        else if ( strcmp( argv_to_upper, "-RENDER_CONFIG" ) == 0 )
        {
            arg->renderConfigEnabled = true;
@@ -1193,10 +1167,8 @@ static void usage_dec( void )
    fprintf( stdout, "-otr tracking_type  : head orientation tracking type: 'none', 'ref' or 'avg'  (only for binaural rendering)\n" );
    fprintf( stdout, "-rf File            : Reference rotation specified by external trajectory file\n" );
    fprintf( stdout, "                      works only in combination with -otr ref mode\n" );
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    fprintf( stdout, "-rvf File           : Reference vector specified by external trajectory file\n" );
    fprintf( stdout, "                      works only in combination with -otr ref_vec and ref_vec_lev modes\n" );
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    fprintf( stdout, "-render_config file : Renderer configuration file\n" );
    fprintf( stdout, "-no_diegetic_pan    : panning mono no dietic sound to stereo -1<= pan <=1,\n" );
    fprintf( stdout, "                      left or l or 1->left, right or r or -1->right, center or c or  0->middle\n" );
@@ -1404,9 +1376,7 @@ static ivas_error decodeG192(
    BS_READER_HANDLE hBsReader,
    HeadRotFileReader *headRotReader,
    HeadRotFileReader *refRotReader,
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader *referenceVectorReader,
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    IVAS_DEC_HANDLE hIvasDec,
    int16_t *pcmBuf )

@@ -1498,7 +1468,6 @@ static ivas_error decodeG192(
            goto cleanup;
        }

#ifdef OTR_REFERENCE_VECTOR_TRACKING
        /* reference vector */
        if ( arg.enableReferenceVectorTracking )
        {
@@ -1515,7 +1484,6 @@ static ivas_error decodeG192(
                goto cleanup;
            }
        }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        /* Reference rotation */
        if ( arg.enableReferenceRotation )
        {
+0 −28
Original line number Diff line number Diff line
@@ -42,9 +42,7 @@
#include "cmdl_tools.h"
#include "cmdln_parser.h"
#include "head_rotation_file_reader.h"
#ifdef OTR_REFERENCE_VECTOR_TRACKING
#include "vector3_pair_file_reader.h"
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#include "hrtf_file_reader.h"
#include "ism_file_reader.h"
#include "ls_custom_file_reader.h"
@@ -133,9 +131,7 @@ typedef struct
    char inMetadataFilePaths[RENDERER_MAX_ISM_INPUTS][RENDERER_MAX_CLI_ARG_LENGTH];
    int16_t numInMetadataFiles;
    char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    char referenceVectorFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
    char customHrtfFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
    char renderConfigFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
@@ -173,9 +169,7 @@ typedef enum
    CmdLnOptionId_inputMetadata,
    CmdLnOptionId_listFormats,
    CmdLnOptionId_inputGain,
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    CmdLnOptionId_referenceVectorFile,
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
} CmdLnOptionId;

static const CmdLnParser_Option cliOptions[] = {
@@ -249,11 +243,7 @@ static const CmdLnParser_Option cliOptions[] = {
        .id = CmdLnOptionId_orientationTracking,
        .match = "tracking_type",
        .matchShort = "otr",
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        .description = "Head orientation tracking type: 'none', 'ref', 'avg' or `ref_vec` or `ref_vec_lev` (only for BINAURAL and BINAURAL_ROOM)",
#else
        .description = "Head orientation tracking type: 'none', 'ref' or 'avg' (only for BINAURAL and BINAURAL_ROOM)",
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    },
    {
        .id = CmdlnOptionId_lfePosition,
@@ -289,14 +279,12 @@ static const CmdLnParser_Option cliOptions[] = {
        .matchShort = "l",
        .description = "List supported audio formats",
    },
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    {
        .id = CmdLnOptionId_referenceVectorFile,
        .match = "reference_vector_file",
        .matchShort = "rvf",
        .description = "Reference vector trajectory file for simulation of head tracking (only for BINAURAL and BINAURAL_ROOM outputs)",
    },
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
};


@@ -523,9 +511,7 @@ int main(
{
    IVAS_REND_HANDLE hIvasRend;
    HeadRotFileReader *headRotReader = NULL;
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader *referenceVectorReader = NULL;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    HeadRotFileReader *referenceRotReader = NULL;
    hrtfFileReader *hrtfFileReader = NULL;
    IsmPositionProvider *positionProvider;
@@ -570,9 +556,7 @@ int main(
    convert_backslash( args.inputFilePath );
    convert_backslash( args.outputFilePath );
    convert_backslash( args.headRotationFilePath );
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    convert_backslash( args.referenceVectorFilePath );
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    convert_backslash( args.referenceRotationFilePath );
    convert_backslash( args.inLfePanningMatrixFile );

@@ -593,7 +577,6 @@ int main(
            exit( -1 );
        }
    }
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    if ( !isEmptyString( args.referenceVectorFilePath ) )
    {
        if ( Vector3PairFileReader_open( args.referenceVectorFilePath, &referenceVectorReader ) != IVAS_ERR_OK )
@@ -602,7 +585,6 @@ int main(
            exit( -1 );
        }
    }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */

    if ( !isEmptyString( args.customHrtfFilePath ) )
    {
@@ -931,7 +913,6 @@ int main(
        ObjectPositionBuffer mtdBuffer;
        IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer );

#ifdef OTR_REFERENCE_VECTOR_TRACKING
        if ( referenceVectorReader != NULL )
        {
            IVAS_VECTOR3 listenerPos, refPos;
@@ -946,7 +927,6 @@ int main(
                exit( -1 );
            }
        }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        /* Read from reference rotation trajectory file if specified */
        if ( referenceRotReader != NULL )
        {
@@ -1165,9 +1145,7 @@ int main(
    AudioFileReader_close( &audioReader );
    AudioFileWriter_close( &audioWriter );
    HeadRotationFileReader_close( &headRotReader );
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader_close( &referenceVectorReader );
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    HeadRotationFileReader_close( &referenceRotReader );
    hrtfFileReader_close( &hrtfFileReader );
    IVAS_REND_Close( &hIvasRend );
@@ -1406,7 +1384,6 @@ static bool parseOrientationTracking(
    {
        *tracking_type = IVAS_ORIENT_TRK_AVG;
    }
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    else if ( strcmp( value, "REF_VEC" ) == 0 )
    {
        *tracking_type = IVAS_ORIENT_TRK_REF_VEC;
@@ -1415,7 +1392,6 @@ static bool parseOrientationTracking(
    {
        *tracking_type = IVAS_ORIENT_TRK_REF_VEC_LEV;
    }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    else
    {
        fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", value );
@@ -1633,9 +1609,7 @@ static CmdlnArgs defaultArgs(
    args.numInMetadataFiles = 0;

    clearString( args.headRotationFilePath );
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    clearString( args.referenceVectorFilePath );
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    clearString( args.referenceRotationFilePath );
    clearString( args.customHrtfFilePath );
    clearString( args.renderConfigFilePath );
@@ -1715,12 +1689,10 @@ static void parseOption(
            assert( numOptionValues == 1 );
            strncpy( args->headRotationFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 );
            break;
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        case CmdLnOptionId_referenceVectorFile:
            assert( numOptionValues == 1 );
            strncpy( args->referenceVectorFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 );
            break;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        case CmdLnOptionId_refRotFile:
            assert( numOptionValues == 1 );
            strncpy( args->referenceRotationFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 );
+0 −2
Original line number Diff line number Diff line
@@ -88,12 +88,10 @@ typedef struct

} IVAS_QUATERNION;

#ifdef OTR_REFERENCE_VECTOR_TRACKING
typedef struct
{
    float x, y, z;
} IVAS_VECTOR3;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */

typedef struct
{
+0 −4
Original line number Diff line number Diff line
@@ -1501,21 +1501,17 @@ typedef enum
#define IVAS_ORIENT_TRK_NONE                    0
#define IVAS_ORIENT_TRK_REF                     1
#define IVAS_ORIENT_TRK_AVG                     2
#ifdef OTR_REFERENCE_VECTOR_TRACKING
#define IVAS_ORIENT_TRK_REF_VEC                 3
#define IVAS_ORIENT_TRK_REF_VEC_LEV             4
#endif /* OTR_REFERENCE_VECTOR_TRACKING */

typedef enum
{
    OTR_TRACKING_NONE = IVAS_ORIENT_TRK_NONE,
    OTR_TRACKING_REF_ORIENT = IVAS_ORIENT_TRK_REF, /* track orientation relative to external reference orientation (default: no rotation) */
    OTR_TRACKING_AVG_ORIENT = IVAS_ORIENT_TRK_AVG  /* track orientation relative to average orientation */
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    ,
    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 */
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
} OTR_TRACKING_T;


+0 −1
Original line number Diff line number Diff line
@@ -145,7 +145,6 @@

#define FIX_350_MASA_DELAY_COMP                         /* Nokia: Issue 350: MASA audio/meta delay compensation */

#define OTR_REFERENCE_VECTOR_TRACKING                 /* FhG: enables the reference position orientation tracking mode */

#define FIX_380_BFI_PARAMISM                            /* VA: issue 380 - fix metadata recovery in ParamISM BFI */
#define FIX_MDCT_BASED_BWD                              /* FhG: fixes for BWD for issues with reaction to transients for MDCT-stereo and MCT */
Loading