Commit 97aa01ee authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Fix for another crash

parent 8e8bd5d1
Loading
Loading
Loading
Loading
Loading
+20 −18
Original line number Diff line number Diff line
@@ -509,12 +509,14 @@ void gain_dec_mless_fx(
        // To avoid crash in case code value is 0
        IF( EQ_16( BASOP_Util_Cmp_Mant32Exp( L_tmp, expg, 21474836, 0 ), -1 ) )
        {
            L_tmp = 21474836;
            expg = 0;
            move32();
            // setting values to avoid extra computation
            *gain_inov_fx = 32767; /*8(max value gain_inov can hold) in Q12*/
            Ei_fx = -9743;         /* -38 in Q8*/
            move16();
            move16();
        }

        ELSE
        {
            expg2 = expg;
            move16();
            L_tmp1 = L_tmp; /* sets to 'L_tmp' in 1 clock */
@@ -530,7 +532,7 @@ void gain_dec_mless_fx(
            e_tmp = sub( expg2, add( 1, e_tmp ) );
            L_tmp1 = Mpy_32_16( e_tmp, f_tmp, 12330 ); /* Q13 */ /* 10*log10(2) in Q12*/
            Ei_fx = round_fx( L_shl( L_tmp1, 11 ) );             /* Q8 */

        }
        /*-----------------------------------------------------------------*
         * calculate the predicted gain code
         *-----------------------------------------------------------------*/
+27 −24
Original line number Diff line number Diff line
@@ -603,15 +603,17 @@ void gain_enc_mless_ivas_fx(
    L_tmp = Dot_product12( code, code, L_SUBFR, &exp_code );
    exp_inov = sub( exp_code, 18 + 6 );

    // To avoid crash in case code value is 0
    // To avoid crash in case code value is 0,
    IF( EQ_16( BASOP_Util_Cmp_Mant32Exp( L_tmp, exp_inov, 21474836, 0 ), -1 ) )
    {
        L_tmp = 21474836;
        exp_inov = 0;
        move32();
        // setting values to avoid extra computation
        *gain_inov = 32767; /*8(max value gain_inov can hold) in Q12*/
        Ei = -9743;         /* -38 in Q8*/
        move16();
        move16();
    }

    ELSE
    {
        exp_code = sub( exp_code, 30 );

        /*Ei = 10 * log10((dot_product(code, code, L_SUBFR) + 0.01) / L_SUBFR) */
@@ -625,9 +627,6 @@ void gain_enc_mless_ivas_fx(
        L_tmp1 = Mpy_32_16( tmp, frac, 12330 );             /* Q13 */
        Ei = round_fx( L_shl( L_tmp1, 11 ) );               /* Q8 */

    /* predicted codebook gain */
    gcode0 = sub( Es_pred, Ei ); /* Q8 */

        /*---------------------------------------------------------------*
         * Decode codebook gain and the adaptive excitation low-pass
         * filtering factor (Finalize computation )
@@ -636,6 +635,10 @@ void gain_enc_mless_ivas_fx(
        L_tmp = Isqrt_lc( L_tmp, &exp_inov );
        *gain_inov = extract_h( L_shl( L_tmp, sub( exp_inov, 3 ) ) ); /* gain_inov in Q12 */
        move16();
    }

    /* predicted codebook gain */
    gcode0 = sub( Es_pred, Ei ); /* Q8 */

    /* gcode0 = pow(10, 0.05 * (Es_pred - Ei)) */
    /*----------------------------------------------------------------*