Commit 9d4d5937 authored by janssonfr's avatar janssonfr
Browse files

merged with main

parents 89fcaef9 ad02a6b1
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -157,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" />
    <ClCompile Include="..\lib_util\tsm_scale_file_reader.c" />
  </ItemGroup>
@@ -181,6 +182,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" />
+222 −8
Original line number Diff line number Diff line
@@ -41,7 +41,11 @@
#include "ism_file_writer.h"
#include "ls_custom_file_reader.h"
#include "hrtf_file_reader.h"
#ifdef EXTERNAL_ORIENTATIONS
#include "rotation_file_reader.h"
#else
#include "head_rotation_file_reader.h"
#endif
#include "vector3_pair_file_reader.h"
#include "jbm_file_writer.h"
#include "evs_rtp_payload.h"
@@ -100,6 +104,10 @@ typedef struct
    char *refrotTrajFileName;
    bool enableReferenceVectorTracking;
    char *referenceVectorTrajFileName;
#ifdef EXTERNAL_ORIENTATIONS
    bool enableExternalOrientation;
    char *externalOrientationTrajFileName;
#endif
#ifdef SUPPORT_JBM_TRACEFILE
    char *jbmTraceFilename;
#endif
@@ -148,12 +156,20 @@ typedef struct

static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg );
static void usage_dec( void );
#ifdef EXTERNAL_ORIENTATIONS
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
static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec );
#ifdef DEBUGGING
#ifdef VARIABLE_SPEED_DECODING
#ifdef EXTERNAL_ORIENTATIONS
static ivas_error decodeVariableSpeed( DecArguments arg, BS_READER_HANDLE hBsReader, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec );
#else
static ivas_error decodeVariableSpeed( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, HeadRotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec );
#endif
#endif
static ivas_error printBitstreamInfoVoip( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec );
static int16_t app_own_random( int16_t *seed );
static IVAS_DEC_FORCED_REND_MODE parseForcedRendModeDec( char *forcedRendModeChar );
@@ -176,8 +192,14 @@ int main(
    BS_READER_HANDLE hBsReader = NULL;
    LsCustomFileReader *hLsCustomReader = NULL;
    hrtfFileReader *hrtfReader = NULL;
#ifdef EXTERNAL_ORIENTATIONS
    RotFileReader *headRotReader = NULL;
    RotFileReader *externalOrientationFileReader = NULL;
    RotFileReader *refRotReader = NULL;
#else
    HeadRotFileReader *headRotReader = NULL;
    HeadRotFileReader *refRotReader = NULL;
#endif
    Vector3PairFileReader *referenceVectorReader = NULL;
    ivas_error error = IVAS_ERR_UNKNOWN;
    int16_t pcmBuf[MAX_OUTPUT_PCM_BUFFER_SIZE];
@@ -281,7 +303,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;
@@ -308,7 +334,11 @@ int main(
            goto cleanup;
        }

#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;
@@ -342,6 +372,21 @@ int main(
        }
    }

#ifdef EXTERNAL_ORIENTATIONS
    /*------------------------------------------------------------------------------------------*
     * Open external orientation file
     *------------------------------------------------------------------------------------------*/

    if ( arg.enableExternalOrientation )
    {
        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;
        }
    }
#endif

    /*------------------------------------------------------------------------------------------*
     * Open custom loudspeaker layout file
     *------------------------------------------------------------------------------------------*/
