Commit c8b3caeb authored by Lauros Pajunen's avatar Lauros Pajunen
Browse files

Combine rotation file readers into rotation_file_reader file

parent 5e3fad25
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -144,7 +144,6 @@
    <ClCompile Include="..\lib_util\cmdln_parser.c" />
    <ClCompile Include="..\lib_util\cmdl_tools.c" />
    <ClCompile Include="..\lib_util\evs_rtp_payload.c" />
    <ClCompile Include="..\lib_util\external_orientation_file_reader.c" />
    <ClCompile Include="..\lib_util\g192.c" />
    <ClCompile Include="..\lib_util\head_rotation_file_reader.c" />
    <ClCompile Include="..\lib_util\vector3_pair_file_reader.c" />
@@ -158,6 +157,7 @@
    <ClCompile Include="..\lib_util\masa_file_writer.c" />
    <ClCompile Include="..\lib_util\mime_io.c" />
    <ClCompile Include="..\lib_util\render_config_reader.c" />
    <ClCompile Include="..\lib_util\rotation_file_reader.c" />
    <ClCompile Include="..\lib_util\rtpdump.c" />
  </ItemGroup>
  <ItemGroup>
@@ -168,7 +168,6 @@
    <ClInclude Include="..\lib_util\cmdln_parser.h" />
    <ClInclude Include="..\lib_util\cmdl_tools.h" />
    <ClInclude Include="..\lib_util\evs_rtp_payload.h" />
    <ClInclude Include="..\lib_util\external_orientation_file_reader.h" />
    <ClInclude Include="..\lib_util\g192.h" />
    <ClInclude Include="..\lib_util\vector3_pair_file_reader.h" />
    <ClInclude Include="..\lib_util\head_rotation_file_reader.h" />
@@ -182,6 +181,7 @@
    <ClInclude Include="..\lib_util\masa_file_reader.h" />
    <ClInclude Include="..\lib_util\masa_file_writer.h" />
    <ClInclude Include="..\lib_util\render_config_reader.h" />
    <ClInclude Include="..\lib_util\rotation_file_reader.h" />
    <ClInclude Include="..\lib_util\rtpdump.h" />
    <ClInclude Include="..\lib_util\tinywavein_c.h" />
    <ClInclude Include="..\lib_util\tinywaveout_c.h" />
