Unverified Commit 39607ce7 authored by norvell's avatar norvell
Browse files

Fix clamping of listener position input to synch with BASOP

parent a5955984
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -61,6 +61,10 @@
#define IVAS_REVERB_PREDELAY_MAX         20 /* Max input delay for reverb module */
#define IVAS_ER_LIST_HEIGHT              1.6f
#define IVAS_DEFAULT_AEID                65535
#ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION
#define IVAS_LISTENER_POSITION_MAX 327.67f
#endif


/* JBM constants for adaptive-playout */
#define IVAS_TIME_SCALE_MIN 50  /* min. time-scaling [%] */
+2 −2
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@
/* ################### Start DEBUGGING switches ########################### */

#ifndef RELEASE
#define DEBUGGING                           /* Activate debugging part of the code */
/*#define DEBUGGING*/                           /* Activate debugging part of the code */
#endif
/*#define WMOPS*/                               /* Activate complexity and memory counters */
/*#define WMOPS_PER_FRAME*/                     /* Output per-frame complexity (writes one float value per frame to the file "wmops_analysis") */
@@ -178,7 +178,7 @@
#define FIX_1540_EXPOSE_PT_IN_RTP_HEADER_API            /* Expose Payload Type setting in RTP Header */
#define FIX_1563_FIX_STEREO_SW                          /* VA: float issue 1563: fix clicks in stereo switching */
#define FIX_1562_DTX_CRASH_DECODER                      /* VA: float issue 1562: fix crash in stereo decoding in DTX and bitrate switching */
#define FIX_BASOP_2023_TDREND_DISTATT_PRECISION         /* Eri: Distance attenuation scaling */
#define FIX_BASOP_2023_TDREND_DISTATT_PRECISION         /* Eri: Basop issue 2023: Distance attenuation scaling, synch with BASOP updates and adding clamping of distance att input and listener position  */

/* ##################### End NON-BE switches ########################### */

+6 −0
Original line number Diff line number Diff line
@@ -2601,9 +2601,15 @@ ivas_error IVAS_DEC_FeedHeadTrackData(
        return error;
    }

#ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION
    hHeadTrackData->Pos[subframe_idx].x = max( min( IVAS_LISTENER_POSITION_MAX, Pos.x ), -IVAS_LISTENER_POSITION_MAX );
    hHeadTrackData->Pos[subframe_idx].y = max( min( IVAS_LISTENER_POSITION_MAX, Pos.y ), -IVAS_LISTENER_POSITION_MAX );
    hHeadTrackData->Pos[subframe_idx].z = max( min( IVAS_LISTENER_POSITION_MAX, Pos.z ), -IVAS_LISTENER_POSITION_MAX );
#else
    hHeadTrackData->Pos[subframe_idx].x = Pos.x;
    hHeadTrackData->Pos[subframe_idx].y = Pos.y;
    hHeadTrackData->Pos[subframe_idx].z = Pos.z;
#endif

    hHeadTrackData->sr_pose_pred_axis = rot_axis;
    hIvasDec->updateOrientation = true;
+0 −2
Original line number Diff line number Diff line
@@ -70,8 +70,6 @@ ivas_error TDREND_REND_RenderSourceHRFilt(
    float LeftOutputFrame[L_SPATIAL_SUBFR_48k];
    float RightOutputFrame[L_SPATIAL_SUBFR_48k];

    dbgwrite( &Src_p->Gain, sizeof( float ), 1, 1, "Gain.float" );

    TDREND_Apply_ITD( Src_p->InputFrame_p, LeftOutputFrame, RightOutputFrame, &Src_p->previtd, Src_p->itd, Src_p->mem_itd, subframe_length );
    TDREND_firfilt( LeftOutputFrame, Src_p->hrf_left_prev, hrf_left_delta, intp_count, Src_p->mem_hrf_left, subframe_length, Src_p->filterlength, Src_p->Gain, Src_p->prevGain );
    TDREND_firfilt( RightOutputFrame, Src_p->hrf_right_prev, hrf_right_delta, intp_count, Src_p->mem_hrf_right, subframe_length, Src_p->filterlength, Src_p->Gain, Src_p->prevGain );
+6 −0
Original line number Diff line number Diff line
@@ -125,9 +125,15 @@ ivas_error HeadRotationFileReading(
    pQuaternion->z = z;
    if ( pPos != NULL )
    {
#ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION
        pPos->x = min( max( -IVAS_LISTENER_POSITION_MAX, posx ), IVAS_LISTENER_POSITION_MAX );
        pPos->y = min( max( -IVAS_LISTENER_POSITION_MAX, posy ), IVAS_LISTENER_POSITION_MAX );
        pPos->z = min( max( -IVAS_LISTENER_POSITION_MAX, posz ), IVAS_LISTENER_POSITION_MAX );
#else
        pPos->x = posx;
        pPos->y = posy;
        pPos->z = posz;
#endif
    }

    return IVAS_ERR_OK;