Commit 1700f640 authored by vaillancour's avatar vaillancour
Browse files

Fix for FB content

parent 09765f18
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -944,7 +944,11 @@ void SpectrumSmoothing_fx(
        IF(GT_32(L_max_val[i], 0x1L))
        {
            exp_normd = norm_l(L_max_val[i]);
#ifdef BASOP_NOGLOB
            max_val_norm_fx = div_s(0x2800, round_fx_o(L_shl_o(L_max_val[i], exp_normd, &Overflow), &Overflow)); /* Q10-(Qs+exp_normd-16) */
#else
            max_val_norm_fx = div_s(0x2800, round_fx(L_shl(L_max_val[i], exp_normd))); /* Q10-(Qs+exp_normd-16) */
#endif
            Qmax_val_norm[i] =  sub(10-12+16+15, exp_normd);
            move16(); /* 10 - (12+exp_normd-16) +15 */;
        }
@@ -3169,7 +3173,11 @@ void noiseinj_hf_fx(
            move32();
            /**p_L_En = (float)sqrt(*p_En);*/
            sqrt_32n_16_fx(*p_L_En, QbeL, p_sqrt_En_fx, &Qtemp);
#ifdef BASOP_NOGLOB
            *p_sqrt_En_fx = shl_o(*p_sqrt_En_fx, sub(QsEn, Qtemp), &Overflow); /* -> Q2 */ move16();
#else
            *p_sqrt_En_fx = shl(*p_sqrt_En_fx, sub(QsEn, Qtemp)); /* -> Q2 */ move16();
#endif
        }
        p_L_En++;
        p_sqrt_En_fx++;
+4 −0
Original line number Diff line number Diff line
@@ -1510,7 +1510,11 @@ void GenShapedSHBExcitation_fx(
        move16();

        /* pow1 += exc16kWhtnd[k] * exc16kWhtnd[k]; */
#ifdef BASOP_NOGLOB
        pow1 = L_mac0_o( pow1, exc16kWhtnd[k], exc16kWhtnd[k], &Overflow );  /* 2*Q_bwe_exc */
#else
        pow1 = L_mac0( pow1, exc16kWhtnd[k], exc16kWhtnd[k] );  /* 2*Q_bwe_exc */
#endif
    }
    Q_pow1 = shl(*Q_bwe_exc,1);

+2 −1
Original line number Diff line number Diff line
@@ -66,10 +66,11 @@ Word16 usquant_fx( /* o: index of the winning codeword */
    /*    idx = (short)( (x - qlow)/delta + 0.5f); */
    exp = norm_s(delta);
    tmp = div_s(shl(1,sub(14,exp)),delta); /*Q(29-exp-(Qx-1))->Q(30-exp-Qx) */
    L_tmp = L_mult(sub(x,qlow),tmp); /*Q(31-exp) */
#ifdef BASOP_NOGLOB
    L_tmp = L_mult(sub_o(x, qlow, &Overflow), tmp); /*Q(31-exp) */
    idx = extract_l(L_shr_r(L_add(L_tmp,shl_o(1,sub(30,exp), &Overflow)),sub(31,exp))); /*Q0 */
#else /* BASOP_NOGLOB */
    L_tmp = L_mult(sub(x, qlow), tmp); /*Q(31-exp) */
    idx = extract_l(L_shr_r(L_add(L_tmp,shl(1,sub(30,exp))),sub(31,exp))); /*Q0 */
#endif /* BASOP_NOGLOB */

+7 −2
Original line number Diff line number Diff line
@@ -412,7 +412,9 @@ static void bwe_switch_enc_fx(
    Word16 synth_subfr_bwe_fx[SWITCH_MAX_GAP];              /* synthesized bwe for core switching */
    Word16 n, L;
    BSTR_ENC_HANDLE hBstr;

#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif /* BASOP_NOGLOB */
    hBstr = st_fx->hBstr;
    L = NS2SA_fx2(st_fx->input_Fs_fx,FRAME_SIZE_NS);

@@ -525,8 +527,11 @@ static void bwe_switch_enc_fx(
    L_tmp1 = L_mult(tmp, E2_fx); /*30-q_tmp1+q_tmp2 */
    q_tmp2 = sub(q_tmp1, q_tmp2); /*30-q_tmp2 */
    L_tmp1 = L_shl(L_tmp1, sub(q_tmp2, 24));
#ifdef BASOP_NOGLOB
    gain_fx = round_fx_o(Isqrt(L_tmp1), &Overflow);  /*Q12  */
#else
    gain_fx = round_fx(Isqrt(L_tmp1));  /*Q12  */

#endif
    ind1_fx = usquant_fx( gain_fx, &gain_fx, shr(MINVALUEOFFIRSTGAIN_FX,1), shr(DELTAOFFIRSTGAIN_FX,4), (1 << NOOFGAINBITS1) );
    push_indice_fx(hBstr,IND_CORE_SWITCHING_AUDIO_GAIN,  ind1_fx, NOOFGAINBITS1 );