Commit 5c55e152 authored by Arash Azizi's avatar Arash Azizi
Browse files

issue: 2446 Changes in leg_flag mechanism; instaed of computing leg_flag...

issue: 2446 Changes in leg_flag mechanism; instaed of computing leg_flag during function runtime, it is passed down to it. Avoids false positives.
parent af47b595
Loading
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -8900,6 +8900,7 @@ void decoder_tcx_post_ivas_fx(
    Word16 bfi,
    Word16 MCT_flag );

#ifndef HARMONIZE_2446_CON_TCX_FX
void con_tcx_ivas_fx(
    Decoder_State* st,      /* i/o: coder memory state          */
    Word16 synth[],         /* i/o:   synth[]                Q0 */
@@ -8908,6 +8909,17 @@ void con_tcx_ivas_fx(
    const Word16 only_left, /* i  : TD-PLC only in left channel */
    const Word16* A_cng     /* i  : CNG LP filter coefficients  */
);
#else
void con_tcx_ivas_fx(
    Decoder_State* st,      /* i/o: coder memory state          */
    Word16 synth[],         /* i/o:   synth[]                Q0 */
    const Word16 coh,       /* i  : coherence of stereo signal  */
    Word16* noise_seed,     /* i/o: noise seed for stereo       */
    const Word16 only_left, /* i  : TD-PLC only in left channel */
    const Word16* A_cng,     /* i  : CNG LP filter coefficients  */
    const leg_flag
);
#endif // !HARMONIZE_2446_CON_TCX_FX

void ivas_mdct_core_reconstruct_fx(
    CPE_DEC_HANDLE hCPE,                                /* i/o: CPE decoder structure               */
+17 −9
Original line number Diff line number Diff line
@@ -944,7 +944,17 @@ void con_tcx_fx(

    return;
}

#ifdef HARMONIZE_2446_CON_TCX_FX
void con_tcx_ivas_fx(
    Decoder_State* st,      /* i/o: coder memory state             */
    Word16 synth[],         /* i/o:   synth[]                   Q0 */
    const Word16 coh,       /* i  : coherence of stereo signal  Q14*/
    Word16* noise_seed,     /* i/o: noise seed for stereo       Q0 */
    const Word16 only_left, /* i  : TD-PLC only in left channel Q0 */
    const Word16* A_cng,     /* i  : CNG LP filter coefficients  Q14*/
    const Word16 leg_flag
    )
#else
void con_tcx_ivas_fx(
    Decoder_State* st,      /* i/o: coder memory state             */
    Word16 synth[],         /* i/o:   synth[]                   Q0 */
@@ -953,6 +963,8 @@ void con_tcx_ivas_fx(
    const Word16 only_left, /* i  : TD-PLC only in left channel Q0 */
    const Word16* A_cng     /* i  : CNG LP filter coefficients  Q14*/
)
#endif // HARMONIZE_2446_CON_TCX_FX

{
    Word16 i, s, c, L_frame, L_subfr, fLowPassFilter, T0;
    Word16 n, mem_syn_r_size_old, mem_syn_r_size_new;
@@ -984,11 +996,7 @@ void con_tcx_ivas_fx(
    Word16 offset;
    HQ_DEC_HANDLE hHQ_core;
    TCX_LTP_DEC_HANDLE hTcxLtpDec;
    TCX_DEC_HANDLE hTcxDec;
#ifdef HARMONIZE_2446_CON_TCX_FX
    int leg_flag;
    leg_flag = EQ_16( st->element_mode, EVS_MONO ) || EQ_16( st->element_mode, IVAS_SCE ); /* || LT_32( st->element_brate, 48000 );*/
#endif                                                                                     // HARMONIZE_2446_CON_TCX_FX
    TCX_DEC_HANDLE hTcxDec;                                                                              // HARMONIZE_2446_CON_TCX_FX

    hTcxLtpDec = st->hTcxLtpDec;
    hHQ_core = st->hHQ_core;
+18 −5
Original line number Diff line number Diff line
@@ -1297,17 +1297,30 @@ void ivas_mdct_core_reconstruct_fx(
            /* PLC: [TCX: TD PLC] */
            IF( MCT_flag != 0 )
            {   
#ifndef HARMONIZE_2446_CON_TCX_FX
                con_tcx_ivas_fx(st, &synthFB_fx[0], -16384, NULL, 0, NULL); //-1.Q14 = -16384
#else
                con_tcx_ivas_fx(st, &synthFB_fx[0], -16384, NULL, 0, NULL, 0); //-1.Q14 = -16384
#endif // !HARMONIZE_2446_CON_TCX_FX   
            }
            ELSE
            {
                IF( sts[1]->core != ACELP_CORE )
                {   
#ifndef HARMONIZE_2446_CON_TCX_FX
                con_tcx_ivas_fx(st, &synthFB_fx[0], hCPE->hStereoMdct->lastCoh_fx, &sts[0]->seed_acelp, 1, &st->hFdCngDec->hFdCngCom->A_cng[0]);
#else
                con_tcx_ivas_fx(st, &synthFB_fx[0], hCPE->hStereoMdct->lastCoh_fx, &sts[0]->seed_acelp, 1, &st->hFdCngDec->hFdCngCom->A_cng[0], 0);
#endif // !HARMONIZE_2446_CON_TCX_FX
                    
                }
                ELSE
                {
#ifndef HARMONIZE_2446_CON_TCX_FX
                    con_tcx_ivas_fx(st, &synthFB_fx[0], hCPE->hStereoMdct->lastCoh_fx, &sts[0]->seed_acelp, 0, &st->hFdCngDec->hFdCngCom->A_cng[0]);
#else
                    con_tcx_ivas_fx(st, &synthFB_fx[0], hCPE->hStereoMdct->lastCoh_fx, &sts[0]->seed_acelp, 0, &st->hFdCngDec->hFdCngCom->A_cng[0], 0);
#endif // !HARMONIZE_2446_CON_TCX_FX              
                }
            }
            st->hHQ_core->Q_old_wtda = add( st->hHQ_core->Q_old_wtda, q_syn );
+1 −1
Original line number Diff line number Diff line
@@ -492,7 +492,7 @@ void stereo_tcx_core_dec_fx(
#ifndef HARMONIZE_2446_CON_TCX_FX
        con_tcx_fx( st, &synthFB_fx[0] /*, -1.f, NULL, 0, NULL */ );
#else
        con_tcx_ivas_fx( st, &synthFB_fx[0], -16384, NULL, 0, NULL );
        con_tcx_ivas_fx( st, &synthFB_fx[0], -16384, NULL, 0, NULL, 1 );
#endif // !HARMONIZE_2446_CON_TCX_FX
        test();
        IF( ( EQ_16( st->nbLostCmpt, 1 ) ) || hTcxDec->tcxConceal_recalc_exc )