@@ -378,7 +423,11 @@ int main(
    /*------------------------------------------------------------------------------------------*
     * Configure the decoder
     *------------------------------------------------------------------------------------------*/
#ifdef EXTERNAL_ORIENTATIONS
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )
#else
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )
#endif

    {
        fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
@@ -642,13 +691,21 @@ int main(
#ifdef DEBUGGING
    else if ( arg.variableSpeedMode )
    {
        error = decodeVariableSpeed( arg, hBsReader, headRotReader, refRotReader, referenceVectorReader, hIvasDec );
        error = decodeVariableSpeed( arg, hBsReader, headRotReader,
#ifdef EXTERNAL_ORIENTATIONS
                                     externalOrientationFileReader,
#endif
                                     refRotReader, referenceVectorReader, hIvasDec );
    }
#endif
#endif
    else
    {
        error = decodeG192( arg, hBsReader, headRotReader, refRotReader, referenceVectorReader, hIvasDec, pcmBuf );
        error = decodeG192( arg, hBsReader, headRotReader,
#ifdef EXTERNAL_ORIENTATIONS
                            externalOrientationFileReader,
#endif
                            refRotReader, referenceVectorReader, hIvasDec, pcmBuf );
    }

    if ( error == IVAS_ERR_OK || error == IVAS_ERR_END_OF_FILE )
@@ -711,8 +768,14 @@ cleanup:
    IVAS_DEC_Close( &hIvasDec );
    CustomLsReader_close( &hLsCustomReader );
    hrtfFileReader_close( &hrtfReader );
#ifdef EXTERNAL_ORIENTATIONS
    RotationFileReader_close( &headRotReader );
    RotationFileReader_close( &externalOrientationFileReader );
    RotationFileReader_close( &refRotReader );
#else
    HeadRotationFileReader_close( &headRotReader );
    HeadRotationFileReader_close( &refRotReader );
#endif
    Vector3PairFileReader_close( &referenceVectorReader );
    RenderConfigReader_close( &renderConfigReader );

@@ -856,6 +919,10 @@ static bool parseCmdlIVAS_dec(
    arg->headrotTrajFileName = NULL;
    arg->enableReferenceVectorTracking = false;
    arg->referenceVectorTrajFileName = NULL;
#ifdef EXTERNAL_ORIENTATIONS
    arg->enableExternalOrientation = false;
    arg->externalOrientationTrajFileName = NULL;
#endif

#ifdef SUPPORT_JBM_TRACEFILE
    arg->jbmTraceFilename = NULL;
@@ -1166,6 +1233,23 @@ static bool parseCmdlIVAS_dec(
            arg->referenceVectorTrajFileName = argv[i];
            i++;
        }
#ifdef EXTERNAL_ORIENTATIONS
        else if ( strcmp( argv_to_upper, "-EXOF" ) == 0 )
        {
            arg->enableExternalOrientation = true;
            i++;

            if ( argc - i <= 4 || argv[i][0] == '-' )
            {
                fprintf( stderr, "Error: External orientation file name not specified!\n\n" );
                usage_dec();
                return false;
            }

            arg->externalOrientationTrajFileName = argv[i];
            i++;
        }
#endif
        else if ( strcmp( argv_to_upper, "-RENDER_CONFIG" ) == 0 )
        {
            arg->renderConfigEnabled = true;
@@ -1404,6 +1488,9 @@ static void usage_dec( void )
    fprintf( stdout, "-level level        : Complexity level, level = (1, 2, 3), will be defined after characterisation. \n" );
    fprintf( stdout, "                      Currently, all values default to level 3 (full functionality).\n" );
#endif
#ifdef EXTERNAL_ORIENTATIONS
    fprintf( stdout, "-exof File          : External orientation file for external orientation trajectory\n" );
#endif
#ifdef DEBUG_MODE_INFO
#ifdef DEBUG_MODE_INFO_TWEAK
    fprintf( stdout, "-info <folder>      : specify subfolder name for debug output\n" );
@@ -1591,8 +1678,14 @@ static ivas_error initOnFirstGoodFrame(
static ivas_error decodeG192(
    DecArguments arg,
    BS_READER_HANDLE hBsReader,
#ifdef EXTERNAL_ORIENTATIONS
    RotFileReader *headRotReader,
    RotFileReader *externalOrientationFileReader,
    RotFileReader *refRotReader,
#else
    HeadRotFileReader *headRotReader,
    HeadRotFileReader *refRotReader,
#endif
    Vector3PairFileReader *referenceVectorReader,
    IVAS_DEC_HANDLE hIvasDec,
    int16_t *pcmBuf )
@@ -1707,7 +1800,12 @@ static ivas_error decodeG192(
            IVAS_QUATERNION quaternion;
            if ( ( error = HeadRotationFileReading( refRotReader, &quaternion, NULL ) ) != IVAS_ERR_OK )
            {
                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;
            }

@@ -1726,7 +1824,12 @@ static ivas_error decodeG192(
            {
                if ( ( error = HeadRotationFileReading( headRotReader, &Quaternions[i], &Pos[i] ) ) != IVAS_ERR_OK )
                {
                    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;
                }
            }
@@ -1737,6 +1840,35 @@ static ivas_error decodeG192(
                goto cleanup;
            }
        }

#ifdef EXTERNAL_ORIENTATIONS
        if ( arg.enableExternalOrientation )
        {
            IVAS_QUATERNION Quaternions[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableHeadRotation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableExternalOrientation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableRotationInterpolation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int16_t numFramesToTargetOrientation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];

            for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ )
            {

                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 ),
                             RotationFileReader_getFilePath( externalOrientationFileReader ) );
                    goto cleanup;
                }
            }

            if ( ( error = IVAS_DEC_FeedExternalOrientationData( hIvasDec, Quaternions, enableHeadRotation, enableExternalOrientation, enableRotationInterpolation, numFramesToTargetOrientation ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "\nIVAS_DEC_FeedExternalOrientationData failed: %s\n", IVAS_DEC_GetErrorMessage( error ) );
                goto cleanup;
            }
        }
#endif

        /* Run decoder for one frame (get rendered output) */
        if ( ( error = IVAS_DEC_GetSamples( hIvasDec, pcmBuf, &nOutSamples ) ) != IVAS_ERR_OK )
        {
@@ -2469,8 +2601,14 @@ cleanup:
static ivas_error decodeVariableSpeed(
    DecArguments arg,
    BS_READER_HANDLE hBsReader,
#ifdef EXTERNAL_ORIENTATIONS
    RotFileReader *headRotReader,
    RotFileReader *externalOrientationFileReader,
    RotFileReader *refRotReader,
#else
    HeadRotFileReader *headRotReader,
    HeadRotFileReader *refRotReader,
#endif
    Vector3PairFileReader *referenceVectorReader,
    IVAS_DEC_HANDLE hIvasDec )

@@ -2574,7 +2712,12 @@ static ivas_error decodeVariableSpeed(
            IVAS_QUATERNION quaternion;
            if ( ( error = HeadRotationFileReading( refRotReader, &quaternion, NULL ) ) != IVAS_ERR_OK )
            {
                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;
            }

@@ -2594,7 +2737,12 @@ static ivas_error decodeVariableSpeed(
            {
                if ( ( error = HeadRotationFileReading( headRotReader, &Quaternions[i], &Pos[i] ) ) != IVAS_ERR_OK )
                {
                    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;
                }
            }
@@ -2606,6 +2754,34 @@ static ivas_error decodeVariableSpeed(
            }
        }

#ifdef EXTERNAL_ORIENTATIONS
        if ( arg.enableExternalOrientation )
        {
            IVAS_QUATERNION Quaternions[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableHeadRotation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableExternalOrientation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableRotationInterpolation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int16_t numFramesToTargetOrientation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];

            for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ )
            {

                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 ),
                             RotationFileReader_getFilePath( externalOrientationFileReader ) );
                    goto cleanup;
                }
            }

            if ( ( error = IVAS_DEC_FeedExternalOrientationData( hIvasDec, Quaternions, enableHeadRotation, enableExternalOrientation, enableRotationInterpolation, numFramesToTargetOrientation ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "\nIVAS_DEC_FeedExternalOrientationData failed: %s\n", IVAS_DEC_GetErrorMessage( error ) );
                goto cleanup;
            }
        }
#endif

        /* decode and get samples */
        do
        {
@@ -2827,7 +3003,12 @@ static ivas_error decodeVariableSpeed(
            IVAS_QUATERNION quaternion;
            if ( ( error = HeadRotationFileReading( refRotReader, &quaternion, NULL ) ) != IVAS_ERR_OK )
            {
                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;
            }

@@ -2846,7 +3027,12 @@ static ivas_error decodeVariableSpeed(
            {
                if ( ( error = HeadRotationFileReading( headRotReader, &Quaternions[i], &Pos[i] ) ) != IVAS_ERR_OK )
                {
                    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;
                }
            }
@@ -2858,6 +3044,34 @@ static ivas_error decodeVariableSpeed(
            }
        }

#ifdef EXTERNAL_ORIENTATIONS
        if ( arg.enableExternalOrientation )
        {
            IVAS_QUATERNION Quaternions[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableHeadRotation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableExternalOrientation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int8_t enableRotationInterpolation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
            int16_t numFramesToTargetOrientation[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];

            for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ )
            {

                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 ),
                             RotationFileReader_getFilePath( externalOrientationFileReader ) );
                    goto cleanup;
                }
            }

            if ( ( error = IVAS_DEC_FeedExternalOrientationData( hIvasDec, Quaternions, enableHeadRotation, enableExternalOrientation, enableRotationInterpolation, numFramesToTargetOrientation ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "\nIVAS_DEC_FeedExternalOrientationData failed: %s\n", IVAS_DEC_GetErrorMessage( error ) );
                goto cleanup;
            }
        }
#endif

        /* decode and get samples */
        if ( ( error = IVAS_DEC_VoIP_Flush( hIvasDec, nOutSamples, pcmBuf, &nSamplesAvailableNext, &nSamplesFlushed ) ) != IVAS_ERR_OK )
        {
+98 −2

File changed.

Preview size limit exceeded, changes collapsed.

+7 −0
Original line number Diff line number Diff line
@@ -75,6 +75,9 @@ typedef enum
    IVAS_ERR_WRONG_MODE,
    IVAS_ERR_INVALID_OUTPUT_FORMAT,
    IVAS_ERR_HEAD_ROTATION_NOT_SUPPORTED,
#ifdef EXTERNAL_ORIENTATIONS
    IVAS_ERR_EXT_ORIENTATION_NOT_SUPPORTED,
#endif
    IVAS_ERR_INVALID_HRTF,
    IVAS_ERR_INVALID_INPUT_FORMAT,
    IVAS_ERR_INVALID_INDEX, /* ToDo: should be merged with IVAS_ERR_INDEX_OUT_OF_BOUNDS */
@@ -232,6 +235,10 @@ static inline const char *ivas_error_to_string( ivas_error error_code )
            return "Wrong mode";
        case IVAS_ERR_HEAD_ROTATION_NOT_SUPPORTED:
            return "Head rotation not supported";
#ifdef EXTERNAL_ORIENTATIONS
        case IVAS_ERR_EXT_ORIENTATION_NOT_SUPPORTED:
            return "External orientation not supported";
#endif
        case IVAS_ERR_INVALID_HRTF:
            return "Unsupported HRTF filter set";
        case IVAS_ERR_INVALID_INPUT_FORMAT:
+90 −96
Original line number Diff line number Diff line
@@ -3825,7 +3825,8 @@ void ivas_dirac_dec_compute_directional_responses(
void ivas_dirac_dec_get_frequency_axis( 
    float *frequency_axis,                                      /* o  : array of center frequencies of a real filter bank */
    const int32_t output_Fs,                                    /* i  : sampling frequency                                */
    const int16_t num_freq_bands );                             /* i  : number of frequency bands                         */
    const int16_t num_freq_bands                                /* i  : number of frequency bands                         */
);

void calculate_hodirac_sector_parameters(
	DIRAC_ENC_HANDLE hDirAC,
@@ -3854,7 +3855,7 @@ ivas_error ivas_mc_paramupmix_enc_open(

void ivas_mc_paramupmix_enc_close(
    MC_PARAMUPMIX_ENC_HANDLE *hMCParamUpmix,                    /* i/o: MC Param-Upmix encoder handle                   */
    const int32_t sampling_rate
    const int32_t input_Fs                                      /* i  : input sampling rate                             */
);

void ivas_mc_paramupmix_dec(
@@ -3862,16 +3863,6 @@ void ivas_mc_paramupmix_dec(
    float output_f[][L_FRAME48k]                                /* i/o: synthesized core-coder transport channels/DirAC output  */
);

#ifdef FIX_506_WARNINGS
int16_t ivas_mc_paramupmix_enc_getNumTransportChannels(
    void
);
#else
int16_t ivas_mc_paramupmix_getNumTransportChannels(
    void
);
#endif

ivas_error ivas_mc_paramupmix_dec_open(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                          */
);
@@ -3881,9 +3872,8 @@ void ivas_mc_paramupmix_dec_close(
);

void ivas_mc_paramupmix_dec_read_BS(
    const int32_t ivas_total_brate,                                 /* i  : IVAS total bitrate                              */
    Decoder_State *st,                                              /* i/o: decoder state structure                         */
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder structure                          */
    Decoder_State *st,                                          /* i/o: decoder state structure                         */
    MC_PARAMUPMIX_DEC_HANDLE hMCParamUpmix,                     /* i/o: decoder MC Param-Upmix handle                   */
    int16_t *nb_bits                                            /* o  : number of bits written                          */
);
@@ -5170,6 +5160,10 @@ void ivas_binaural_cldfb_sf(
void ivas_binRenderer(
    BINAURAL_RENDERER_HANDLE hBinRenderer,                      /* i/o: fastconv binaural renderer handle                       */
    HEAD_TRACK_DATA_HANDLE hHeadTrackData,                      /* i/o: head track handle                                       */
#ifdef EXTERNAL_ORIENTATIONS
    COMBINED_ORIENTATION_HANDLE hCombinedOrientationData,       /* i  : combined head and external orientation handle           */
    int16_t subframe_idx,                                       /* i  : subframe index                                          */
#endif
    const int16_t numTimeSlots,                                 /* i: : number of time slots to process                         */
    float Cldfb_RealBuffer_Binaural[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* o  : Binaural signals             */
    float Cldfb_ImagBuffer_Binaural[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* o  : Binaural signals             */
Loading