Commit 7e58d509 authored by vaillancour's avatar vaillancour
Browse files

AMRIO fixes

parent d2ce4bfb
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -130,8 +130,13 @@ void E_UTIL_deemph2(Word16 shift, Word16 *x, const Word16 mu, const Word16 L, Wo
        shift = shr(-32768, shift);
        FOR (i = 0; i < L; i++)
        {
#ifdef BASOP_NOGLOB
            L_tmp = L_msu_o(Mpy_32_16_1(L_tmp, mu), x[i],shift, &Overflow);
            x[i] = round_fx_o(L_tmp, &Overflow);
#else
            L_tmp = L_msu(Mpy_32_16_1(L_tmp, mu), x[i],shift);
            x[i] = round_fx(L_tmp);
#endif
        }

    }
+2 −1
Original line number Diff line number Diff line
@@ -440,11 +440,12 @@ void E_LPC_f_isp_a_conversion(const Word16 *isp, Word16 *a, const Word16 m)
        t0 = Madd_32_16(f1[nc], f1[nc], isp[m - 1]);

        BASOP_SATURATE_WARNING_OFF /*overflow handling in loop expression*/
        t0 = L_shl(t0, q);
#ifdef BASOP_NOGLOB
        t0 = L_shl_o(t0, q, &Overflow);
        t0n = L_sub_o(t0 , 0x7FFFFFFF, &Overflow); /*check for positive overflow*/
        t0p = L_sub_o(t0,  0x80000000, &Overflow); /*check for negative overflow*/
#else /* BASOP_NOGLOB */
        t0 = L_shl(t0, q);
        t0n = L_sub(t0 , 0x7FFFFFFF); /*check for positive overflow*/
        t0p = L_sub(t0,  0x80000000); /*check for negative overflow*/
#endif /* BASOP_NOGLOB */
+26 −2
Original line number Diff line number Diff line
@@ -152,14 +152,27 @@ Word16 bass_pf_enc(
                FOR (i = 0; i < lg; i++)
                {
                    tmp32 = L_msu0(0, gain, syn[i+i_subfr-T]);
#ifdef BASOP_NOGLOB
                    tmp32 = L_msu0_o(tmp32, gain, syn[i + i_subfr + T], &Overflow);
                    tmp16 = mac_ro(tmp32, gain, syn[i+i_subfr], &Overflow); /* Q0 */
#else
                    tmp32 = L_msu0(tmp32, gain, syn[i + i_subfr + T]);
                    tmp16 = mac_r(tmp32, gain, syn[i+i_subfr]); /* Q0 */
#endif

                    lp_error = Mpy_32_16_1(lp_error, 29491/*0.9f Q15*/);
#ifdef BASOP_NOGLOB
                    lp_error = L_mac_o(lp_error, tmp16, 0x1000, &Overflow);  /* Q13 */

                    tmp16 = round_fx_o(L_shl_o(lp_error, s1, &Overflow), &Overflow); /* Q0+s1-3 */
                    ener2 = L_mac0_o(ener2, tmp16, tmp16, &Overflow); /* Q0+(s1-3)*2 */
#else
                    lp_error = L_mac(lp_error, tmp16, 0x1000);  /* Q13 */

                    tmp16 = round_fx(L_shl(lp_error, s1)); /* Q0+s1-3 */
                    ener2 = L_mac0(ener2, tmp16, tmp16); /* Q0+(s1-3)*2 */
#endif

                }
            }

@@ -168,14 +181,25 @@ Word16 bass_pf_enc(
                FOR (i = lg; i < l_subfr; i++)
                {
                    tmp32 = L_mult0(gain, syn[i+i_subfr]);
#ifdef BASOP_NOGLOB
                    tmp32 = L_msu0_o(tmp32, gain, syn[i+i_subfr-T], &Overflow); /* Q0 */
                    tmp16 = round_fx_o(tmp32, &Overflow);
#else
                    tmp32 = L_msu0(tmp32, gain, syn[i+i_subfr-T]); /* Q0 */
                    tmp16 = round_fx(tmp32);

#endif
                    lp_error = Mpy_32_16_1(lp_error, 29491/*0.9f Q15*/);
#ifdef BASOP_NOGLOB
                    lp_error = L_mac_o(lp_error, tmp16, 0x1000, &Overflow);  /* Q13 */

                    tmp16 = round_fx_o(L_shl_o(lp_error, s1, &Overflow), &Overflow); /* Q0+s1-3 */
                    ener2 = L_mac0_o(ener2, tmp16, tmp16, &Overflow); /* Q0+(s1-3)*2 */
#else
                    lp_error = L_mac(lp_error, tmp16, 0x1000);  /* Q13 */

                    tmp16 = round_fx(L_shl(lp_error, s1)); /* Q0+s1-3 */
                    ener2 = L_mac0(ener2, tmp16, tmp16); /* Q0+(s1-3)*2 */
#endif
                }
            }

+5 −2
Original line number Diff line number Diff line
@@ -471,8 +471,11 @@ void updateSpecPowDiffuseIdx(

    /* Suppress saturation warning in threshold comparison. */
    test();
    if(LT_32(st->mean_gc[1], L_add(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/)))||
            GT_16(min_gp, 13435/*0.82 Q14*/))
#ifdef BASOP_NOGLOB
    if(LT_32(st->mean_gc[1], L_add_o(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/), &Overflow))||GT_16(min_gp, 13435/*0.82 Q14*/))
#else
    if(LT_32(st->mean_gc[1], L_add(st->mean_gc[0], Mpy_32_16_r(st->mean_gc[0], 3211/*0.098 Q15*/)))||GT_16(min_gp, 13435/*0.82 Q14*/))
#endif
    {
        move16();
        st->glr_idx [0]= 0;