+63 −21
Original line number Diff line number Diff line
@@ -41,9 +41,10 @@
#include "ism_file_writer.h"
#include "ls_custom_file_reader.h"
#include "hrtf_file_reader.h"
#include "head_rotation_file_reader.h"
#ifdef EXTERNAL_ORIENTATIONS
#include "external_orientation_file_reader.h"
#include "rotation_file_reader.h"
#else
#include "head_rotation_file_reader.h"
#endif
#ifdef OTR_REFERENCE_VECTOR_TRACKING
#include "vector3_pair_file_reader.h"
@@ -150,20 +151,20 @@ static void usage_dec( void );
#ifdef FIX_I109_ORIENTATION_TRACKING
#ifdef OTR_REFERENCE_VECTOR_TRACKING
#ifdef EXTERNAL_ORIENTATIONS
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ExternalOrientationFileReader *externalOrientationFileReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#else
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#endif
#else /* OTR_REFERENCE_VECTOR_TRACKING */
#ifdef EXTERNAL_ORIENTATIONS
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, ExternalOrientationFileReader *externalOrientationFileReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#else
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#endif
#endif
#else /* FIX_I109_ORIENTATION_TRACKING */
#ifdef EXTERNAL_ORIENTATIONS
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, ExternalOrientationFileReader *externalOrientationFileReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#else
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#endif
@@ -192,16 +193,21 @@ int main(
    BS_READER_HANDLE hBsReader = NULL;
    LsCustomFileReader *hLsCustomReader = NULL;
    hrtfFileReader *hrtfReader = NULL;
#ifdef EXTERNAL_ORIENTATIONS
    RotFileReader *headRotReader = NULL;
    RotFileReader *externalOrientationFileReader = NULL;
#ifdef FIX_I109_ORIENTATION_TRACKING
    RotFileReader *refRotReader = NULL;
#endif
#else
    HeadRotFileReader *headRotReader = NULL;
#ifdef FIX_I109_ORIENTATION_TRACKING
    HeadRotFileReader *refRotReader = NULL;
#endif
#endif
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader *referenceVectorReader = NULL;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#ifdef EXTERNAL_ORIENTATIONS
    ExternalOrientationFileReader *externalOrientationFileReader = NULL;
#endif
    ivas_error error = IVAS_ERR_UNKNOWN;
    int16_t pcmBuf[MAX_OUTPUT_PCM_BUFFER_SIZE];
    RenderConfigReader *renderConfigReader = NULL;
@@ -304,7 +310,11 @@ int main(
            goto cleanup;
        }

#ifdef EXTERNAL_ORIENTATIONS
        if ( ( error = RotationFileReader_open( arg.headrotTrajFileName, &headRotReader ) ) != IVAS_ERR_OK )
#else
        if ( ( error = HeadRotationFileReader_open( arg.headrotTrajFileName, &headRotReader ) ) != IVAS_ERR_OK )
#endif
        {
            fprintf( stderr, "\nError: Can't open head-rotation file %s \n\n", arg.headrotTrajFileName );
            goto cleanup;
@@ -317,7 +327,11 @@ int main(
     *------------------------------------------------------------------------------------------*/
    if ( arg.enableReferenceRotation )
    {
#ifdef EXTERNAL_ORIENTATIONS
        if ( ( error = RotationFileReader_open( arg.refrotTrajFileName, &refRotReader ) ) != IVAS_ERR_OK )
#else
        if ( ( error = HeadRotationFileReader_open( arg.refrotTrajFileName, &refRotReader ) ) != IVAS_ERR_OK )
#endif
        {
            fprintf( stderr, "\nError: Can't open reference rotation file %s \n\n", arg.refrotTrajFileName );
            goto cleanup;
@@ -345,7 +359,7 @@ int main(

    if ( arg.enableExternalOrientation )
    {
        if ( ( error = ExternalOrientationFileReader_open( arg.externalOrientationTrajFileName, &externalOrientationFileReader ) ) != IVAS_ERR_OK )
        if ( ( error = RotationFileReader_open( arg.externalOrientationTrajFileName, &externalOrientationFileReader ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError: Can't open external orientation file %s \n\n", arg.externalOrientationTrajFileName );
            goto cleanup;
@@ -616,13 +630,13 @@ int main(
#ifdef FIX_I109_ORIENTATION_TRACKING
#ifdef OTR_REFERENCE_VECTOR_TRACKING
#ifdef EXTERNAL_ORIENTATIONS
        error = decodeG192( arg, hBsReader, headRotReader, refRotReader, referenceVectorReader, externalOrientationFileReader, hIvasDec, pcmBuf );
        error = decodeG192( arg, hBsReader, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, hIvasDec, pcmBuf );
#else
        error = decodeG192( arg, hBsReader, headRotReader, refRotReader, referenceVectorReader, hIvasDec, pcmBuf );
#endif
#else
#ifdef EXTERNAL_ORIENTATIONS
        error = decodeG192( arg, hBsReader, headRotReader, refRotReader, externalOrientationFileReader, hIvasDec, pcmBuf );
        error = decodeG192( arg, hBsReader, headRotReader, externalOrientationFileReader, refRotReader, hIvasDec, pcmBuf );
#else
        error = decodeG192( arg, hBsReader, headRotReader, refRotReader, hIvasDec, pcmBuf );
#endif
@@ -688,16 +702,21 @@ cleanup:
    IVAS_DEC_Close( &hIvasDec );
    CustomLsReader_close( &hLsCustomReader );
    hrtfFileReader_close( &hrtfReader );
#ifdef EXTERNAL_ORIENTATIONS
    RotationFileReader_close( &headRotReader );
    RotationFileReader_close( &externalOrientationFileReader );
#ifdef FIX_I109_ORIENTATION_TRACKING
    RotationFileReader_close( &refRotReader );
#endif
#else
    HeadRotationFileReader_close( &headRotReader );
#ifdef FIX_I109_ORIENTATION_TRACKING
    HeadRotationFileReader_close( &refRotReader );
#endif
#endif
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader_close( &referenceVectorReader );
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#ifdef EXTERNAL_ORIENTATIONS
    ExternalOrientationFileReader_close( &externalOrientationFileReader );
#endif
    RenderConfigReader_close( &renderConfigReader );

    if ( BS_Reader_Close( &hBsReader ) != IVAS_ERR_OK )
@@ -1558,15 +1577,23 @@ static ivas_error initOnFirstGoodFrame(
static ivas_error decodeG192(
    DecArguments arg,
    BS_READER_HANDLE hBsReader,

#ifdef EXTERNAL_ORIENTATIONS
    RotFileReader *headRotReader,
    RotFileReader *externalOrientationFileReader,
#else
    HeadRotFileReader *headRotReader,
#endif

#ifdef FIX_I109_ORIENTATION_TRACKING
#ifdef EXTERNAL_ORIENTATIONS
    RotFileReader *refRotReader,
#else
    HeadRotFileReader *refRotReader,
#endif
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader *referenceVectorReader,
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#endif
#ifdef EXTERNAL_ORIENTATIONS
    ExternalOrientationFileReader *externalOrientationFileReader,
#endif
    IVAS_DEC_HANDLE hIvasDec,
    int16_t *pcmBuf )
@@ -1696,7 +1723,12 @@ static ivas_error decodeG192(
            if ( ( error = HeadRotationFileReading( refRotReader, &quaternion ) ) != IVAS_ERR_OK )
#endif
            {
                fprintf( stderr, "\nError %s while reading reference rotation from %s\n", IVAS_DEC_GetErrorMessage( error ), HeadRotationFileReader_getFilePath( refRotReader ) );
                fprintf( stderr, "\nError %s while reading reference rotation from %s\n", IVAS_DEC_GetErrorMessage( error ),
#ifdef EXTERNAL_ORIENTATIONS
                        RotationFileReader_getFilePath( refRotReader ) );
#else
                        HeadRotationFileReader_getFilePath( refRotReader ) );
#endif
                goto cleanup;
            }

@@ -1721,7 +1753,12 @@ static ivas_error decodeG192(
                if ( ( error = HeadRotationFileReading( headRotReader, &Quaternions[i] ) ) != IVAS_ERR_OK )
#endif
                {
                    fprintf( stderr, "\nError %s while reading head orientation from %s\n", IVAS_DEC_GetErrorMessage( error ), HeadRotationFileReader_getFilePath( headRotReader ) );
                    fprintf( stderr, "\nError %s while reading head orientation from %s\n", IVAS_DEC_GetErrorMessage( error ),
#ifdef EXTERNAL_ORIENTATIONS
                             RotationFileReader_getFilePath( headRotReader ) );
#else
                             HeadRotationFileReader_getFilePath( headRotReader ) );
#endif
                    goto cleanup;
                }
            }
@@ -1732,7 +1769,12 @@ static ivas_error decodeG192(
            if ( ( error = HeadRotationFileReading( headRotReader, Quaternions, frame ) ) != IVAS_ERR_OK )
#endif
            {
                fprintf( stderr, "\nError %s while reading head orientation from %s\n", IVAS_DEC_GetErrorMessage( error ), HeadRotationFileReader_getFilePath( headRotReader ) );
                fprintf( stderr, "\nError %s while reading head orientation from %s\n", IVAS_DEC_GetErrorMessage( error ),
#ifdef EXTERNAL_ORIENTATIONS
                         RotationFileReader_getFilePath( headRotReader ) );
#else
                         HeadRotationFileReader_getFilePath( headRotReader ) );
#endif
                goto cleanup;
            }
#endif
@@ -1763,7 +1805,7 @@ static ivas_error decodeG192(
                if ( ( error = ExternalOrientationFileReading( externalOrientationFileReader, &Quaternions[i], &enableHeadRotation[i], &enableExternalOrientation[i], &enableRotationInterpolation[i], &numFramesToTargetOrientation[i] ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "\nError %s while reading external orientation from %s\n", IVAS_DEC_GetErrorMessage( error ),
                             ExternalOrientationFileReader_getFilePath( externalOrientationFileReader ) );
                             RotationFileReader_getFilePath( externalOrientationFileReader ) );
                    goto cleanup;
                }
            }
+29 −8
Original line number Diff line number Diff line
@@ -41,13 +41,14 @@
#include "audio_file_writer.h"
#include "cmdl_tools.h"
#include "cmdln_parser.h"
#ifdef EXTERNAL_ORIENTATIONS
#include "rotation_file_reader.h"
#else
#include "head_rotation_file_reader.h"
#endif
#ifdef OTR_REFERENCE_VECTOR_TRACKING
#include "vector3_pair_file_reader.h"
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#ifdef EXTERNAL_ORIENTATIONS
#include "external_orientation_file_reader.h"
#endif
#include "hrtf_file_reader.h"
#include "ism_file_reader.h"
#include "ls_custom_file_reader.h"
@@ -545,15 +546,21 @@ int main(
    char **argv )
{
    IVAS_REND_HANDLE hIvasRend;
#ifdef EXTERNAL_ORIENTATIONS
    RotFileReader *headRotReader = NULL;
    RotFileReader *externalOrientationFileReader = NULL;
#else
    HeadRotFileReader *headRotReader = NULL;
#endif
#ifdef FIX_I109_ORIENTATION_TRACKING
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader *referenceVectorReader = NULL;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#ifdef EXTERNAL_ORIENTATIONS
    RotFileReader *referenceRotReader = NULL;
#else
    HeadRotFileReader *referenceRotReader = NULL;
#endif
#ifdef EXTERNAL_ORIENTATIONS
    ExternalOrientationFileReader *externalOrientationFileReader = NULL;
#endif
    hrtfFileReader *hrtfFileReader = NULL;
    IsmPositionProvider *positionProvider;
@@ -620,7 +627,11 @@ int main(

    if ( !isEmptyString( args.headRotationFilePath ) )
    {
#ifdef EXTERNAL_ORIENTATIONS
        if ( RotationFileReader_open( args.headRotationFilePath, &headRotReader ) != IVAS_ERR_OK )
#else
        if ( HeadRotationFileReader_open( args.headRotationFilePath, &headRotReader ) != IVAS_ERR_OK )
#endif
        {
            fprintf( stderr, "Error opening file: %s\n", args.headRotationFilePath );
            exit( -1 );
@@ -630,7 +641,11 @@ int main(
#ifdef FIX_I109_ORIENTATION_TRACKING
    if ( !isEmptyString( args.referenceRotationFilePath ) )
    {
#ifdef EXTERNAL_ORIENTATIONS
        if ( RotationFileReader_open( args.referenceRotationFilePath, &referenceRotReader ) != IVAS_ERR_OK )
#else
        if ( HeadRotationFileReader_open( args.referenceRotationFilePath, &referenceRotReader ) != IVAS_ERR_OK )
#endif
        {
            fprintf( stderr, "Error opening file: %s\n", args.referenceRotationFilePath );
            exit( -1 );
@@ -651,7 +666,7 @@ int main(
#ifdef EXTERNAL_ORIENTATIONS
    if ( !isEmptyString( args.externalOrientationFilePath ) )
    {
        if ( ExternalOrientationFileReader_open( args.externalOrientationFilePath, &externalOrientationFileReader ) != IVAS_ERR_OK )
        if ( RotationFileReader_open( args.externalOrientationFilePath, &externalOrientationFileReader ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "Error opening file: %s\n", args.externalOrientationFilePath );
            exit( -1 );
@@ -1294,15 +1309,21 @@ int main(
    }
    AudioFileReader_close( &audioReader );
    AudioFileWriter_close( &audioWriter );
#ifdef EXTERNAL_ORIENTATIONS
    RotationFileReader_close( &headRotReader );
    RotationFileReader_close( &externalOrientationFileReader );
#else
    HeadRotationFileReader_close( &headRotReader );
#endif
#ifdef FIX_I109_ORIENTATION_TRACKING
#ifdef OTR_REFERENCE_VECTOR_TRACKING
    Vector3PairFileReader_close( &referenceVectorReader );
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
#ifdef EXTERNAL_ORIENTATIONS
    RotationFileReader_close( &referenceRotReader );
#else
    HeadRotationFileReader_close( &referenceRotReader );
#endif
#ifdef EXTERNAL_ORIENTATIONS
    ExternalOrientationFileReader_close( &externalOrientationFileReader );
#endif
    hrtfFileReader_close( &hrtfFileReader );
    IVAS_REND_Close( &hIvasRend );
+4 −0
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@
#include <stdint.h>
#include "prot.h"

#ifndef EXTERNAL_ORIENTATIONS

struct HeadRotFileReader
{
    FILE *trajFile;
@@ -253,3 +255,5 @@ const char *HeadRotationFileReader_getFilePath(

    return headRotReader->file_path;
}

#endif /* EXTERNAL_ORIENTATIONS */
+2 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@

#include "common_api_types.h"

#ifndef EXTERNAL_ORIENTATIONS

#define IVAS_MAX_PARAM_SPATIAL_SUBFRAMES 4

@@ -100,4 +101,5 @@ const char *HeadRotationFileReader_getFilePath(
);


#endif /* EXTERNAL_ORIENTATIONS */
#endif /* IVAS_HR_FILE_READER_H */
Loading