Commit 36baba70 authored by vaillancour's avatar vaillancour
Browse files

Fix more overflows with that command line : -dtx 7200 16 stv16c.INP

parent 7152f85c
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -314,7 +314,11 @@ void CNG_exc_fx(
        {
            /* env[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */
            L_tmp = L_mult0(*ptR,*ptR);/* 2*Q_exc */
#ifdef BASOP_NOGLOB
            L_tmp = L_mac0_o(L_tmp,*ptI,*ptI, &Overflow);/* 2*Q_exc */
#else
            L_tmp = L_mac0(L_tmp,*ptI,*ptI);/* 2*Q_exc */
#endif
            L_tmp = L_shr(L_tmp,1);/* 2*Q_exc+6 */
            tmp = add(Q_exc,Q_exc);
            env[i] = L_shr(L_tmp,tmp);
+8 −0
Original line number Diff line number Diff line
@@ -906,10 +906,18 @@ void dtx_hangover_control_fx(
            move16();/*Q15 */
            FOR ( j=0; j<m; j++ )
            {
#ifdef BASOP_NOGLOB
                lsp_est[i] = add_o(lsp_est[i],tmp[j*M+i], &Overflow); /*Q15 */
#else
                lsp_est[i] = add(lsp_est[i],tmp[j*M+i]); /*Q15 */
#endif
            }

#ifdef BASOP_NOGLOB
            lsp_est[i] = sub_o(lsp_est[i],add_o(tmp[max_idx[0]*M+i],tmp[max_idx[1]*M+i], &Overflow), &Overflow); /*Q15 */
#else
            lsp_est[i] = sub(lsp_est[i],add(tmp[max_idx[0]*M+i],tmp[max_idx[1]*M+i])); /*Q15 */
#endif
            S_tmp = div_s(1,sub(m,2)); /*Q15 */
            lsp_est[i] = mult_r(lsp_est[i],S_tmp); /*Q15 */
        }
+7 −0
Original line number Diff line number Diff line
@@ -296,6 +296,9 @@ void nelp_encoder_fx(
    Word32 Ltemp = 0, Ltemp1 = 0, L_tmp = 0, L_const_1;
    Word16 BP1_ORDER;
    Word16 rf_flag;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif
    SC_VBR_ENC_HANDLE hSC_VBR = st_fx->hSC_VBR;
    BSTR_ENC_HANDLE hBstr = st_fx->hBstr;
    RF_ENC_HANDLE hRF = st_fx->hRF;
@@ -359,7 +362,11 @@ void nelp_encoder_fx(
        E1_fx = L_deposit_l(0);
        FOR (i=0 ; i<L_FRAME; i++)
        {
#ifdef BASOP_NOGLOB
            E1_fx = L_mac0_o(E1_fx, in_fx[i], in_fx[i], &Overflow); /*Q(qE1+qE1) */
#else
            E1_fx = L_mac0(E1_fx, in_fx[i], in_fx[i]); /*Q(qE1+qE1) */
#endif
        }

        qE1 = shl(qE1, 1);;