Commit b0ea84a8 authored by Manuel Jander's avatar Manuel Jander
Browse files

Avoid saturation of hBWE_FD->old_input_wb_fx signal. Add missing assignment...

Avoid saturation of hBWE_FD->old_input_wb_fx signal. Add missing assignment st_fx->Q_old_wtda = Q_wb_sp and clear parts of hBWE_FD->L_old_wtda_swb_fx that are unused to avoid that these sample overflow during rescale elsewhere later.
parent 4c5f36ea
Loading
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -307,6 +307,10 @@ void wb_pre_proc_ivas_fx(
        }
    }

#ifdef NONBE_FIX_ISSUE_2206
    Q_wb_sp = s_min( Q_wb_sp, sub( norm_arr( hBWE_FD->old_input_wb_fx, NS2SA( 16000, DELAY_FD_BWE_ENC_NS ) ), sub( new_inp_resamp16k_q, -1 ) ) );
#endif

    Copy_Scale_sig( new_inp_resamp16k, temp_buf, L_FRAME16k, Q_wb_sp );
    Scale_sig( hBWE_TD->decim_state1_fx, ( 2 * ALLPASSSECTIONS_STEEP + 1 ), Q_wb_sp );
    Scale_sig( hBWE_TD->decim_state2_fx, ( 2 * ALLPASSSECTIONS_STEEP + 1 ), Q_wb_sp );
@@ -542,9 +546,9 @@ void wb_pre_proc_ivas_fx(
        Sample_Delay_WB_BWE = NS2SA( 16000, DELAY_FD_BWE_ENC_12k8_NS );

#ifdef NONBE_FIX_ISSUE_2206
        Copy_Scale_sig( new_inp_resamp16k, &old_input[Sample_Delay_WB_BWE], L_FRAME16k, sub( Q_wb_sp, new_inp_resamp16k_q ) );
        Copy( hBWE_FD->old_input_wb_fx, old_input, Sample_Delay_WB_BWE );
        Copy_Scale_sig( new_inp_resamp16k + L_FRAME16k - Sample_Delay_WB_BWE, hBWE_FD->old_input_wb_fx, Sample_Delay_WB_BWE, sub( -1, new_inp_resamp16k_q ) );
        Copy_Scale_sig_nosat( new_inp_resamp16k, &old_input[Sample_Delay_WB_BWE], L_FRAME16k, sub( Q_wb_sp, new_inp_resamp16k_q ) );
        Copy_Scale_sig_nosat( hBWE_FD->old_input_wb_fx, old_input, Sample_Delay_WB_BWE, sub( Q_wb_sp, -1 ) );
        Copy_Scale_sig_nosat( new_inp_resamp16k + L_FRAME16k - Sample_Delay_WB_BWE, hBWE_FD->old_input_wb_fx, Sample_Delay_WB_BWE, sub( -1, new_inp_resamp16k_q ) );
#else
        Copy( new_inp_resamp16k, &old_input[Sample_Delay_WB_BWE], L_FRAME16k );
        Copy( hBWE_FD->old_input_wb_fx, old_input, Sample_Delay_WB_BWE );
@@ -554,7 +558,10 @@ void wb_pre_proc_ivas_fx(
        IF( NE_16( st_fx->extl, SWB_BWE ) && NE_16( st_fx->extl, FB_BWE ) )
        {
            Copy( old_input, hBWE_FD->L_old_wtda_swb_fx, L_FRAME16k );
#ifndef NONBE_FIX_ISSUE_2206
#ifdef NONBE_FIX_ISSUE_2206
            set16_zero_fx( hBWE_FD->L_old_wtda_swb_fx + L_FRAME16k, L_FRAME48k - L_FRAME16k );
            st_fx->Q_old_wtda = Q_wb_sp;
#else
#ifdef HARMONIZE_TBE2
            if ( st_fx->element_mode != EVS_MONO )
#endif
@@ -985,6 +992,9 @@ void swb_pre_proc_ivas_fx(
            IF( NE_16( st->extl, WB_BWE ) )
            {
                Copy( old_input_fx, hBWE_FD->L_old_wtda_swb_fx, L_FRAME32k );
#ifdef NONBE_FIX_ISSUE_2206
                set16_zero_fx( hBWE_FD->L_old_wtda_swb_fx + L_FRAME32k, L_FRAME48k - L_FRAME32k );
#endif
#ifdef HARMONIZE_TBE2
                if ( st->element_mode > EVS_MONO )
#endif
@@ -1153,6 +1163,9 @@ void swb_pre_proc_ivas_fx(
                    set16_fx( old_input_fx, 0, Sample_Delay_SWB_BWE );
                    Copy( new_swb_speech + inner_frame - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE );
                    Copy( old_input_fx, hBWE_FD->L_old_wtda_swb_fx, inner_frame );
#ifdef NONBE_FIX_ISSUE_2206
                    set16_zero_fx( hBWE_FD->L_old_wtda_swb_fx + inner_frame, sub( L_FRAME48k, inner_frame ) );
#endif
                    st->Q_old_wtda = st->q_inp;
                    move16();
#ifdef HARMONIZE_TBE2