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

Fix mem calculation in con_tcx_fx()

parent 1dc57f01
Loading
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -105,7 +105,11 @@ void con_tcx_fx(
    Word16 pre_emph_buf;
    Word16 hp_filt[L_FIR_FER2];
    Word16 alpha;
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
    Word16 tmp_deemph, gain, gainCNG, gain_inov, scf;
#else
    Word16 tmp_deemph, gain, gainCNG, gain_inov;
#endif
    Word16 *pt_exc, *pt1_exc;
    Word16 Tc, tmpSeed;
    Word16 fUseExtrapolatedPitch;
@@ -191,14 +195,14 @@ void con_tcx_fx(
    {
        /* apply pre-emphasis to the signal */
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
        mem = shl( synth[( -( ( ( shr( L_frame, 2 ) + hTcxDec->pit_max_TCX ) + M + M ) ) - 1 )], st->Q_syn_factor ); /*Q0*/
        mem = shl( synth[( -( ( ( shr( L_frame, 1 ) + hTcxDec->pit_max_TCX ) + M + M ) ) - 1 )], st->Q_syn_factor ); /*Q0*/
#else
        mem = synth[( -( ( ( ( L_frame / 2 ) + hTcxDec->pit_max_TCX ) + M + M ) ) - 1 )]; /*Q0*/
#endif
        move16();
        Q_exc = E_UTIL_f_preemph3( &( synth[-( ( ( L_frame / 2 ) + hTcxDec->pit_max_TCX ) + 2 * M )] ), st->preemph_fac, add( add( shr( L_frame, 1 ), hTcxDec->pit_max_TCX ), shl( M, 1 ) ), &mem, 1 );
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
        scale_sig( &( synth[-( ( shr( L_frame, 2 ) + hTcxDec->pit_max_TCX ) + 2 * M )] ), add( add( shr( L_frame, 1 ), hTcxDec->pit_max_TCX ), shl( M, 1 ) ), negate( st->Q_syn_factor ) ); /*Q0, Setting back to Q0, as the following calculations are implemented assuming synth is in Q0 */
        scale_sig( &( synth[-( ( shr( L_frame, 1 ) + hTcxDec->pit_max_TCX ) + 2 * M )] ), add( add( shr( L_frame, 1 ), hTcxDec->pit_max_TCX ), shl( M, 1 ) ), negate( st->Q_syn_factor ) ); /*Q0, Setting back to Q0, as the following calculations are implemented assuming synth is in Q0 */
#endif
        st->Mode2_lp_gainc = L_deposit_l( 0 );

@@ -781,7 +785,7 @@ 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
    Word16 scf = norm_s( tmp_deemph );
    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 );