Commit b40190d2 authored by vaillancour's avatar vaillancour
Browse files

565-Fix noise burst during FEC, due to wrong total_brate initialization

parent e8ba3a22
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -165,6 +165,7 @@
#define ISM_FB                                          /* issue 556: change SWB to FB coding in 1ISM at 24.4 kbps */
#define FIX_558_PLC_DISCONT                             /* FhG: issue 558: fix discontinuities in DFT Stereo when switching from TCX concealment to ACELP */

#define FIX_565_SBA_BURST_IN_FEC                        /* VA: Issue 565: Fix noise burst during FEC, due to wrong total_brate initialization */

/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */
+8 −2
Original line number Diff line number Diff line
@@ -331,8 +331,11 @@ void FEC_exc_estim(
    /*-----------------------------------------------------------------*
     * Replicate the last spectrum in case the last good frame was coded by GSC
     *-----------------------------------------------------------------*/

#ifndef FIX_565_SBA_BURST_IN_FEC
    if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= ACELP_24k40 && !st->Opt_AMR_WB )
#else
    if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= MAX_GSC_INACTIVE_BRATE && !st->Opt_AMR_WB )
#endif
    {
        /* Replication of the last spectrum, with a slight downscaling of its dynamic */
        st->GSC_noisy_speech = st->Last_GSC_noisy_speech_flag;
@@ -404,8 +407,11 @@ void FEC_exc_estim(
    /*-----------------------------------------------------------------*
     * Total excitation
     *-----------------------------------------------------------------*/

#ifndef FIX_565_SBA_BURST_IN_FEC
    if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= ACELP_24k40 && !st->Opt_AMR_WB )
#else
    if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= MAX_GSC_INACTIVE_BRATE && !st->Opt_AMR_WB )
#endif
    {
        /* For GSC - the excitation is already computed */
        mvr2r( exc, exc2, st->L_frame );
+11 −1
Original line number Diff line number Diff line
@@ -189,11 +189,21 @@ ivas_error ivas_sce_dec(
    {
        st->total_brate = ivas_total_brate;
    }
#ifndef FIX_565_SBA_BURST_IN_FEC
    else if ( st_ivas->ivas_format != ISM_FORMAT ) /* note: in ISMs, total_brate[] is set in ivas_ism_config() */
    {
        st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC;
    }

#else
    else if ( !st_ivas->bfi && st_ivas->ivas_format != ISM_FORMAT ) /* note: in ISMs, total_brate[] is set in ivas_ism_config() */
    {
        st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC;
    }
    else /*In case of bfi */
    {
        st->total_brate = st->last_total_brate;
    }
#endif
    /*----------------------------------------------------------------*
     * Core codec configuration
     *----------------------------------------------------------------*/