Commit 276261d4 authored by TYAGIRIS's avatar TYAGIRIS
Browse files

address review comments

parent 112c8acb
Loading
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1844,7 +1844,11 @@ static ivas_error initOnFirstGoodFrame(
            return error;
        }

        IVAS_DEC_GetSplitRendBitstreamHeader( hIvasDec, &splitRendCodec, &poseCorrection, &splitRendCodecFrameSizeMs );
        if ( ( error = IVAS_DEC_GetSplitRendBitstreamHeader( hIvasDec, &splitRendCodec, &poseCorrection, &splitRendCodecFrameSizeMs ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nUnable to get split renderer bitstream header: %s\n", ivas_error_to_string( error ) );
            return error;
        }

        if ( IVAS_DEC_is_split_rendering_coded_out( hIvasDec ) )
        {
+9 −5
Original line number Diff line number Diff line
@@ -780,7 +780,7 @@ static void convertOutputBuffer(
/*------------------------------------------------------------------------------------------*
 * main()
 *
 * Main External renderer function for command-line interface
 * Main ISAR post renderer function for command-line interface
 *------------------------------------------------------------------------------------------*/

int main(
@@ -951,8 +951,12 @@ int main(

    if ( args.inConfig.numBinBuses > 0 )
    {
        IVAS_REND_SetSplitRendBitstreamHeader( hIsarPostRend, bitsBuffer.config.codec, bitsBuffer.config.poseCorrection,
                                               bitsBuffer.config.codec_frame_size_ms );
        if ( ( error = IVAS_REND_SetSplitRendBitstreamHeader( hIsarPostRend, bitsBuffer.config.codec, bitsBuffer.config.poseCorrection,
                                                              bitsBuffer.config.codec_frame_size_ms ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "Error in getting split renderer bitstream header: %s\n", ivas_error_to_string( error ) );
            exit( -1 );
        }
    }


@@ -1050,12 +1054,12 @@ int main(

    if ( !args.quietModeEnabled )
    {
        fprintf( stdout, "\n------ Running the renderer ------\n\n" );
        fprintf( stdout, "\n------ Running the ISAR post renderer ------\n\n" );
        fprintf( stdout, "Frames processed:       " );
    }
    else
    {
        fprintf( stdout, "\n\n-- Start the renderer (quiet mode) --\n\n" );
        fprintf( stdout, "\n\n-- Start the ISAR post renderer (quiet mode) --\n\n" );
    }

    while ( 1 )
+0 −43
Original line number Diff line number Diff line
@@ -784,47 +784,4 @@ typedef struct ivas_param_ism_data_structure
    float last_cardioid_left[MAX_NUM_OBJECTS];

} PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE;

typedef struct ivas_orient_trk_state_t
{
    IVAS_HEAD_ORIENT_TRK_T orientation_tracking;
    float centerAdaptationRate;
    float offCenterAdaptationRate;
    float adaptationAngle;

    float alpha;
    IVAS_QUATERNION absAvgRot; /* average absolute orientation */
    IVAS_QUATERNION refRot;    /* reference orientation */
    IVAS_QUATERNION trkRot;    /* tracked rotation */

} ivas_orient_trk_state_t;

typedef struct
{
    int8_t headRotEnabled;
    IVAS_QUATERNION headPositions[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
    IVAS_VECTOR3 Pos[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
    float crossfade[L_FRAME48k / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
#ifdef SPLIT_REND_WITH_HEAD_ROT
    ISAR_SPLIT_REND_ROT_AXIS sr_pose_pred_axis;
#endif
    ivas_orient_trk_state_t *hOrientationTracker;

} IVAS_REND_HeadRotData;

#ifdef SPLIT_REND_WITH_HEAD_ROT

typedef struct
{
#ifdef SPLIT_REND_WITH_HEAD_ROT_DEBUG
    HANDLE_CLDFB_FILTER_BANK cldfbAna[( 1 + MAX_HEAD_ROT_POSES ) * BINAURAL_CHANNELS];
#else
    HANDLE_CLDFB_FILTER_BANK cldfbAna[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS];
#endif
    HANDLE_CLDFB_FILTER_BANK cldfbSyn[BINAURAL_CHANNELS];

} CLDFB_HANDLES_WRAPPER, *CLDFB_HANDLES_WRAPPER_HANDLE;

#endif

#endif /* IVAS_STAT_COM */
+72 −0
Original line number Diff line number Diff line
@@ -42,8 +42,80 @@
#include "isar_lcld_prot.h"
#include "isar_lc3plus_enc.h"
#include "isar_lc3plus_dec.h"
#endif

/*-------------------------------------------------------------------*
 *  constants common between isar and ivas rend
 *-------------------------------------------------------------------*/

/* Maximum buffer length (per channel) in samples.
 * Keep this separate from L_FRAME48k in case we want to support different size later */
#define MAX_BUFFER_LENGTH_PER_CHANNEL ( L_FRAME48k )
#ifdef SPLIT_REND_WITH_HEAD_ROT
#define MAX_CLDFB_BUFFER_LENGTH_PER_CHANNEL ( MAX_BUFFER_LENGTH_PER_CHANNEL * 2 )
#endif

/* Maximum buffer length (total) in samples. */
/* Maximum buffer length (total) in samples. */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#define MAX_BUFFER_LENGTH           ( MAX_BUFFER_LENGTH_PER_CHANNEL * MAX_INPUT_CHANNELS )
#define MAX_CLDFB_BUFFER_LENGTH     ( MAX_CLDFB_BUFFER_LENGTH_PER_CHANNEL * MAX_INPUT_CHANNELS )
#define MAX_BIN_BUFFER_LENGTH       ( MAX_BUFFER_LENGTH_PER_CHANNEL * BINAURAL_CHANNELS )
#define MAX_CLDFB_BIN_BUFFER_LENGTH ( MAX_CLDFB_BUFFER_LENGTH_PER_CHANNEL * BINAURAL_CHANNELS )
#else
#define MAX_BUFFER_LENGTH ( MAX_BUFFER_LENGTH_PER_CHANNEL * MAX_INPUT_CHANNELS )
#endif

#define MAX_BIN_DELAY_SAMPLES 150 /* Maximum supported rendering latency for binaural IRs */

/* Frame size required when rendering to binaural */
#define BINAURAL_RENDERING_FRAME_SIZE_MS 5

/*-------------------------------------------------------------------*
 *  structures common between isar and ivas rend
 *-------------------------------------------------------------------*/

typedef struct ivas_orient_trk_state_t
{
    IVAS_HEAD_ORIENT_TRK_T orientation_tracking;
    float centerAdaptationRate;
    float offCenterAdaptationRate;
    float adaptationAngle;

    float alpha;
    IVAS_QUATERNION absAvgRot; /* average absolute orientation */
    IVAS_QUATERNION refRot;    /* reference orientation */
    IVAS_QUATERNION trkRot;    /* tracked rotation */

} ivas_orient_trk_state_t;

typedef struct
{
    int8_t headRotEnabled;
    IVAS_QUATERNION headPositions[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
    IVAS_VECTOR3 Pos[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
    float crossfade[L_FRAME48k / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES];
#ifdef SPLIT_REND_WITH_HEAD_ROT
    ISAR_SPLIT_REND_ROT_AXIS sr_pose_pred_axis;
#endif
    ivas_orient_trk_state_t *hOrientationTracker;

} IVAS_REND_HeadRotData;

#ifdef SPLIT_REND_WITH_HEAD_ROT
typedef struct
{
#ifdef SPLIT_REND_WITH_HEAD_ROT_DEBUG
    HANDLE_CLDFB_FILTER_BANK cldfbAna[( 1 + MAX_HEAD_ROT_POSES ) * BINAURAL_CHANNELS];
#else
    HANDLE_CLDFB_FILTER_BANK cldfbAna[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS];
#endif
    HANDLE_CLDFB_FILTER_BANK cldfbSyn[BINAURAL_CHANNELS];

} CLDFB_HANDLES_WRAPPER, *CLDFB_HANDLES_WRAPPER_HANDLE;
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT
typedef struct isar_split_rend_huffman_cfg_t
{
    const int32_t *codebook;
+0 −17
Original line number Diff line number Diff line
@@ -61,23 +61,6 @@ int isar_void_func( void )
 * Local constants
 *-------------------------------------------------------------------*/

/* Maximum buffer length (per channel) in samples.
 * Keep this separate from L_FRAME48k in case we want to support different size later */
#define MAX_BUFFER_LENGTH_PER_CHANNEL       ( L_FRAME48k )
#define MAX_CLDFB_BUFFER_LENGTH_PER_CHANNEL ( MAX_BUFFER_LENGTH_PER_CHANNEL * 2 )
/* Maximum buffer length (total) in samples. */
/* Maximum buffer length (total) in samples. */
#define MAX_BUFFER_LENGTH                   ( MAX_BUFFER_LENGTH_PER_CHANNEL * MAX_INPUT_CHANNELS )
#define MAX_CLDFB_BUFFER_LENGTH             ( MAX_CLDFB_BUFFER_LENGTH_PER_CHANNEL * MAX_INPUT_CHANNELS )
#define MAX_BIN_BUFFER_LENGTH               ( MAX_BUFFER_LENGTH_PER_CHANNEL * BINAURAL_CHANNELS )
#define MAX_CLDFB_BIN_BUFFER_LENGTH         ( MAX_CLDFB_BUFFER_LENGTH_PER_CHANNEL * BINAURAL_CHANNELS )

#define MAX_BIN_DELAY_SAMPLES            150 /* Maximum supported rendering latency for binaural IRs */

/* Frame size required when rendering to binaural */
#define BINAURAL_RENDERING_FRAME_SIZE_MS 5


/*-------------------------------------------------------------------*
 * Local types
 *-------------------------------------------------------------------*/
Loading