Commit 88366613 authored by sagnowski's avatar sagnowski
Browse files

Fix encoder overflows with args: -dtx 23850 16

parent b298e61d
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -41,6 +41,9 @@ void E_ACELP_h_vec_corr1(Word16 h[], Word16 vec[], UWord8 track,
    Word16 *dn2;
    Word16 *p0, *p1, *p2;
    Word32 L_sum;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif /* BASOP_NOGLOB */

    dn2 = &dn2_pos[shl(track,3)];
    p0 = rrixix[track];
@@ -55,7 +58,11 @@ void E_ACELP_h_vec_corr1(Word16 h[], Word16 vec[], UWord8 track,
        FOR (j = dn; j < L_SUBFR-1; j++)
        L_sum = L_mac(L_sum, *p1++, *p2++);

#ifdef BASOP_NOGLOB
        corr = mac_ro(L_sum, *p1++, *p2++, &Overflow);   /*Q9*/
#else /* BASOP_NOGLOB */
        corr = mac_r(L_sum, *p1++, *p2++);   /*Q9*/
#endif /* BASOP_NOGLOB */

        /*cor[dn >> 2] = sign[dn] * s + p0[dn >> 2];*/
        j = shr(dn,2);
@@ -65,7 +72,11 @@ void E_ACELP_h_vec_corr1(Word16 h[], Word16 vec[], UWord8 track,
        }
        if(sign[dn] < 0)
        {
#ifdef BASOP_NOGLOB
            corr = sub_o(p0[j], corr, &Overflow);
#else /* BASOP_NOGLOB */
            corr = sub(p0[j], corr);
#endif /* BASOP_NOGLOB */
        }

        cor[j] = corr;
@@ -81,6 +92,9 @@ void E_ACELP_h_vec_corr2(Word16 h[], Word16 vec[], UWord8 track,
    Word16 i, j, pos, corr;
    Word16 *p0, *p1, *p2;
    Word32 L_sum;
#ifdef BASOP_NOGLOB
    Flag Overflow = 0;
#endif /* BASOP_NOGLOB */

    p0 = rrixix[track];

@@ -94,7 +108,11 @@ void E_ACELP_h_vec_corr2(Word16 h[], Word16 vec[], UWord8 track,
        FOR (j = pos; j < L_SUBFR-1; j++)
        L_sum = L_mac(L_sum, *p1++, *p2++);

#ifdef BASOP_NOGLOB
        corr = mac_ro(L_sum, *p1++, *p2++, &Overflow);   /*Q9*/
#else /* BASOP_NOGLOB */
        corr = mac_r(L_sum, *p1++, *p2++);   /*Q9*/
#endif /* BASOP_NOGLOB */

        /*cor[i] = s * sign[track] + p0[i];*/