Commit 9770a293 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Fix for 3GPP issue 1453: [regression] Encoder abort (divide by zero) for MC...

Fix for 3GPP issue 1453: [regression] Encoder abort (divide by zero) for MC 5.1+2 encoding in ivas_param_mc_quantize_ilds_fx()

Link #1453
parent f44565a5
Loading
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -1422,8 +1422,21 @@ static void ivas_param_mc_quantize_ilds_fx(
        dmx_ener_fx = BASOP_Util_Add_Mant32Exp( dmx_ener_fx, dmx_ener_e, Cx_fx[k][k], Cx_e[k][k], &dmx_ener_e );
    }
    /*ener_fac = 10.0f * log10f( ( tot_ener + EPSILON ) / ( dmx_ener + EPSILON ) )*/
    tot_ener_fx = BASOP_Util_Add_Mant32Exp( tot_ener_fx, tot_ener_e, EPSILON_FX, 0, &tot_ener_e );
    dmx_ener_fx = BASOP_Util_Add_Mant32Exp( dmx_ener_fx, dmx_ener_e, EPSILON_FX, 0, &dmx_ener_e );
    IF( tot_ener_fx == 0 )
    {
        tot_ener_fx = 9223; // 1e-15(EPSILON) in Q63
        tot_ener_e = -32;
        move32();
        move16();
    }
    IF( dmx_ener_fx == 0 )
    {
        dmx_ener_fx = 9223; // 1e-15(EPSILON) in Q63
        dmx_ener_e = -32;
        move32();
        move16();
    }

    L_tmp = L_deposit_h( BASOP_Util_Divide3232_Scale( tot_ener_fx, dmx_ener_fx, &tmp_e ) );
    tmp_e = add( sub( tot_ener_e, dmx_ener_e ), tmp_e );
    ener_fac_fx = BASOP_Util_Log10( L_tmp, tmp_e );     // Q25