Commit 8689be93 authored by vaclav's avatar vaclav
Browse files

Merge remote-tracking branch 'remotes/origin/main' into...

Merge remote-tracking branch 'remotes/origin/main' into 880-functions-renaming-after-nonbe_unified_decoding_paths-3
parents 19736c7f 28262457
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -172,7 +172,7 @@


#define NONBE_1244_FIX_SWB_BWE_MEMORY                   /* VA: issue 1244: fix to SWB BWE memory in case of switching from FB coding - pending a review by Huawei */ 
#define NONBE_1244_FIX_SWB_BWE_MEMORY                   /* VA: issue 1244: fix to SWB BWE memory in case of switching from FB coding - pending a review by Huawei */ 
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */

#define NONBE_1300_TDREND_LARGE_ITD                     /* Eri: issue 1300: There was a bug feeding 1.25 ms frames to the TD renderer, causing out-of-buffer access. This was resolved. However, it is still possible that modeled HRTF with large ITDs could trigger out-of-buffer access. This adds a check to prevent this.*/


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


+18 −0
Original line number Original line Diff line number Diff line
@@ -437,6 +437,9 @@ ivas_error TDREND_GetMix(
    float hrf_left_delta[SFX_SPAT_BIN_MAX_FILTER_LENGTH];
    float hrf_left_delta[SFX_SPAT_BIN_MAX_FILTER_LENGTH];
    float hrf_right_delta[SFX_SPAT_BIN_MAX_FILTER_LENGTH];
    float hrf_right_delta[SFX_SPAT_BIN_MAX_FILTER_LENGTH];
    int16_t intp_count;
    int16_t intp_count;
#ifdef NONBE_1300_TDREND_LARGE_ITD
    int16_t currShift, prevShift, transition_len, length_in2;
#endif


    error = IVAS_ERR_OK;
    error = IVAS_ERR_OK;


@@ -462,6 +465,21 @@ ivas_error TDREND_GetMix(
        {
        {
            TDREND_SRC_REND_UpdateFiltersFromSpatialParams( hBinRendererTd, SrcRend_p, SrcSpatial_p, Src_p->hrf_left_prev,
            TDREND_SRC_REND_UpdateFiltersFromSpatialParams( hBinRendererTd, SrcRend_p, SrcSpatial_p, Src_p->hrf_left_prev,
                                                            Src_p->hrf_right_prev, hrf_left_delta, hrf_right_delta, &intp_count, &Src_p->filterlength, &Src_p->itd, &Src_p->Gain, Src_p );
                                                            Src_p->hrf_right_prev, hrf_left_delta, hrf_right_delta, &intp_count, &Src_p->filterlength, &Src_p->itd, &Src_p->Gain, Src_p );
#ifdef NONBE_1300_TDREND_LARGE_ITD
            /* For large ITD values at lower sampling rate, check if the transition can be done */
            if ( Src_p->itd * Src_p->previtd < 0 )
            {
                currShift = (int16_t) abs( Src_p->itd );
                prevShift = (int16_t) abs( Src_p->previtd );
                transition_len = subframe_length - max( 0, SFX_SPAT_BIN_SINC_M - currShift );
                length_in2 = transition_len - (int16_t) ( ( (float) ( transition_len * prevShift ) / ( (float) ( prevShift + currShift ) ) ) + 0.5f ) - currShift;
                if ( length_in2 <= 0 )
                {
                    /* Subframe too short for ITD transition -- change to ITD=0 and push the rest of the transition to next subframe */
                    Src_p->itd = 0;
                }
            }
#endif
        }
        }


        /* Render source if needed */
        /* Render source if needed */