Commit 01461af2 authored by multrus's avatar multrus
Browse files

[cleanup] accept HARMONIZE_TBE3

parent 15e3c6d5
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -84,7 +84,6 @@
#define TMP_1342_WORKAROUND_DEC_FLUSH_BROKEN_IN_SR      /* FhG: Temporary workaround for incorrect implementation of decoder flush with split rendering */
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */
#define HARM_HQ_CORE_KEEP_BE                            /* hack to keep all BE after HQ core functions harmonization; pending resolving issues #2450, #2451, #2452 */
#define HARMONIZE_TBE3                                  /* VA: basop issue 2399: Remove duplicated code: TBE, step 3 */
#define FIX_2459_USAN_AMR_SIDSTART                      /* FhG: basop issue 2459: fix msan complaint */
#define FIX_2458_USAN_NULLPTR_WITH_ZERO_OFFSET          /* FhG: basop issue 2458: avoid indexing into null pointer */
#define HARM_2456_APPLY_SCALE                           /* FhG basop issue 2456: Harmonize apply_scale_ind(), apply_scale_ivas_fx() */
+0 −56
Original line number Diff line number Diff line
@@ -2589,31 +2589,15 @@ void flip_and_downmix_generic_fx(
);

void Calc_rc0_h(
#ifdef HARMONIZE_TBE3
    const Word16 element_mode, /* i  : element mode                        */
    const Word16 enc_dec,      /* i  : encoder/decoder flag                */
#endif
    Word16 *h,  /* i  : impulse response of composed filter */
    Word16 *rc0 /* o  : 1st parcor                          */
);

void PostShortTerm_fx(
#ifdef HARMONIZE_TBE3
    const Word16 element_mode, /* i  : element mode */
    const Word16 enc_dec,      /* i  : encoder/decoder flag */
#endif
    Word16 *sig_in,             /* i  : i   signal (pointer to current subframe */
    Word16 *lpccoeff,           /* i  : LPC coefficients for current subframe */
    Word16 *sig_out,            /* o  : postfiltered output */
    Word16 *mem_stp,            /* i/o: postfilter memory*/
    Word16 *ptr_mem_stp,        /* i/o: pointer to postfilter memory*/
    Word16 *ptr_gain_prec,      /* i/o: for gain adjustment*/
    Word16 *mem_zero,           /* i/o: null memory to compute h_st*/
    const Word16 formant_fac_fx /* i  : Strength of post-filter*/
);

