Commit b6109e60 authored by Arash Azizi's avatar Arash Azizi
Browse files

issue: 2446 refining conditional statements that were mistakenly harmonized -...

issue: 2446 refining conditional statements that were mistakenly harmonized - reverting one condition at the end of the function
parent 4d30cc89
Loading
Loading
Loading
Loading
Loading
+55 −30
Original line number Diff line number Diff line
@@ -1845,25 +1845,28 @@ void con_tcx_ivas_fx(

    syn = buf + M;             /*Q_syn*/
    Copy( synth - M, buf, M ); /*Q_syn*/

#ifdef HARMONIZE_2446_CON_TCX_FX
    IF( !leg_flag ) // to keep evs bit-exactness
    {
#endif // HARMONIZE_2446_CON_TCX_FX
#ifndef HARMONIZE_2446_CON_TCX_FX
    scf = norm_s(tmp_deemph);
    new_Q = sub(Q_exc, 4); // deemph_fx filter gain can be up to 10 (~2^3.32), so 4 bits of headroom are needed to avoid overflow
    new_Q = s_max(new_Q, -1);
    new_Q = s_min(new_Q, scf);
#else
    IF(!leg_flag || NE_32(st->element_mode, EVS_MONO)) {
        scf = norm_s(tmp_deemph);
        new_Q = sub(Q_exc, 4); // deemph_fx filter gain can be up to 10 (~2^3.32), so 4 bits of headroom are needed to avoid overflow
        new_Q = s_max(new_Q, -1);
        new_Q = s_min(new_Q, scf);
#ifdef HARMONIZE_2446_CON_TCX_FX
    }
    ELSE
    {
    ELSE{
        new_Q = sub(Q_exc, 3);
        new_Q = s_max(new_Q, -1);

        scf = 0;
        move16();
    }
#endif // HARMONIZE_2446_CON_TCX_FX
#endif // !HARMONIZE_2446_CON_TCX_FX

    
    tmp16 = s_min( new_Q, st->prev_Q_syn );
    st->prev_Q_syn = new_Q;
    move16();
@@ -1873,27 +1876,49 @@ void con_tcx_ivas_fx(
    move16();

    Copy_Scale_sig( buf, mem_syn, M, exp_scale ); /* Q: tmp16 */
#ifdef HARMONIZE_2446_CON_TCX_FX
    IF( !leg_flag ) // to keep evs bit-exactness
#ifndef HARMONIZE_2446_CON_TCX_FX

    if ( GT_16( sub( Q_syn, st->Q_syn_factor ), scf ) )
    {
#endif // !HARMONIZE_2446_CON_TCX_FX
        Q_syn = add( scf, st->Q_syn_factor ); // so that (Q_syn - st->Q_syn_factor) = scf;
    }
    tmp_deemph = shl_sat( tmp_deemph, sub( Q_syn, st->Q_syn_factor ) );

    st->Q_syn = Q_syn;
    move16();

#else
    IF(!leg_flag) {

        if (GT_16(sub(Q_syn, st->Q_syn_factor), scf))
        {
            Q_syn = add(scf, st->Q_syn_factor); // so that (Q_syn - st->Q_syn_factor) = scf;
        }
        tmp_deemph = shl_sat(tmp_deemph, sub(Q_syn, st->Q_syn_factor));
#ifdef HARMONIZE_2446_CON_TCX_FX

        st->Q_syn = Q_syn;
        move16();

    }
    ELSE {
        IF(NE_32(st->element_mode, EVS_MONO))     // to keep evs bit-exactness
        {
            if (GT_16(sub(Q_syn, st->Q_syn_factor), scf))
            {
                Q_syn = add(scf, st->Q_syn_factor); // so that (Q_syn - st->Q_syn_factor) = scf;
            }
        tmp_deemph = shl(tmp_deemph, sub(Q_syn, st->Q_syn_factor));
        }
        ELSE
        {
            tmp_deemph = shl_sat(tmp_deemph, Q_syn); /*Q_syn*/
        }
    st->Q_syn_factor = 0;
    move16();
    }
#endif // !HARMONIZE_2446_CON_TCX_FX
    st->Q_syn = Q_syn;
    move16();

    }
#endif // !HARMONIZE_2446_CON_TCX_FX
    /*buf[OLD_EXC_SIZE_DEC;3/2 L_frame] Q1: exc*/
    /*buf[0;M] Q0: mem_syn*/
#ifndef HARMONIZE_2446_CON_TCX_FX
@@ -2139,7 +2164,7 @@ void con_tcx_ivas_fx(
#ifndef HARMONIZE_2446_CON_TCX_FX
    st->hHQ_core->Q_old_wtda_LB = Q_syn; // st->hHQ_core->Q_old_wtda
#else
    IF( leg_flag )
    IF( !leg_flag )
    {
        st->hHQ_core->Q_old_wtda_LB = Q_syn; // st->hHQ_core->Q_old_wtda
    }