Commit ee9cb35f authored by vaillancour's avatar vaillancour
Browse files

Fixes for stv48n1_dtx_sw_164_1280_48kHz.f06.COD

parent b58170ea
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3278,7 +3278,11 @@ void elliptic_bpf_48k_generic_fx(
    FOR( i=0; i<4; i++ )
    {
        memory_fx0[0][i] = extract_l(memory_fx2[0][i]);
#ifdef BASOP_NOGLOB
        memory_fx[0][i] =shl_sat(memory_fx0[0][i],sub(*Q_input_fx,memory_fx_Q[0]));
#else
        memory_fx[0][i] =shl(memory_fx0[0][i],sub(*Q_input_fx,memory_fx_Q[0]));
#endif
        memory2_fx[1][i] =L_shl(memory_fx2[1][i],sub(add(*Q_input_fx,11),memory_fx_Q[1]));
        memory2_fx[2][i] =L_shl(memory_fx2[2][i],sub(add(*Q_input_fx,6),memory_fx_Q[2]));
        memory2_fx[3][i] =L_shl(memory_fx2[3][i],sub(add(*Q_input_fx,1),memory_fx_Q[3]));
+8 −0
Original line number Diff line number Diff line
@@ -461,7 +461,11 @@ void decoder_tcx(
        gain_tcx_e = add(extract_l(L_shr(tmp32, 25)), 1); /* get exponent */
        gain_tcx = round_fx(BASOP_Util_InvLog2(L_or(tmp32, 0xFE000000)));

#ifdef BASOP_NOGLOB
        tmp1 = mult_r(shl_sat(L_spec, 5), 26214/*128.f/NORM_MDCT_FACTOR Q15*/);
#else
        tmp1 = mult_r(shl(L_spec, 5), 26214/*128.f/NORM_MDCT_FACTOR Q15*/);
#endif
        s = 15-5-7;
        if(L_spec>=1024)  /*reduce precision for avoiding overflow*/
        {
@@ -1576,7 +1580,11 @@ void decoder_tcx_post(Decoder_State_fx *st_fx,
    move32();
    Copy32(&st_fx->old_pitch_buf_fx[st_fx->nb_subfr+2], &st_fx->old_pitch_buf_fx[2], st_fx->nb_subfr);
    set32_fx(&st_fx->old_pitch_buf_fx[st_fx->nb_subfr+2], st_fx->old_fpitch, st_fx->nb_subfr);
#ifdef BASOP_NOGLOB  /*TBV st_fx->old_fpitch seems to have an odd value for this bitstream stv48n1_dtx_sw_164_1280_48kHz.f06.COD at frame 10 */  
    st_fx->bfi_pitch_fx = shl_sat(round_fx(st_fx->old_fpitch),6);
#else
    st_fx->bfi_pitch_fx = shl(round_fx(st_fx->old_fpitch),6);
#endif
    st_fx->bfi_pitch_frame_fx = st_fx->L_frame_fx;
    move16();

+4 −0
Original line number Diff line number Diff line
@@ -1341,7 +1341,11 @@ PMT("bw_switching_pre_proc_fx missing args")
            {
                output_sp[i] = msu_r(L_mult(output_sp[i], alpha), shr(hTcxDec->FBTCXdelayBuf[i], timeIn_e), add(alpha, -32768));
                move16();
#ifdef BASOP_NOGLOB
                alpha = add_sat(alpha, step);
#else
                alpha = add(alpha, step);
#endif
            }
        }

+4 −0
Original line number Diff line number Diff line
@@ -938,7 +938,11 @@ Word16 swb_bwe_dec_fx(
            {
                tmp = div_s(1, SWB_fenv_fx[7]);
                move16(); /*Q14*/
#ifdef BASOP_NOGLOB
                ener_adjust_quan_fx = s_min(shr(i_mult_sat(SWB_fenv_fx[13], tmp), 2), 32767);
#else
                ener_adjust_quan_fx = s_min(shr(i_mult(SWB_fenv_fx[13], tmp), 2), 32767);
#endif
                move16(); /*Q13*/
            }
            ELSE
+8 −0
Original line number Diff line number Diff line
@@ -463,7 +463,11 @@ Word16 swb_bwe_dec_hr_fx( /* o : Exponent of SHB synthesis */
            temp = div_s(16384, frac);
            L_temp = L_deposit_h(temp);
            L_temp = Isqrt_lc(L_temp, &exp1);
#ifdef BASOP_NOGLOB
            gain_fx = extract_l(L_shl_sat(L_temp, sub(exp1, 2))); /*Q(31-exp + (exp-3)) -> Q13*/
#else
            gain_fx = extract_l(L_shl(L_temp, sub(exp1, 2))); /*Q(31-exp + (exp-3)) -> Q13*/
#endif
        }

        env = 512;
@@ -1144,7 +1148,11 @@ Word16 swb_bwe_dec_hr_fx( /* o : Exponent of SHB synthesis */
            /* tmpF = max_env / min_env; */
            temp = BASOP_Util_Divide1616_Scale( max_env, min_env, &temp2 );
            test();
#ifdef BASOP_NOGLOB
            IF( EQ_16(st_fx->extl_fx,SWB_BWE_HIGHRATE)||LT_16(temp,shl_sat(18022,sub(15-13,temp2))))          /* 2.2 in Q13 == 18022 */
#else
            IF( EQ_16(st_fx->extl_fx,SWB_BWE_HIGHRATE)||LT_16(temp,shl(18022,sub(15-13,temp2))))          /* 2.2 in Q13 == 18022 */
#endif
            {

                /* (en_band_flt[3] - j*(en_band_flt[3]/WIDTH_BAND - en_noncoded_flt/WIDTH_BAND)) */
Loading