#ifndef HARMONIZE_TBE3
void PostShortTerm_ivas_enc_fx(
    Word16 *sig_in,             /* i  : i   signal (pointer to current subframe */
    Word16 *lpccoeff,           /* i  : LPC coefficients for current subframe */
    Word16 *sig_out,            /* o  : postfiltered output */
@@ -2624,17 +2608,6 @@ void PostShortTerm_ivas_enc_fx(
    const Word16 formant_fac_fx /* i  : Strength of post-filter*/
);

void PostShortTerm_ivas_dec_fx(
    Word16 *sig_in,             /* i  : i   signal (pointer to current subframe */
    Word16 *lpccoeff,           /* i  : LPC coefficients for current subframe */
    Word16 *sig_out,            /* o  : postfiltered output */
    Word16 *mem_stp,            /* i/o: postfilter memory*/
    Word16 *ptr_mem_stp,        /* i/o: pointer to postfilter memory*/
    Word16 *ptr_gain_prec,      /* i/o: for gain adjustment*/
    Word16 *mem_zero,           /* i/o: null memory to compute h_st*/
    const Word16 formant_fac_fx /* i  : Strength of post-filter*/
);
#endif
void flip_spectrum_and_decimby4_fx(
    const Word16 i[],      /* i  : i   spectrum                            */
    Word16 output[],       /* o  : output  spectrum                        */
@@ -5386,7 +5359,6 @@ void wb_tbe_dec_fx(
    Word16 *synth,                /* i/o: ACELP core synthesis/final synthesis   */
    Word16 *Q_synth );

#ifdef HARMONIZE_TBE3
void swb_tbe_dec_fx(
    Decoder_State *st,                    /* i/o: decoder state structure                             */
    STEREO_ICBWE_DEC_HANDLE hStereoICBWE, /* i/o: IC-BWE state structure                              */
@@ -5400,20 +5372,6 @@ void swb_tbe_dec_fx(
    Word16 *Q_synth,                      /* o  : Q-factor of synth_fx16[]/synth_fx[]                 */
    Word16 *pitch_buf_fx                  /* i  : Q6                                                  */
);
#else
void swb_tbe_dec_fx(
    Decoder_State *st_fx,     /* i/o: decoder state structure */
    const Word16 coder_type,  /* i  : coding type */
    Word32 *bwe_exc_extended, /* i  : bandwidth extended exciatation  2*Q_exc*/
    Word16 Q_exc,
    const Word16 voice_factors[],    /* i  : voicing factors                 */
    const Word16 old_syn_12k8_16k[], /* i  : low band synthesis*/
    Word16 *White_exc16k,            /* o  : shaped white excitation for the FB TBE */
    Word16 *Q_white_exc,
    Word16 *synth, /* o  : SHB synthesis/final synthesis */
    Word16 *Q_synth,
    Word16 *pitch_buf );
#endif

void fb_tbe_dec_fx(
    Decoder_State *st,         /* i/o: encoder state structure              */
@@ -9706,20 +9664,6 @@ void v_sub32_fx(
    const Word16 N     /* i  : Vector length                                    */
);

#ifndef HARMONIZE_TBE3
void swb_tbe_dec_ivas_fx(
    Decoder_State *st,                    /* i/o: decoder state structure                             */
    STEREO_ICBWE_DEC_HANDLE hStereoICBWE, /* i/o: IC-BWE state structure                              */
    const Word32 *bwe_exc_extended_fx,    /* i  : bandwidth extended excitation : Q_exc               */
    Word16 Q_exc,
    const Word16 voice_factors_fx[],      /* i  : voicing factors  : Q15                              */
    const Word16 old_syn_12k8_16k_fx16[], /* i  : low band synthesis : old_syn_fx                     */
    Word16 *White_exc16k_fx,              /* o  : shaped white excitation for the FB TBE : Q_white_exc*/
    Word32 *synth_fx,                     /* o  : SHB synthesis/final synthesis 32-bit : Qx                 */
    Word16 *pitch_buf_fx,                 /* i  : Q6                                                  */
    Word16 *Q_white_exc                   /* o  : Q-factor of White_exc16k_fx                         */
);
#endif
Word16 swb_bwe_dec_fx32(
    Decoder_State *st_fx,     /* i/o: decoder state structure                             */
    Word32 output_fx[],       /* i  : synthesis @internal Fs                : Q11         */
+0 −251
Original line number Diff line number Diff line
@@ -26,11 +26,7 @@

static void create_random_vector_fx( Word16 output[], const Word16 length, Word16 seed[], Word16 element_mode );
static void flip_spectrum_fx( const Word16 input[], Word16 output[], const Word16 length );
#ifdef HARMONIZE_TBE3
static void Calc_st_filt_tbe_fx( const Word16 element_mode, const Word16 enc_dec, Word16 *apond2, Word16 *apond1, Word16 *parcor0, Word16 *sig_ltp_ptr, Word16 *mem_zero );
#else
static void Calc_st_filt_tbe_fx( Word16 *apond2, Word16 *apond1, Word16 *parcor0, Word16 *sig_ltp_ptr, Word16 *mem_zero );
#endif
static void Hilbert_transform_fx( Word32 tmp_R[], Word32 tmp_I[], Word32 *tmpi_R, Word32 *tmpi_I, const Word16 length, const Word16 HB_stage_id );
static void Hilbert_transform_sp_fx( Word16 tmp_R[], Word16 tmp_I[], Word32 *tmpi_R, Word32 *tmpi_I, const Word16 length, const Word16 HB_stage_id );
static void Estimate_mix_factors_fx( const Word16 *shb_res, const Word16 Q_shb, const Word16 *exc16kWhtnd, const Word16 Q_bwe_exc, const Word16 *White_exc16k_frac, const Word16 Q_frac, const Word32 pow1, const Word16 Q_pow1, const Word32 pow22, const Word16 Q_pow22, Word16 *vf_modified, Word16 *vf_ind );
@@ -636,10 +632,8 @@ void flip_spectrum_fx(
 *---------------------------------------------------------------------------*/

void Calc_rc0_h(
#ifdef HARMONIZE_TBE3
    const Word16 element_mode, /* i  : element mode                         */
    const Word16 enc_dec,      /* i  : encoder/decoder flag                 */
#endif
    Word16 *h,  /* i  : impulse response of composed filter */
    Word16 *rc0 /* o  : 1st parcor                          */
)
@@ -647,14 +641,11 @@ void Calc_rc0_h(
    Word32 L_acc;
    Word16 *ptrs;
    Word16 acf0, acf1;
#ifdef HARMONIZE_TBE3
    Word16 tmp2;
#endif
    Word16 temp, sh_acf;
    Word16 i;

    /* computation of the autocorrelation function acf */
#ifdef HARMONIZE_TBE3
    IF( element_mode != EVS_MONO && enc_dec == ENC )
    {
#ifdef FIX_2462_PARCOR_FIX
@@ -691,7 +682,6 @@ void Calc_rc0_h(
        }
    }
    ELSE
#endif
    {
        L_acc = L_mult( h[0], h[0] );
        FOR( i = 1; i < LONG_H_ST; i++ )
@@ -746,72 +736,10 @@ void Calc_rc0_h(
    return;
}

#ifndef HARMONIZE_TBE3
static void Calc_rc0_h_ivas_enc_fx(
    Word16 *h,  /* i  : impulse response of composed filter */
    Word16 *rc0 /* o  : 1st parcor */
)
{
    Word32 L_acc;
    Word16 *ptrs;
    Word16 acf0, acf1;
    Word16 temp, sh_acf, tmp2;
    Word16 i;

    /* computation of the autocorrelation function acf */
    L_acc = L_mult( h[0], h[0] );
    FOR( i = 1; i < LONG_H_ST; i++ )
    {
        tmp2 = shr( h[i], 2 );
        L_acc = L_mac( L_acc, tmp2, tmp2 );
    }
    sh_acf = norm_l( L_acc );
    L_acc = L_shl( L_acc, sh_acf );
    acf0 = extract_h( L_acc );

    ptrs = h;

    temp = *ptrs++;
    move16();
    L_acc = L_mult( temp, *ptrs );
    FOR( i = 1; i < LONG_H_ST - 1; i++ )
    {
        temp = shr( *ptrs++, 2 );
        move16();
        L_acc = L_mac( L_acc, temp, shr( *ptrs, 2 ) );
    }
    L_acc = L_shl( L_acc, sh_acf );
    acf1 = extract_h( L_acc );

    /* Compute 1st parcor */
    IF( acf0 == 0 )
    {
        *rc0 = 0;
        move16();
        return;
    }

    IF( LT_16( acf0, abs_s( acf1 ) ) )
    {
        *rc0 = 0;
        move16();
        return;
    }
    *rc0 = div_s( abs_s( acf1 ), acf0 );
    move16();
    IF( acf1 > 0 )
    {
        *rc0 = negate( *rc0 );
        move16();
    }
}
#endif

static void Calc_st_filt_tbe_fx(
#ifdef HARMONIZE_TBE3
    const Word16 element_mode, /* i  : element mode                         */
    const Word16 enc_dec,      /* i  : encoder/decoder flag                 */
#endif
    Word16 *apond2,      /* i  : coefficients of numerator             */
    Word16 *apond1,      /* i  : coefficients of denominator           */
    Word16 *parcor0,     /* o  : 1st parcor calcul. on composed filter */
@@ -827,25 +755,19 @@ static void Calc_st_filt_tbe_fx(
    Word16 i;
    temp = sub( 2, norm_s( apond2[0] ) );

#ifdef HARMONIZE_TBE3
    IF( element_mode != EVS_MONO && enc_dec == ENC )
    {
        /* compute i.r. of composed filter apond2 / apond1 */
        syn_filt_fx( temp, apond1, LPC_SHB_ORDER, apond2, h, LONG_H_ST, mem_zero, 0 );
    }
    ELSE
#endif
    {
        /* compute i.r. of composed filter apond2 / apond1 */
        Syn_filt_s( temp, apond1, LPC_SHB_ORDER, apond2, h, LONG_H_ST, mem_zero, 0 );
    }

    /* compute 1st parcor */
#ifdef HARMONIZE_TBE3
    Calc_rc0_h( element_mode, enc_dec, h, parcor0 );
#else
    Calc_rc0_h( h, parcor0 );
#endif


    /* compute g0 */
@@ -870,49 +792,6 @@ static void Calc_st_filt_tbe_fx(
    return;
}

#ifndef HARMONIZE_TBE3
static void Calc_st_filt_tbe_ivas_enc_fx(
    Word16 *apond2,      /* i  : coefficients of numerator             */
    Word16 *apond1,      /* i  : coefficients of denominator           */
    Word16 *parcor0,     /* o  : 1st parcor calcul. on composed filter */
    Word16 *sig_ltp_ptr, /* i/o: i  of 1/A(gamma1) : scaled by 1/g0    */
    Word16 *mem_zero     /* i  : All zero memory                       */
)
{
    Word32 L_g0;

    Word16 h[LONG_H_ST];

    Word16 g0, temp;
    Word16 i;
    temp = sub( 2, norm_s( apond2[0] ) );
    /* compute i.r. of composed filter apond2 / apond1 */
    syn_filt_fx( temp, apond1, LPC_SHB_ORDER, apond2, h, LONG_H_ST, mem_zero, 0 );
    /* compute 1st parcor */
    Calc_rc0_h_ivas_enc_fx( h, parcor0 );

    /* compute g0 */
    L_g0 = L_mult0( 1, abs_s( h[0] ) );
    FOR( i = 1; i < LONG_H_ST; i++ )
    {
        L_g0 = L_mac0( L_g0, 1, abs_s( h[i] ) );
    }
    g0 = extract_h( L_shl( L_g0, 14 ) );

    /* Scale signal i  of 1/A(gamma1) */
    IF( GT_16( g0, 1024 ) )
    {
        temp = div_s( 1024, g0 ); /* temp = 2**15 / gain0 */
        FOR( i = 0; i < L_SUBFR16k; i++ )
        {
            sig_ltp_ptr[i] = mult_r( sig_ltp_ptr[i], temp );
            move16();
        }
    }

    return;
}
#endif

static void filt_mu_fx(
    const Word16 *sig_in, /* i  : signal (beginning at sample -1) */
@@ -1079,10 +958,8 @@ static void scale_st_swb(
 *-------------------------------------------------------------------*/

void PostShortTerm_fx(
#ifdef HARMONIZE_TBE3
    const Word16 element_mode, /* i  : element mode */
    const Word16 enc_dec,      /* i  : encoder/decoder flag */
#endif
    Word16 *sig_in,             /* i  : input signal (pointer to current subframe */
    Word16 *lpccoeff,           /* i  : LPC coefficients for current subframe */
    Word16 *sig_out,            /* o  : postfiltered output */
@@ -1122,21 +999,14 @@ void PostShortTerm_fx(
    move16();

    /* Control short term pst filter gain and compute parcor0   */
#ifdef HARMONIZE_TBE3
    Calc_st_filt_tbe_fx( element_mode, enc_dec, apond2_fx, apond1_fx, &parcor0_fx, sig_ltp_fx + 1, mem_zero ); /* parcor0 in Q15, sig_ltp_fx in Q_bwe_exc */
#else
    Calc_st_filt_tbe_fx( apond2_fx, apond1_fx, &parcor0_fx, sig_ltp_fx + 1, mem_zero );
    /* i: parcor0 in Q15, o: sig_ltp_fx in Q_bwe_exc */
#endif

    /* 1/A(gamma1) filtering, mem_stp is updated */
#ifdef HARMONIZE_TBE3
    IF( element_mode != EVS_MONO && enc_dec == ENC )
    {
        syn_filt_fx( 0, apond1_fx, LPC_SHB_ORDER, sig_ltp_fx + 1, sig_ltp_fx + 1, L_SUBFR16k, mem_stp, 1 );
    }
    ELSE
#endif
    {
        Syn_filt_s( 0, apond1_fx, LPC_SHB_ORDER, sig_ltp_fx + 1, sig_ltp_fx + 1, L_SUBFR16k, mem_stp, 1 );
    }
@@ -1150,127 +1020,6 @@ void PostShortTerm_fx(
    return;
}

#ifndef HARMONIZE_TBE3
void PostShortTerm_ivas_enc_fx(
    Word16 *sig_in,             /* i  : input signal (pointer to current subframe */
    Word16 *lpccoeff,           /* i  : LPC coefficients for current subframe */
    Word16 *sig_out,            /* o  : postfiltered output */
    Word16 *mem_stp,            /* i/o: postfilter memory*/
    Word16 *ptr_mem_stp,        /* i/o: pointer to postfilter memory*/
    Word16 *ptr_gain_prec,      /* i/o: for gain adjustment*/
    Word16 *mem_zero,           /* i/o: null memory to compute h_st*/
    const Word16 formant_fac_fx /* i  : Strength of post-filter*/
)
{
    Word16 apond1_fx[LPC_SHB_ORDER + 1]; /* denominator coeff.*/
    Word16 apond2_fx[LONG_H_ST];         /* numerator coeff.  */
    Word16 sig_ltp_fx[L_SUBFR16k + 1];   /* residual signal   */
    /*Word16 lpccoeff_fx[LPC_SHB_ORDER+1];//Q12 */
    Word16 g1_fx, g2_fx, parcor0_fx; /*Q15 */
    Word16 tmp;

    parcor0_fx = 0;
    move16();
    set16_fx( apond1_fx, 0, LPC_SHB_ORDER + 1 );
    set16_fx( apond2_fx, 0, LONG_H_ST );
    set16_fx( sig_ltp_fx, 0, L_SUBFR16k + 1 );

    /* Obtain post-filter weights  */
    tmp = extract_h( L_mult( GAMMA_SHARP_FX, formant_fac_fx ) ); /*Q15 */
    g1_fx = add( GAMMA0_FX, tmp );                               /*Q15  */
    g2_fx = sub( GAMMA0_FX, tmp );                               /*Q15 */

    /* Compute weighted LPC coefficients */
    weight_a_fx( lpccoeff, apond1_fx, g1_fx, LPC_SHB_ORDER );
    weight_a_fx( lpccoeff, apond2_fx, g2_fx, LPC_SHB_ORDER );
    /* o: apond1_fx, apond2_fx in Q12 */

    /* Compute A(gamma2) residual */
    Residu3_10_fx( apond2_fx, sig_in, sig_ltp_fx + 1, L_SUBFR16k, 0 );
    /* o: sig_ltp_fx in Q_bwe_exc */

    /* Save last output of 1/A(gamma1)  */
    sig_ltp_fx[0] = *ptr_mem_stp;
    move16();

    /* Control short term pst filter gain and compute parcor0   */
    Calc_st_filt_tbe_ivas_enc_fx( apond2_fx, apond1_fx, &parcor0_fx, sig_ltp_fx + 1, mem_zero );
    /* o: parcor0 in Q15 */
    /* i/o: sig_ltp_fx in Q_bwe_exc */

    /* 1/A(gamma1) filtering, mem_stp is updated */
    syn_filt_fx( 0, apond1_fx, LPC_SHB_ORDER, sig_ltp_fx + 1, sig_ltp_fx + 1, L_SUBFR16k, mem_stp, 1 );

    /* (1 + mu z-1) tilt filtering */
    filt_mu_fx( sig_ltp_fx, sig_out, parcor0_fx, L_SUBFR16k );
    /* o: sig_out in Q_bwe_exc */

    /* gain control */
    scale_st_swb( sig_in, sig_out, ptr_gain_prec, L_SUBFR16k );

    return;
}

void PostShortTerm_ivas_dec_fx(
    Word16 *sig_in,             /* i  : input signal (pointer to current subframe */
    Word16 *lpccoeff,           /* i  : LPC coefficients for current subframe */
    Word16 *sig_out,            /* o  : postfiltered output */
    Word16 *mem_stp,            /* i/o: postfilter memory*/
    Word16 *ptr_mem_stp,        /* i/o: pointer to postfilter memory*/
    Word16 *ptr_gain_prec,      /* i/o: for gain adjustment*/
    Word16 *mem_zero,           /* i/o: null memory to compute h_st*/
    const Word16 formant_fac_fx /* i  : Strength of post-filter*/
)
{
    Word16 apond1_fx[LPC_SHB_ORDER + 1]; /* denominator coeff.*/
    Word16 apond2_fx[LONG_H_ST];         /* numerator coeff.  */
    Word16 sig_ltp_fx[L_SUBFR16k + 1];   /* residual signal   */
    /*Word16 lpccoeff_fx[LPC_SHB_ORDER+1];//Q12 */
    Word16 g1_fx, g2_fx, parcor0_fx; /*Q15 */
    Word16 tmp;

    parcor0_fx = 0;
    move16();
    set16_fx( apond1_fx, 0, LPC_SHB_ORDER + 1 );
    set16_fx( apond2_fx, 0, LONG_H_ST );
    set16_fx( sig_ltp_fx, 0, L_SUBFR16k + 1 );

    /* Obtain post-filter weights  */
    tmp = extract_h( L_mult( GAMMA_SHARP_FX, formant_fac_fx ) ); /*Q15 */
    g1_fx = add( GAMMA0_FX, tmp );                               /*Q15  */
    g2_fx = sub( GAMMA0_FX, tmp );                               /*Q15 */

    /* Compute weighted LPC coefficients */
    weight_a_fx( lpccoeff, apond1_fx, g1_fx, LPC_SHB_ORDER );
    weight_a_fx( lpccoeff, apond2_fx, g2_fx, LPC_SHB_ORDER );
    /* o: apond1_fx, apond2_fx in Q12 */

    /* Compute A(gamma2) residual */
    Residu3_10_fx( apond2_fx, sig_in, sig_ltp_fx + 1, L_SUBFR16k, 0 );
    /* o: sig_ltp_fx in Q_bwe_exc */

    /* Save last output of 1/A(gamma1)  */
    sig_ltp_fx[0] = *ptr_mem_stp;
    move16();

    /* Control short term pst filter gain and compute parcor0   */
    Calc_st_filt_tbe_fx( apond2_fx, apond1_fx, &parcor0_fx, sig_ltp_fx + 1, mem_zero );
    /* o: parcor0 in Q15 */
    /* i/o: sig_ltp_fx in Q_bwe_exc */

    /* 1/A(gamma1) filtering, mem_stp is updated */
    Syn_filt_s( 0, apond1_fx, LPC_SHB_ORDER, sig_ltp_fx + 1, sig_ltp_fx + 1, L_SUBFR16k, mem_stp, 1 );

    /* (1 + mu z-1) tilt filtering */
    filt_mu_fx( sig_ltp_fx, sig_out, parcor0_fx, L_SUBFR16k );
    /* o: sig_out in Q_bwe_exc */

    /* gain control */
    scale_st_swb( sig_in, sig_out, ptr_gain_prec, L_SUBFR16k );

    return;
}
#endif

/*-------------------------------------------------------------------*
 * flip_spectrum_and_decimby4()
+0 −4
Original line number Diff line number Diff line
@@ -1309,11 +1309,7 @@ static void calc_st_filt_local_fx(
    E_UTIL_synthesis( temp, apond1, apond2, h, LONG_H_ST, mem_zero, 0, M );

    /* compute 1st parcor */
#ifdef HARMONIZE_TBE3
    Calc_rc0_h( EVS_MONO, DEC, h, parcor0 );
#else
    Calc_rc0_h( h, parcor0 );
#endif

    /* compute g0 */
    L_g0 = L_mult0( 1, abs_s( h[0] ) ); // Q12
+0 −10
Original line number Diff line number Diff line
@@ -407,12 +407,7 @@ ivas_error evs_dec_fx(
        IF( EQ_16( st_fx->extl, SWB_TBE ) || EQ_16( st_fx->extl, FB_TBE ) || ( NE_16( st_fx->coder_type, AUDIO ) && NE_16( st_fx->coder_type, INACTIVE ) && GT_32( st_fx->core_brate, SID_2k40 ) && EQ_16( st_fx->core, ACELP_CORE ) && GE_32( st_fx->output_Fs, 32000 ) && GT_16( st_fx->bwidth, NB ) && st_fx->bws_cnt > 0 && !st_fx->ppp_mode_dec && !( EQ_16( st_fx->nelp_mode_dec, 1 ) && EQ_16( st_fx->bfi, 1 ) ) ) )
        {
            /* SWB TBE decoder */
#ifdef HARMONIZE_TBE3
            swb_tbe_dec_fx( st_fx, NULL, bwe_exc_extended_fx, voice_factors_fx, old_syn_12k8_16k_fx, fb_exc_fx, &Q_fb_exc, hb_synth_fx, NULL, &hb_synth_fx_exp, pitch_buf_fx );
#else
            swb_tbe_dec_fx( st_fx, st_fx->coder_type, bwe_exc_extended_fx, st_fx->Q_exc, voice_factors_fx,
                            old_syn_12k8_16k_fx, fb_exc_fx, &Q_fb_exc, hb_synth_fx, &hb_synth_fx_exp, pitch_buf_fx );
#endif

            /* FB TBE decoder */
            test();
@@ -848,12 +843,7 @@ ivas_error evs_dec_fx(
                    ELSE IF( EQ_16( st_fx->extl, SWB_TBE ) || EQ_16( st_fx->extl, FB_TBE ) )
                    {
                        /* SWB TBE decoder */
#ifdef HARMONIZE_TBE3
                        swb_tbe_dec_fx( st_fx, NULL, bwe_exc_extended_fx, voice_factors_fx, hBWE_TD->old_core_synth_fx, fb_exc_fx, &Q_fb_exc, hb_synth_fx, NULL, &hb_synth_fx_exp, pitch_buf_fx );
#else
                        swb_tbe_dec_fx( st_fx, st_fx->coder_type, bwe_exc_extended_fx, st_fx->Q_exc, voice_factors_fx, hBWE_TD->old_core_synth_fx,
                                        fb_exc_fx, &Q_fb_exc, hb_synth_fx, &hb_synth_fx_exp, pitch_buf_fx );
#endif

                        test();
                        IF( EQ_16( st_fx->extl, FB_TBE ) && EQ_16( output_frame, L_FRAME48k ) )
Loading