Commit 0db55faf authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Fix for crash with STV original

parent 78d95bc6
Loading
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -633,8 +633,9 @@ void ivas_analy_sp_fx_front(
                move16();
            }

            Scale_fac[i_subfr] = 0;
            Scale_fac[i_subfr] = -1;
            move16();
            Scale_sig( pt_fft, L_FFT, Scale_fac[i_subfr] );

            /* compute the spectrum */
            fft_rel_fx( pt_fft, L_FFT, LOG2_L_FFT );
@@ -685,7 +686,7 @@ void ivas_analy_sp_fx_front(
        move32();
        /* tmp = (input[i] + input[i+Len]+0.001f)/2.0f */
        // Ltmp = L_max( L_shr( 21474, sub( Q31, add( Q_new, QSCALE ) ) ), L_add( L_shr( Bin_E[i], 1 ), L_shr( Bin_E[i + L_FFT / 2], 1 ) ) );
        Ltmp = L_shr( L_add( Bin_E[i], Bin_E[i + L_FFT / 2] ), 1 ); // average
        Ltmp = L_add( L_shr( Bin_E[i], 1 ), L_shr( Bin_E[i + L_FFT / 2], 1 ) ); // average
        if ( Ltmp == 0 )
        {
            // Ltmp = L_min( L_shr( 21474, sub( Q31, add( Q_new, QSCALE - 2 ) ) ), 1 );
+6 −5
Original line number Diff line number Diff line
@@ -1566,6 +1566,7 @@ ivas_error pre_proc_front_ivas_fx(
    {
        Word16 Q_inp_dmx = Q_factor_arrL( hCPE->hStereoDft->DFT[0], STEREO_DFT_N_MAX_ENC ) - 1;
        floatToFixed_arrL( hCPE->hStereoDft->DFT[0], hCPE->hStereoDft->DFT_fx[0], Q_inp_dmx, STEREO_DFT_N_MAX_ENC );
        hCPE->hStereoDft->DFT_fx_e[0] = 31 - Q_inp_dmx;
    }
    Word16 Q_new;
    Word16 Scale_fac[2];
@@ -1594,15 +1595,15 @@ ivas_error pre_proc_front_ivas_fx(
    }

#ifdef IVAS_FLOAT_FIXED_CONVERSIONS
    fixedToFloat_arrL( fr_bands_fx, fr_bands, Q_new + QSCALE - 1, 40 );
    fixedToFloat_arrL( band_energies_fx, band_energies, Q_new + QSCALE - 1, 40 );
    fixedToFloat_arrL( lf_E_fx, lf_E, Q_new + QSCALE - 2 - 1, 148 );
    fixedToFloat_arrL( PS_fx, PS, Q_new + QSCALE - 2 - 1, 128 );
    fixedToFloat_arrL( fr_bands_fx, fr_bands, Q_new + QSCALE - 2, 40 );
    fixedToFloat_arrL( band_energies_fx, band_energies, Q_new + QSCALE + 2, 40 );
    fixedToFloat_arrL( lf_E_fx, lf_E, Q_new + QSCALE, 148 );
    fixedToFloat_arrL( PS_fx, PS, Q_new + QSCALE - 2, 128 );
    Etot = fixedToFloat( Etot_fx, Q8 );
    // fixedToFloat_arr( fft_buff_fx, fft_buff, Q_new + QSCALE + Scale_fac[0] - 14 -1, 512 );
    for ( int i_sbfr = 0; i_sbfr < 2; i_sbfr++ )
    {
        fixedToFloat_arr( fft_buff_fx + i_sbfr * L_FFT, fft_buff + i_sbfr * L_FFT, Q_new + QSCALE + Scale_fac[i_sbfr] - 14 - 1, L_FFT );
        fixedToFloat_arr( fft_buff_fx + i_sbfr * L_FFT, fft_buff + i_sbfr * L_FFT, Q_new + Scale_fac[i_sbfr], L_FFT );
    }
#endif
#endif
+8 −0
Original line number Diff line number Diff line
@@ -2583,6 +2583,10 @@ void noise_est_ivas_fx(
            /* else */
            /* non_sta2 = non_sta2 * ((st_ave_enr2[i]+1) / (enr[i]+1)) */
            Lden = L_min( L_tmp_enr, L_tmp_ave_enr );
            if ( Lden == 0 )
            {
                Lden = L_add( Lden, EPSILON_FX );
            }

            ExpNum = sub( norm_l( Lnum ), 1 );
            num = extract_h( L_shl( Lnum, ExpNum ) );
@@ -2626,6 +2630,10 @@ void noise_est_ivas_fx(
        {
            Lnum = L_max( L_tmp_enr, L_tmp_ave_enr2 );
            Lden = L_min( L_tmp_enr, L_tmp_ave_enr2 );
            if ( Lden == 0 )
            {
                Lden = L_add( Lden, EPSILON_FX );
            }

            ExpNum = sub( norm_l( Lnum ), 1 );
            num = extract_h( L_shl( Lnum, ExpNum ) );