Commit 9a5f9f64 authored by vaillancour's avatar vaillancour
Browse files

Fix for SWB content

parent 1700f640
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -169,7 +169,11 @@ void mdct_spectrum_denorm_fx(
                /*gamma *= gain_tweak; */
                L_tmp = L_mult(gamma_fx, gain_tweak_fx);  /* Qgamma+Qtweak+1 */
                exp_norm = norm_l(L_tmp);
#ifdef BASOP_NOGLOB
                gamma_fx = round_fx_o(L_shl_o(L_tmp, exp_norm, &Overflow), &Overflow);
#else
                gamma_fx = round_fx(L_shl(L_tmp, exp_norm));
#endif
                Qgamma = sub(add(add(Qgamma, Qtweak), exp_norm), 15);/*Qgamma+Qtweak+1+exp_norm-16; */
            }

+28 −2
Original line number Diff line number Diff line
@@ -138,7 +138,9 @@ static void E_ACELP_2pulse_searchx(
    Word32 alp0, alp1, alp2, s;
    Word16 *pR, sgnx;
    Word16 sqk[2], alpk[2], ik;

#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif

    /* eight dn2 max positions per track */
    pos_x = &dn2[shl(track_x,3)];
@@ -163,7 +165,12 @@ static void E_ACELP_2pulse_searchx(
    {
        sgnx = negate(sgnx);
    }
#ifdef BASOP_NOGLOB
    if (mac_ro(L_mac_o(L_mac_o(alp0, cor[x], sign[x], &Overflow), cor[track_y], sign[track_y], &Overflow), R[track_y-x], sgnx, &Overflow) < 0)
#else
    if (mac_r(L_mac(L_mac(alp0, cor[x], sign[x]), cor[track_y], sign[track_y]), R[track_y-x], sgnx) < 0)
#endif

    {
        sqk[0] = 1;
        move16();
@@ -184,8 +191,11 @@ static void E_ACELP_2pulse_searchx(
        /*ps1 = ps0 + dn[x];                            INDIRECT(1);ADD(1);*/
        ps1 = add(ps0, dn[x]);
        /*alp1 = alp0 + 2*sgnx*cor[x];                  INDIRECT(1);MULT(1); MAC(1);*/
#ifdef BASOP_NOGLOB
        alp1 = L_mac_o(alp0, cor[x], sgnx, &Overflow); /* Qalp = (Q_R=Q_cor)*Q_signval */
#else
        alp1 = L_mac(alp0, cor[x], sgnx); /* Qalp = (Q_R=Q_cor)*Q_signval */

#endif
        pR = R-x;

        FOR (y = track_y; y < L_SUBFR; y += 4)
@@ -201,14 +211,26 @@ static void E_ACELP_2pulse_searchx(
            assert(sgnx != 0);
            alp2_16 = 0;

#ifdef BASOP_NOGLOB
            alp2 = L_mac_o(alp1, cor[y], sign[y], &Overflow); /* Qalp = (Q_R=Q_cor)*Q_signval */
#else
            alp2 = L_mac(alp1, cor[y], sign[y]); /* Qalp = (Q_R=Q_cor)*Q_signval */
#endif
            if (sgnx > 0)
            {
#ifdef BASOP_NOGLOB
                alp2_16 = mac_ro(alp2, pR[y], sign[y], &Overflow); /* Qalp = (Q_R=Q_cor)*Q_signval */
#else
                alp2_16 = mac_r(alp2, pR[y], sign[y]); /* Qalp = (Q_R=Q_cor)*Q_signval */
#endif
            }
            if (sgnx < 0)
            {
#ifdef BASOP_NOGLOB
                alp2_16 = msu_ro(alp2, pR[y], sign[y], &Overflow);	/* Qalp = (Q_R=Q_cor)*Q_signval */
#else
                alp2_16 = msu_r(alp2, pR[y], sign[y]);	/* Qalp = (Q_R=Q_cor)*Q_signval */
#endif
            }
            alpk[1-ik] = alp2_16;
            move16();
@@ -220,7 +242,11 @@ static void E_ACELP_2pulse_searchx(


            /*s = (alpk * sq) - (sqk * alp2);            MULT(1);MAC(1);*/
#ifdef BASOP_NOGLOB
            s = L_msu_o(L_mult(alpk[ik], sq), sqk[ik], alp2_16, &Overflow);	/* Q_sq = Q_sqk, Q_alpk = Q_alp */
#else
            s = L_msu(L_mult(alpk[ik], sq), sqk[ik], alp2_16);	/* Q_sq = Q_sqk, Q_alpk = Q_alp */
#endif
            if (s > 0)
            {
                ik = sub(1, ik);
+5 −1
Original line number Diff line number Diff line
@@ -1216,7 +1216,11 @@ void tcx_noise_factor(
        att = BASOP_Util_Divide3232_Scale( L_shl(L_min(accu1, accu2), 1), L_add(accu1, accu2), &s );
        att = Sqrt16(att, &s);
        BASOP_SATURATE_WARNING_OFF; /* att is always <= 1.0 */
#ifdef BASOP_NOGLOB
        att = shl_o(att, s, &Overflow);                                  
#else
        att = shl(att, s);                                  
#endif
        BASOP_SATURATE_WARNING_ON;
    }
    ELSE