From 102e729f40531bb29dcec53df2522d912cf41e77 Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Tue, 3 Sep 2024 10:57:54 -0400 Subject: [PATCH 1/4] Propose fix to 871 that solves incorrect frame classification of the secondary channel of the TD stereo --- lib_com/options.h | 2 +- lib_dec/FEC_clas_estim_fx.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 1d158b6cd..6b9976ba5 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -179,7 +179,7 @@ #define FIX_869_WRONG_UVGAIN_STEP /* VA: Fix wrong decoding of uv gain quantizer for td-stereo*/ - +#define FIX_871_REMOVE_UNNECESSARY_CONDITION /* VA: remove a condition that is not needed and prevented correct frame classification of the secondary channel of the TD stereo */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/FEC_clas_estim_fx.c b/lib_dec/FEC_clas_estim_fx.c index 61b21cc11..ce5f9842a 100644 --- a/lib_dec/FEC_clas_estim_fx.c +++ b/lib_dec/FEC_clas_estim_fx.c @@ -471,9 +471,11 @@ void FEC_clas_estim_fx( /*------------------------------------------------------------------------* * frame classification *------------------------------------------------------------------------*/ +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION test(); test(); IF( ( NE_16( coder_type, VOICED ) && LT_32( bitrate, ACELP_11k60 ) ) || Opt_AMR_WB ) +#endif { Word16 result = UNVOICED_CLAS; move16(); -- GitLab From 6d6584827cb85c04d7f093d146befcbfd791d37b Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Tue, 3 Sep 2024 11:15:07 -0400 Subject: [PATCH 2/4] fix linux build by removing unused parameter --- lib_com/prot_fx.h | 2 ++ lib_dec/FEC_clas_estim_fx.c | 2 ++ lib_dec/acelp_core_dec_fx.c | 9 ++++++++- lib_dec/acelp_core_dec_ivas_fx.c | 8 ++++++++ lib_dec/amr_wb_dec_fx.c | 9 ++++++++- lib_dec/dec_LPD_fx.c | 28 ++++++++++++++++++++++++++++ lib_dec/dec_ace_fx.c | 7 +++++++ lib_dec/er_dec_acelp_fx.c | 28 ++++++++++++++++++++++++++++ lib_dec/ivas_tcx_core_dec.c | 8 ++++++++ lib_dec/updt_dec_fx.c | 29 ++++++++++++++++++++++++++++- 10 files changed, 127 insertions(+), 3 deletions(-) diff --git a/lib_com/prot_fx.h b/lib_com/prot_fx.h index 971c05ca2..af24e67cb 100644 --- a/lib_com/prot_fx.h +++ b/lib_com/prot_fx.h @@ -7610,8 +7610,10 @@ void FEC_clas_estim_fx( /* i/o: long-term total energy variation */ /*A*/ Word16 *amr_io_class, /* i/o: classification for AMR-WB IO mode */ /*A*/ +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION const Word32 bitrate, /* i : Decoded bitrate */ /*A*/ +#endif Word16 Q_syn, /* i : Synthesis scaling */ Word16 *class_para, /* o : classification para. fmerit1 */ /*A*/ diff --git a/lib_dec/FEC_clas_estim_fx.c b/lib_dec/FEC_clas_estim_fx.c index ce5f9842a..afb5ffee4 100644 --- a/lib_dec/FEC_clas_estim_fx.c +++ b/lib_dec/FEC_clas_estim_fx.c @@ -72,8 +72,10 @@ void FEC_clas_estim_fx( /* i/o: long-term total energy variation */ /*A*/ Word16 *amr_io_class, /* i/o: classification for AMR-WB IO mode */ /*A*/ +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION const Word32 bitrate, /* i : Decoded bitrate */ /*A*/ +#endif Word16 Q_syn, /* i : Synthesis scaling */ Word16 *class_para, /* o : classification para. fmerit1 */ /*A*/ diff --git a/lib_dec/acelp_core_dec_fx.c b/lib_dec/acelp_core_dec_fx.c index 024e8f1e2..e99d8b028 100644 --- a/lib_dec/acelp_core_dec_fx.c +++ b/lib_dec/acelp_core_dec_fx.c @@ -1126,12 +1126,19 @@ ivas_error acelp_core_dec_fx( * FEC - Estimate the classification information *------------------------------------------------------------*/ +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st_fx, st_fx->Opt_AMR_WB, st_fx->L_frame, &st_fx->clas_dec, st_fx->coder_type, pitch_buf_fx, syn_fx, &st_fx->lp_ener_FER_fx, &st_fx->decision_hyst, NULL, NULL, NULL, NULL, 0, NULL, st_fx->core_brate, st_fx->Q_syn, temp_buf_fx, st_fx->mem_syn_clas_estim_fx, &st_fx->classifier_Q_mem_syn, 0, 0, 0, st_fx->last_core_brate, st_fx->acelp_cfg.FEC_mode ); - +#else + FEC_clas_estim_fx( st_fx, st_fx->Opt_AMR_WB, st_fx->L_frame, &st_fx->clas_dec, st_fx->coder_type, pitch_buf_fx, + syn_fx, &st_fx->lp_ener_FER_fx, &st_fx->decision_hyst, + NULL, NULL, NULL, NULL, 0, NULL, st_fx->Q_syn, temp_buf_fx, + st_fx->mem_syn_clas_estim_fx, &st_fx->classifier_Q_mem_syn, + 0, 0, 0, st_fx->last_core_brate, st_fx->acelp_cfg.FEC_mode ); +#endif /*------------------------------------------------------------* * FEC - Estimate pitch *------------------------------------------------------------*/ diff --git a/lib_dec/acelp_core_dec_ivas_fx.c b/lib_dec/acelp_core_dec_ivas_fx.c index 7ba65505a..df20d0894 100644 --- a/lib_dec/acelp_core_dec_ivas_fx.c +++ b/lib_dec/acelp_core_dec_ivas_fx.c @@ -1227,11 +1227,19 @@ ivas_error acelp_core_dec_ivas_fx( * FEC - Estimate the classification information *------------------------------------------------------------*/ +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st, st->Opt_AMR_WB, st->L_frame, &st->clas_dec, st->coder_type, pitch_buf_fx, psyn_fx, &st->lp_ener_FER_fx, &st->decision_hyst, NULL, NULL, NULL, NULL, 0, NULL, st->core_brate, st->Q_syn, temp_buf_fx, st->mem_syn_clas_estim_fx, &st->classifier_Q_mem_syn, 0, 0, 0, st->last_core_brate, st->acelp_cfg.FEC_mode ); +#else + FEC_clas_estim_fx( st, st->Opt_AMR_WB, st->L_frame, &st->clas_dec, st->coder_type, pitch_buf_fx, + psyn_fx, &st->lp_ener_FER_fx, &st->decision_hyst, + NULL, NULL, NULL, NULL, 0, NULL, st->Q_syn, temp_buf_fx, + st->mem_syn_clas_estim_fx, &st->classifier_Q_mem_syn, + 0, 0, 0, st->last_core_brate, st->acelp_cfg.FEC_mode ); +#endif /*------------------------------------------------------------* * FEC - Estimate pitch *------------------------------------------------------------*/ diff --git a/lib_dec/amr_wb_dec_fx.c b/lib_dec/amr_wb_dec_fx.c index 8894a571d..f2acdde1a 100644 --- a/lib_dec/amr_wb_dec_fx.c +++ b/lib_dec/amr_wb_dec_fx.c @@ -546,12 +546,19 @@ ivas_error amr_wb_dec_fx( * FEC - Estimate the classification information *------------------------------------------------------------*/ +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st_fx, 1, L_FRAME, &st_fx->clas_dec, st_fx->coder_type, pitch_buf_fx, syn_fx, &st_fx->lp_ener_FER_fx, &st_fx->decision_hyst, &st_fx->hAmrwb_IO->UV_cnt_fx, &st_fx->hAmrwb_IO->LT_UV_cnt_fx, &st_fx->hAmrwb_IO->Last_ener_fx, &locattack, st_fx->hAmrwb_IO->lt_diff_etot_fx, &amr_io_class, st_fx->core_brate, st_fx->Q_syn, &class_para_fx, st_fx->mem_syn_clas_estim_fx, &st_fx->classifier_Q_mem_syn, 0, 0, 0, st_fx->last_core_brate, -1 ); - +#else + FEC_clas_estim_fx( st_fx, 1, L_FRAME, &st_fx->clas_dec, st_fx->coder_type, pitch_buf_fx, + syn_fx, &st_fx->lp_ener_FER_fx, + &st_fx->decision_hyst, &st_fx->hAmrwb_IO->UV_cnt_fx, &st_fx->hAmrwb_IO->LT_UV_cnt_fx, &st_fx->hAmrwb_IO->Last_ener_fx, &locattack, st_fx->hAmrwb_IO->lt_diff_etot_fx, + &amr_io_class, st_fx->Q_syn, &class_para_fx, st_fx->mem_syn_clas_estim_fx, &st_fx->classifier_Q_mem_syn, + 0, 0, 0, st_fx->last_core_brate, -1 ); +#endif /* update past excitation signals for LD music post-filter */ Copy( hMusicPF->dct_post_old_exc_fx + L_FRAME, hMusicPF->dct_post_old_exc_fx, DCT_L_POST - L_FRAME - OFFSET2 ); Copy( exc2_fx, hMusicPF->dct_post_old_exc_fx + ( DCT_L_POST - L_FRAME - OFFSET2 ), L_FRAME ); diff --git a/lib_dec/dec_LPD_fx.c b/lib_dec/dec_LPD_fx.c index 8e50850c4..7a8abdd83 100644 --- a/lib_dec/dec_LPD_fx.c +++ b/lib_dec/dec_LPD_fx.c @@ -821,6 +821,7 @@ void decoder_LPD_fx( } +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st, /*Opt_AMR_WB*/ 0, /*A*/ @@ -847,6 +848,33 @@ void decoder_LPD_fx( bfi, /* i : bad frame indicator */ st->last_core_brate, /* i : bitrate of previous frame */ -1 ); +#else + FEC_clas_estim_fx( + st, + /*Opt_AMR_WB*/ 0, /*A*/ + st->L_frame, + &( st->clas_dec ), + core_ext_mode, + pitch_C, + synth, + &st->lp_ener_FER_fx, + /**decision_hyst*/ NULL, /* i/o: hysteresis of the music/speech decision */ + /**UV_cnt*/ NULL, /* i/o: number of consecutive frames classified as */ + /**LT_UV_cnt*/ NULL, /* i/o: long term consecutive frames classified as UV */ + /**Last_ener*/ NULL, /* i/o: last_energy frame */ + /**locattack*/ NULL, /* i/o: detection of attack (mainly to localized speech burst) */ + /**lt_diff_etot*/ NULL, /* i/o: long-term total energy variation */ + /**amr_io_class*/ NULL, /* i/o: classification for AMR-WB IO mode */ + 0, /* i : Synthesis scaling */ + /**class_para*/ NULL, /* o : classification para. fmerit1 */ + st->mem_syn_clas_estim_fx, /* i/o: memory of the synthesis signal for frame class estimation */ + &st->classifier_Q_mem_syn, /* i/o: exponent for memory of synthesis signal for frame class estimation */ + LTP_Gain, /* i : means LTP Gain */ + 1 /*CLASSIFIER_TCX*/, /* i : signal classifier mode */ + bfi, /* i : bad frame indicator */ + st->last_core_brate, /* i : bitrate of previous frame */ + -1 ); +#endif } } diff --git a/lib_dec/dec_ace_fx.c b/lib_dec/dec_ace_fx.c index a42578389..1ba8222ea 100644 --- a/lib_dec/dec_ace_fx.c +++ b/lib_dec/dec_ace_fx.c @@ -627,10 +627,17 @@ void decoder_acelp_fx( move16(); } +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st, /*Opt_AMR_WB*/ 0, st->L_frame, &( st->clas_dec ), st->core_ext_mode, pit16, syn, &st->lp_ener_FER_fx, /**decision_hyst*/ NULL, /**UV_cnt*/ NULL, /**LT_UV_cnt*/ NULL, /**Last_ener*/ NULL, /**locattack*/ NULL, /**lt_diff_etot*/ NULL, /**amr_io_class*/ NULL, /*bitrate*/ 0, st->Q_syn, /**class_para*/ NULL, st->mem_syn_clas_estim_fx, &st->classifier_Q_mem_syn, -32768 /*-1.f Q15*/, 0 /*CLASSIFIER_ACELP*/, 0 /*bfi*/, st->last_core_brate, -1 ); +#else + FEC_clas_estim_fx( st, /*Opt_AMR_WB*/ 0, st->L_frame, &( st->clas_dec ), st->core_ext_mode, pit16, syn, + &st->lp_ener_FER_fx, /**decision_hyst*/ NULL, /**UV_cnt*/ NULL, /**LT_UV_cnt*/ NULL, /**Last_ener*/ NULL, /**locattack*/ NULL, + /**lt_diff_etot*/ NULL, /**amr_io_class*/ NULL, st->Q_syn, /**class_para*/ NULL, st->mem_syn_clas_estim_fx, + &st->classifier_Q_mem_syn, -32768 /*-1.f Q15*/, 0 /*CLASSIFIER_ACELP*/, 0 /*bfi*/, st->last_core_brate, -1 ); +#endif } /* Update Pitch Lag memory */ diff --git a/lib_dec/er_dec_acelp_fx.c b/lib_dec/er_dec_acelp_fx.c index e0174c71e..defb1970a 100644 --- a/lib_dec/er_dec_acelp_fx.c +++ b/lib_dec/er_dec_acelp_fx.c @@ -1015,6 +1015,7 @@ void con_acelp_fx( move16(); } +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st, /*Opt_AMR_WB*/ 0, /*A*/ @@ -1041,6 +1042,33 @@ void con_acelp_fx( 1 /*bfi*/, /* i : bad frame indicator */ st->last_core_brate, /* i : bitrate of previous frame */ -1 ); +#else + FEC_clas_estim_fx( + st, + /*Opt_AMR_WB*/ 0, /*A*/ + st->L_frame, + &( st->clas_dec ), + coder_type, + pit16, + syn, + &st->lp_ener_FER_fx, + /**decision_hyst*/ NULL, /* i/o: hysteresis of the music/speech decision */ + /**UV_cnt*/ NULL, /* i/o: number of consecutives frames classified as UV */ + /**LT_UV_cnt*/ NULL, /* i/o: long term consecutives frames classified as UV */ + /**Last_ener*/ NULL, /* i/o: last_energy frame */ + /**locattack*/ NULL, /* i/o: detection of attack (mainly to localized speech burst) */ + /**lt_diff_etot*/ NULL, /* i/o: long-term total energy variation */ + /**amr_io_class*/ NULL, /* i/o: classification for AMR-WB IO mode */ + Qf_syn, /* i : Synthesis scaling */ + /**class_para*/ NULL, /* o : classification para. fmerit1 */ + st->mem_syn_clas_estim_fx, /* i/o: memory of the synthesis signal for frame class estimation */ + &st->classifier_Q_mem_syn, /*i/o : exponent for memory of synthesis signal for frame class estimation */ + -32768 /*-1.f Q15*/, /* i : LTP Gain */ + 0 /*CLASSIFIER_ACELP*/, /* i : signal classifier mode */ + 1 /*bfi*/, /* i : bad frame indicator */ + st->last_core_brate, /* i : bitrate of previous frame */ + -1 ); +#endif } /* Update Pitch Lag memory */ diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index c5ccdfba2..d0bed2c21 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -770,11 +770,19 @@ void stereo_tcx_core_dec_fx( move16(); IF( st->tcxonly ) { +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st, 0, st->L_frame, &st->clas_dec, GENERIC, pitch_C, synth_fx, &st->lp_ener_FER_fx, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0 /*st->core_brate*/, 0, NULL, st->mem_syn_clas_estim_fx, &st->classifier_Q_mem_syn, hTcxLtpDec->tcxltp ? hTcxDec->tcxltp_last_gain_unmodified : MIN_16, CLASSIFIER_TCX, bfi, st->last_core_brate, -1 ); +#else + FEC_clas_estim_fx( st, 0, st->L_frame, &st->clas_dec, GENERIC, pitch_C, synth_fx, &st->lp_ener_FER_fx, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, st->mem_syn_clas_estim_fx, &st->classifier_Q_mem_syn, hTcxLtpDec->tcxltp ? hTcxDec->tcxltp_last_gain_unmodified : MIN_16, CLASSIFIER_TCX, bfi, st->last_core_brate, -1 ); +#endif } ELSE { +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st, 0, st->L_frame, &st->clas_dec, st->core_ext_mode, pitch_C, synth_fx, &st->lp_ener_FER_fx, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0 /*st->core_brate*/, 0, NULL, st->mem_syn_clas_estim_fx, &st->classifier_Q_mem_syn, hTcxLtpDec->tcxltp ? hTcxDec->tcxltp_last_gain_unmodified : MIN_16, CLASSIFIER_TCX, bfi, st->last_core_brate, -1 ); +#else + FEC_clas_estim_fx( st, 0, st->L_frame, &st->clas_dec, st->core_ext_mode, pitch_C, synth_fx, &st->lp_ener_FER_fx, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, st->mem_syn_clas_estim_fx, &st->classifier_Q_mem_syn, hTcxLtpDec->tcxltp ? hTcxDec->tcxltp_last_gain_unmodified : MIN_16, CLASSIFIER_TCX, bfi, st->last_core_brate, -1 ); +#endif } st->codec_mode = prev_codec_mode; move16(); diff --git a/lib_dec/updt_dec_fx.c b/lib_dec/updt_dec_fx.c index 107aea626..a4ec5e127 100644 --- a/lib_dec/updt_dec_fx.c +++ b/lib_dec/updt_dec_fx.c @@ -1351,6 +1351,7 @@ void update_decoder_LPD_cng( set16_fx( pitch, shl( L_SUBFR, 6 ), NB_SUBFR16k ); +#ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION FEC_clas_estim_fx( st, /*Opt_AMR_WB*/ 0, /*A*/ @@ -1377,7 +1378,33 @@ void update_decoder_LPD_cng( 0 /*bfi*/, /* i : bad frame indicator */ st->last_core_brate, /* i : bitrate of previous frame */ -1 ); - +#else + FEC_clas_estim_fx( + st, + /*Opt_AMR_WB*/ 0, /*A*/ + st->L_frame, + &( st->clas_dec ), + coder_type, + pitch, + synth, + &st->lp_ener_FER_fx, + /**decision_hyst*/ NULL, /* i/o: hysteresis of the music/speech decision */ + /**UV_cnt*/ NULL, /* i/o: number of consecutives frames classified as UV */ + /**LT_UV_cnt*/ NULL, /* i/o: long term consecutives frames classified as UV */ + /**Last_ener*/ NULL, /* i/o: last_energy frame */ + /**locattack*/ NULL, /* i/o: detection of attack (mainly to localized speech burst) */ + /**lt_diff_etot*/ NULL, /* i/o: long-term total energy variation */ + /**amr_io_class*/ NULL, /* i/o: classification for AMR-WB IO mode */ + st->Q_syn, /* i : Synthesis scaling */ + /**class_para*/ NULL, /* o : classification para. fmerit1 */ + st->mem_syn_clas_estim_fx, /* i/o: memory of the synthesis signal for frame class estimation */ + &st->classifier_Q_mem_syn, /*i/o : exponent for memory of synthesis signal for frame class estimation */ + -32768 /*-1.f Q15*/, /* i : LTP Gain */ + 0 /*CLASSIFIER_ACELP*/, /* i : signal classifier mode */ + 0 /*bfi*/, /* i : bad frame indicator */ + st->last_core_brate, /* i : bitrate of previous frame */ + -1 ); +#endif /* Postfiltering */ set16_fx( pf_pitch, L_SUBFR, NB_SUBFR16k ); set16_fx( pf_gain, 0, NB_SUBFR16k ); -- GitLab From 54d92b53567c5635e9807ab1f5555ad27bda52d0 Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Tue, 3 Sep 2024 11:17:26 -0400 Subject: [PATCH 3/4] fix clang --- lib_com/prot_fx.h | 6 +++--- lib_dec/FEC_clas_estim_fx.c | 6 +++--- lib_dec/acelp_core_dec_ivas_fx.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib_com/prot_fx.h b/lib_com/prot_fx.h index af24e67cb..d1c79d2f9 100644 --- a/lib_com/prot_fx.h +++ b/lib_com/prot_fx.h @@ -7609,12 +7609,12 @@ void FEC_clas_estim_fx( Word16 *lt_diff_etot, /* i/o: long-term total energy variation */ /*A*/ Word16 *amr_io_class, - /* i/o: classification for AMR-WB IO mode */ /*A*/ +/* i/o: classification for AMR-WB IO mode */ /*A*/ #ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION const Word32 bitrate, - /* i : Decoded bitrate */ /*A*/ +/* i : Decoded bitrate */ /*A*/ #endif - Word16 Q_syn, /* i : Synthesis scaling */ + Word16 Q_syn, /* i : Synthesis scaling */ Word16 *class_para, /* o : classification para. fmerit1 */ /*A*/ Word16 *mem_syn_clas_estim, /* i/o: memory of the synthesis signal for frame class estimation */ diff --git a/lib_dec/FEC_clas_estim_fx.c b/lib_dec/FEC_clas_estim_fx.c index afb5ffee4..280add5df 100644 --- a/lib_dec/FEC_clas_estim_fx.c +++ b/lib_dec/FEC_clas_estim_fx.c @@ -71,12 +71,12 @@ void FEC_clas_estim_fx( Word16 *lt_diff_etot, /* i/o: long-term total energy variation */ /*A*/ Word16 *amr_io_class, - /* i/o: classification for AMR-WB IO mode */ /*A*/ +/* i/o: classification for AMR-WB IO mode */ /*A*/ #ifndef FIX_871_REMOVE_UNNECESSARY_CONDITION const Word32 bitrate, - /* i : Decoded bitrate */ /*A*/ +/* i : Decoded bitrate */ /*A*/ #endif - Word16 Q_syn, /* i : Synthesis scaling */ + Word16 Q_syn, /* i : Synthesis scaling */ Word16 *class_para, /* o : classification para. fmerit1 */ /*A*/ Word16 *mem_syn_clas_estim, /* i/o: memory of the synthesis signal for frame class estimation */ diff --git a/lib_dec/acelp_core_dec_ivas_fx.c b/lib_dec/acelp_core_dec_ivas_fx.c index df20d0894..1db6d1dd1 100644 --- a/lib_dec/acelp_core_dec_ivas_fx.c +++ b/lib_dec/acelp_core_dec_ivas_fx.c @@ -1239,7 +1239,7 @@ ivas_error acelp_core_dec_ivas_fx( NULL, NULL, NULL, NULL, 0, NULL, st->Q_syn, temp_buf_fx, st->mem_syn_clas_estim_fx, &st->classifier_Q_mem_syn, 0, 0, 0, st->last_core_brate, st->acelp_cfg.FEC_mode ); -#endif +#endif /*------------------------------------------------------------* * FEC - Estimate pitch *------------------------------------------------------------*/ -- GitLab From 5e7e2958124dc5d4283e64ac0fbe136761159edb Mon Sep 17 00:00:00 2001 From: Tommy Vaillancourt Date: Tue, 3 Sep 2024 12:16:02 -0400 Subject: [PATCH 4/4] amend the modification because of regression test --- lib_dec/FEC_clas_estim_fx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib_dec/FEC_clas_estim_fx.c b/lib_dec/FEC_clas_estim_fx.c index 280add5df..974041a9c 100644 --- a/lib_dec/FEC_clas_estim_fx.c +++ b/lib_dec/FEC_clas_estim_fx.c @@ -477,6 +477,8 @@ void FEC_clas_estim_fx( test(); test(); IF( ( NE_16( coder_type, VOICED ) && LT_32( bitrate, ACELP_11k60 ) ) || Opt_AMR_WB ) +#else + IF( NE_16( coder_type, VOICED ) ) #endif { Word16 result = UNVOICED_CLAS; -- GitLab