Commit 6ff99c0f authored by stoutjesdijk's avatar stoutjesdijk 🎧
Browse files

Merge remote-tracking branch 'origin/main' into 109-orientation-tracking-modes

parent 108bb8b8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -159,7 +159,7 @@
#define HRTF_BINARY_FILE                                /* HRTF filters' binary file used for binaural rendering. */
#define LOW_RATE_TRANS_FIX                              /* Eri: Fix for critical item during transitions */

//#define FIX_197_CREND_INTERFACE 
#define FIX_197_CREND_INTERFACE 
#define SET_TNS_FLAG_IN_EVERY_FRAME                     /* FhG: issue 288 - mismatch between encoder and decoder wrt TNS usage in unified stereo  with frameloss */
#define FIX_FOR_TEST                                    /* allows tests to pass using old TD binary file, to be removed after merge*/
#define FIX_299_ISM_BWS                                 /* VA: issue 299 - fix Band-width switching issues in ISM format */
+2 −0
Original line number Diff line number Diff line
@@ -2584,6 +2584,7 @@ ivas_error ivas_rend_crendProcess(
        if ( hDecoderConfig && hDecoderConfig->Opt_Headrotation && hHeadTrackData && hHeadTrackData->num_quaternions >= 0 )
        {
            /* Orientation tracking */
#ifndef FIX_I109_ORIENTATION_TRACKING
            if ( pCrend->hCrend->hTrack != NULL )
            {
                if ( hDecoderConfig->orientation_tracking == IVAS_ORIENT_TRK_AVG )
@@ -2615,6 +2616,7 @@ ivas_error ivas_rend_crendProcess(
            {
                rotateFrame_sd( hHeadTrackData, output, subframe_len, *hIntSetup, hEFAPdata, subframe_idx );
            }
#endif
        }
#endif

+33 −7
Original line number Diff line number Diff line
@@ -141,12 +141,6 @@ typedef struct
    float lfeOutputGains[IVAS_MAX_INPUT_LFE_CHANNELS][IVAS_MAX_OUTPUT_CHANNELS];
} IVAS_REND_LfeRouting;

typedef struct
{
    int8_t headRotEnabled;
    IVAS_QUATERNION headPositions[RENDERER_HEAD_POSITIONS_PER_FRAME];
    float crossfade[L_FRAME48k / RENDERER_HEAD_POSITIONS_PER_FRAME];
} IVAS_REND_HeadRotData;

/*----------------------------------------------------------------------------------*
 * Binaural Rendering structure
@@ -464,6 +458,23 @@ typedef struct ivas_binaural_rendering_struct
 *----------------------------------------------------------------------------------*/
// VE2AT: move to ivas_rom_rend.h ?

#ifdef FIX_I109_ORIENTATION_TRACKING
/* Orientation tracking structure */
typedef struct ivas_orient_trk_state_t
{
    OTR_TRACKING_T trackingType;
    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;
#endif

typedef struct ivas_binaural_head_track_struct
{
    int16_t num_quaternions;
@@ -476,9 +487,23 @@ typedef struct ivas_binaural_head_track_struct
    float lrSwitchInterpVal;

    int16_t shd_rot_max_order;
#ifdef FIX_I109_ORIENTATION_TRACKING
    ivas_orient_trk_state_t *OrientationTracker;
#endif

} HEAD_TRACK_DATA, *HEAD_TRACK_DATA_HANDLE;

typedef struct
{
    int8_t headRotEnabled;
    IVAS_QUATERNION headPositions[RENDERER_HEAD_POSITIONS_PER_FRAME];
    float crossfade[L_FRAME48k / RENDERER_HEAD_POSITIONS_PER_FRAME];
#ifdef FIX_I109_ORIENTATION_TRACKING
    ivas_orient_trk_state_t *hOrientationTracker;
#endif
} IVAS_REND_HeadRotData;


/* Reverberator structures */


@@ -585,6 +610,7 @@ typedef struct ivas_reverb_state_t

} REVERB_DATA, *REVERB_HANDLE;

#ifndef FIX_I109_ORIENTATION_TRACKING

typedef struct ivas_orient_trk_state_t
{
@@ -612,7 +638,7 @@ typedef struct ivas_orient_trk_state_t
    float trkRoll;

} ivas_orient_trk_state_t;

#endif

/*----------------------------------------------------------------------------------*
 * TD ISm Object Renderer structure