Commit c074f054 authored by vaclav's avatar vaclav
Browse files

fixes

parent 83a26e8a
Loading
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -1233,7 +1233,7 @@ static void shb_CNG_decod_ivas_fx(
        gain_fx16 = sub( hTdCngDec->wb_cng_ener_fx, hTdCngDec->last_wb_cng_ener_fx ); /* Q8 */
        if ( GT_16( gain_fx16, 15 ) )
        {
            gain_fx = 15;
            gain_fx16 = 15;
            move16();
        }
        step_fx16 = sub( add( gain_fx16, hTdCngDec->last_shb_cng_ener_fx ), hTdCngDec->shb_cng_ener_fx ); /*Q8 */
@@ -1336,7 +1336,6 @@ static void shb_CNG_decod_ivas_fx(
    /* synthesis filtering */
    Syn_filt_s( 0, shb_lpcCNG_fx, LPC_SHB_ORDER, excTmp_fx, excSHB_fx, L_FRAME16k, hBWE_TD->state_lpc_syn_fx, 1 );


    /* synthesis signal gain shaping */
    L_tmp = 0;
    move32();
@@ -1405,12 +1404,12 @@ static void shb_CNG_decod_ivas_fx(
        tmp_16 = div_s( fra, tmp_16 ); /*Q15*/

        L_tmp = L_deposit_h( tmp_16 ); /*Q31 */
        tmp = sub( add( 5, exp ), add( q, exp1 ) );
        tmp_16 = sub( add( 5, exp ), add( q, exp1 ) );
        L_gain_fx = Isqrt_lc( L_tmp, &tmp_16 ); /*Q31-Qtmp */
    }
    ELSE
#endif
    {
#endif
        ener_fx = hTdCngDec->shb_cng_ener_fx_32;
        move32(); /*Q11 */
        IF( GT_16( st->hTdCngDec->trans_cnt_fx, 0 ) )
@@ -1463,7 +1462,9 @@ static void shb_CNG_decod_ivas_fx(
        L_gain_fx = Isqrt_lc( L_tmp, &tmp_16 ); /*Q31-Qtmp */
        hTdCngDec->shb_cng_gain_fx_32 = ener_fx;
        move32();
#ifdef HARM_NON_LINEARITY
    }
#endif

    FOR( i = 0; i < L_FRAME16k; i++ )
    {
@@ -1496,10 +1497,19 @@ static void shb_CNG_decod_ivas_fx(

#ifdef HARM_NON_LINEARITY
    IF( st->element_mode != EVS_MONO )
#endif
    {
        IF( EQ_32( st->output_Fs, 32000 ) )
        {
            Scale_sig( shb_synth_fx, L_FRAME32k, -3 ); /* Qx - 3 */
        }
        ELSE
        {
            Scale_sig( shb_synth_fx, L_FRAME48k, -3 ); /* Qx - 3 */
        }
    }
#else
    Scale_sig( shb_synth_fx, L_FRAME48k, -3 ); /* Qx - 3 */
#endif

    ResetSHBbuffer_Dec_fx( st->hBWE_TD, st->extl );

+9 −1
Original line number Diff line number Diff line
@@ -1181,7 +1181,11 @@ ivas_error ivas_core_dec_fx(

            q = 2;
            move16();
#ifdef HARM_NON_LINEARITY
            Copy_Scale_sig_32_16( hb_synth_32_fx[n], hb_synth_16_fx[n], output_frame, -( Q11 ) ); // Q0
#else
            Copy_Scale_sig_32_16( hb_synth_32_fx[n], hb_synth_16_fx[n], L_FRAME48k, -( Q11 ) ); // Q0
#endif
            Copy_Scale_sig_32_16( synth_32_fx[n], synth_fxl, output_frame, negate( add( Q11, q ) ) );                                                                                                             // Q0
            Scale_sig( hBWE_TD->state_lpc_syn_fx, LPC_SHB_ORDER, sub( Q8, hBWE_TD->prev_Q_bwe_syn ) );                                                                                                            // Q8
            Copy_Scale_sig_32_16( hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx, ( 2 * ALLPASSSECTIONS_STEEP ), sub( hBWE_TD->prev_Q_bwe_syn2, Q11 ) ); // prev_Q_bew_syn2
@@ -1195,7 +1199,11 @@ ivas_error ivas_core_dec_fx(
            test();
            IF( st->core_brate == FRAME_NO_DATA || EQ_32( st->core_brate, SID_2k40 ) )
            {
#ifdef HARM_NON_LINEARITY
                Copy_Scale_sig_16_32_DEPREC( hb_synth_16_fx[n], hb_synth_32_fx[n], output_frame, ( Q11 ) ); // Q11
#else
                Copy_Scale_sig_16_32_DEPREC( hb_synth_16_fx[n], hb_synth_32_fx[n], L_FRAME48k, ( Q11 ) ); // Q11
#endif
            }

            Scale_sig( hBWE_TD->state_lpc_syn_fx, LPC_SHB_ORDER, negate( sub( Q8, hBWE_TD->prev_Q_bwe_syn ) ) ); // Q0
+15 −2
Original line number Diff line number Diff line
@@ -3302,7 +3302,11 @@ static Word16 shb_DTX_ivas_fx(
            update = 1;
            move16();
        }
#ifdef HARM_NON_LINEARITY
        ELSE IF( st->element_mode != EVS_MONO && hTdCngEnc->shb_cng_ini_cnt > 0 )
#else
        ELSE IF( hTdCngEnc->shb_cng_ini_cnt > 0 )
#endif
        {
            hTdCngEnc->shb_cng_ini_cnt = sub( hTdCngEnc->shb_cng_ini_cnt, 1 );
            update = 1;
@@ -3319,6 +3323,15 @@ static Word16 shb_DTX_ivas_fx(
            update = 1;
            move16();
        }
#ifdef HARM_NON_LINEARITY
        ELSE IF( st->element_mode == EVS_MONO && hTdCngEnc->shb_cng_ini_cnt > 0 )
        {
            hTdCngEnc->shb_cng_ini_cnt = sub( hTdCngEnc->shb_cng_ini_cnt, 1 );
            update = 1;
            move16();
            move16();
        }
#endif
        ELSE IF( GT_16( abs_s( sub( sub( hTdCngEnc->mov_wb_cng_ener_fx, hTdCngEnc->mov_shb_cng_ener_fx ), sub( hTdCngEnc->last_wb_cng_ener_fx, hTdCngEnc->last_shb_cng_ener_fx ) ) ), 768 ) )
        {
            update = 1;