Commit b8561ae6 authored by vaillancour's avatar vaillancour
Browse files

Fix for DTX FB

parent 32555eb8
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -304,7 +304,9 @@ static void E_ACELP_1pulse_searchx(
    Word32 s;
    Word16 ntracks, t;
    Word16 sqk[2], alpk[2], ik;

#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif
    /* save these to limit memory searches */
    /*alp0 = *alp + R[0];                              INDIRECT(1);*/
    ps0 = *ps;
@@ -319,7 +321,11 @@ static void E_ACELP_1pulse_searchx(
    sqk[0] = -1;
    ik = 0;
    move16();
#ifdef BASOP_NOGLOB
    if (mac_ro(alp0, cor[tracks[0]], sign[tracks[0]], &Overflow) < 0)
#else
    if (mac_r(alp0, cor[tracks[0]], sign[tracks[0]]) < 0)
#endif
    {
        sqk[0] = 1;
        move16();
@@ -342,7 +348,11 @@ static void E_ACELP_1pulse_searchx(
            ps1 = add(ps0, dn[x]);
            /* alp1 = alp0 + 2*sign[x]*cor[x];                MAC(1); MULT(1);*/
            assert(sign[x] == sign_val_1<<1 || sign[x] == -(sign_val_1<<1));
#ifdef BASOP_NOGLOB
            alp1 = mac_ro(alp0, cor[x], sign[x], &Overflow);  /* Qalp = (Q_R=Q_cor)*Q_signval */
#else
            alp1 = mac_r(alp0, cor[x], sign[x]);  /* Qalp = (Q_R=Q_cor)*Q_signval */
#endif
            alpk[1-ik] = alp1;
            move16();

@@ -353,8 +363,11 @@ static void E_ACELP_1pulse_searchx(
            move16();

            /*s = (alpk[ik] * sq) - (sqk[ik] * alp1);                MULT(1);MAC(1);*/
#ifdef BASOP_NOGLOB
            s = L_msu_o(L_mult_o(alpk[ik], sq, &Overflow), sqk[ik], alp1, &Overflow);
#else
            s = L_msu(L_mult(alpk[ik], sq), sqk[ik], alp1);

#endif
            if (s > 0)
            {
                ik = sub(1, ik);
+4 −1
Original line number Diff line number Diff line
@@ -402,8 +402,11 @@ void swb_bwe_enc_fx(
            L_tmp = L_shl(L_tmp, exp1);
            exp = 31-exp1-(30-exp);
            L_tmp = Isqrt_lc(L_tmp, &exp);  /*31-exp */
#ifdef BASOP_NOGLOB
            fb_ener_adjust_fx = round_fx_o(L_shl_o(L_tmp, exp, &Overflow), &Overflow); /*Q15 */
#else
            fb_ener_adjust_fx = round_fx(L_shl(L_tmp, exp)); /*Q15 */

#endif
        }
        ELSE
        {
+7 −1
Original line number Diff line number Diff line
@@ -3658,7 +3658,9 @@ void fb_tbe_enc_fx(
    Word16 tmp,tmp1,tmp2,exp,exp2,exp_norm;
    Word16 s_max_value,exp_temp,i;
    TD_BWE_ENC_HANDLE hBWE_TD = st->hBWE_TD;

#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif
    s_max_value = 0;
    FOR( i = 0; i < L_FRAME48k; i++ )
    {
@@ -3689,7 +3691,11 @@ void fb_tbe_enc_fx(
    Copy( tmp_vec, input_fhb + Sample_Delay_HP, L_FRAME48k-Sample_Delay_HP );
    Copy( tmp_vec + L_FRAME48k - Sample_Delay_HP, hBWE_TD->old_input_fhb_fx, Sample_Delay_HP );
    temp2 = sum2_fx_mod( input_fhb, L_FRAME48k/2 );/* Q11 */
#ifdef BASOP_NOGLOB
    temp2 = L_add_o(temp2,L_shl_o(hBWE_TD->prev_fb_energy_fx,sub(sub(add(exp_temp,exp_temp),6),hBWE_TD->prev_fb_energy_fx_Q), &Overflow), &Overflow);/* Q11 */
#else
    temp2 = L_add(temp2,L_shl(hBWE_TD->prev_fb_energy_fx,sub(sub(add(exp_temp,exp_temp),6),hBWE_TD->prev_fb_energy_fx_Q)));/* Q11 */
#endif
    hBWE_TD->prev_fb_energy_fx = sum2_fx_mod( input_fhb + L_FRAME48k/2, L_FRAME48k/2 );/*Q11*/
    hBWE_TD->prev_fb_energy_fx_Q = sub(add(exp_temp,exp_temp),6);
    fb_exc_energy = sum2_fx_mod( fb_exc, L_FRAME16k );/* Q(2*Q_fb_exc+1 -7) */