Commit d2960a01 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch '3gpp_issue_1058_fix_1' into 'main'

Fix for 3GPP issue 1058: BASOP asserts in Stereo fx encoder for +10dB selection test inputs

See merge request !843
parents c52e9fe3 fe1ff93d
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -1192,6 +1192,7 @@ void xtalk_classifier_dft_fx(
    Word16 edge_0_1, wedge;
    Word32 ratio_m1_m2, m2_m2, d_itd2, itd1_flip;
    Word32 scr_min, scr_max;
    Word64 W_tmp;

    hStereoClassif = hCPE->hStereoClassif;
    hItd = ( hCPE->hStereoDft != NULL ) ? hCPE->hStereoDft->hItd : hCPE->hStereoMdct->hItd;
@@ -1271,8 +1272,8 @@ void xtalk_classifier_dft_fx(
    set32_fx( fvn, -ONE_IN_Q29, SSC_MAX_NFEA );

    /* calcualte raw score based on LR */
    score = XTALK_INTERCEPT_DFT_Q27;
    move32();
    W_tmp = XTALK_INTERCEPT_DFT_Q27;
    move64();
    FOR( i = 0; i < SIZE_XTALK_ISEL_DFT; i++ )
    {
        ind = xtalk_isel_dft[i];
@@ -1287,16 +1288,16 @@ void xtalk_classifier_dft_fx(

        /* LR */
        // score += fvn[i] * xtalk_coef_dft[i];
        score = L_add( score, L_shr( Mpy_32_32( fvn[i], xtalk_coef_dft_q30[i] ), 1 ) ); // Q27
        W_tmp = W_add( W_tmp, L_shr( Mpy_32_32( fvn[i], xtalk_coef_dft_q30[i] ), 1 ) ); // Q27
    }

    /* normalize score to -1:+1 */
    IF( GT_32( score, XTALK_SCORE_THR_DFT_Q27 ) )
    IF( GT_64( W_tmp, XTALK_SCORE_THR_DFT_Q27 ) )
    {
        score = MAX_32; // Q31
        move32();
    }
    ELSE IF( LT_32( score, -XTALK_SCORE_THR_DFT_Q27 ) )
    ELSE IF( LT_64( W_tmp, -XTALK_SCORE_THR_DFT_Q27 ) )
    {
        score = MIN_32; // Q31
        move32();
@@ -1304,7 +1305,7 @@ void xtalk_classifier_dft_fx(
    ELSE
    {
        // score /= XTALK_SCORE_THR_DFT;
        score = L_shl_sat( score, 2 ); // Q27->Q31/XTALK_SCORE_THR_DFT
        score = L_shl_sat( W_extract_l( W_tmp ), 2 ); // Q27->Q31/XTALK_SCORE_THR_DFT
    }

    /* raw score */