Commit 0c197e5e authored by Mohammadreza Naghibzadeh's avatar Mohammadreza Naghibzadeh
Browse files

Exclude EVS_MONO from dynamic scaling of the synthesis buffer to preserve bit-exactness.

parent c509a873
Loading
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -785,10 +785,21 @@ void con_tcx_fx(
    syn = buf + M;             /*Q_syn*/
    Copy( synth - M, buf, M ); /*Q_syn*/
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
    IF( NE_32( st->element_mode, EVS_MONO ) ) // to keep evs bit-exactness
    {
        scf = norm_s( tmp_deemph );
        new_Q = sub( Q_exc, 4 );
        new_Q = s_max( new_Q, -1 );
        new_Q = s_min( new_Q, scf );
    }
    ELSE
    {
        new_Q = sub( Q_exc, 3 );
        new_Q = s_max( new_Q, -1 );

        scf = 0;
        move16();
    }
#else
    new_Q = sub( Q_exc, 3 );
    new_Q = s_max( new_Q, -1 );
@@ -804,7 +815,7 @@ void con_tcx_fx(

    Copy_Scale_sig( buf, mem_syn, M, exp_scale ); /*Q: tmp16*/
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
    if ( GT_16( sub( Q_syn, st->Q_syn_factor ), scf ) )
    if ( NE_32( st->element_mode, EVS_MONO ) && 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;
    }