Commit c58b3366 authored by JÜRGEN Gerstacker's avatar JÜRGEN Gerstacker
Browse files

issue _1965_ fix

parent 0b186eee
Loading
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -1157,22 +1157,10 @@ void IGFCommonFuncsCalcSfbEnergyPowerSpec( const Word16 startSfb, /**< in
        }
        sfbEnergy[sfb] = norm_llQ31( L_c, sfbEnergy[sfb], &( sfbEnergy_exp[sfb] ) );
        move32();
#else
#if 0
        Word16 sfbEnergy2_exp = 0;
        Word32 sfbEnergy2 = sum_array_norm(pPowerSpectrum + swb_offset[sfb],
                                           swb_offset[sfb + 1] - swb_offset[sfb],
                                          &( sfbEnergy2_exp ));
        if ( sfbEnergy[sfb] != sfbEnergy2 || sfbEnergy_exp[sfb] != sfbEnergy2_exp ) {
            fprintf(stderr, "ERROR %s:%d:  0x%08X 0x%08X   %d %d\n", __FILE__,__LINE__,
                sfbEnergy[sfb], sfbEnergy2, sfbEnergy_exp[sfb], sfbEnergy2_exp );

        }
#else
        sfbEnergy[sfb] = sum_array_norm( pPowerSpectrum + swb_offset[sfb],
                                         swb_offset[sfb + 1] - swb_offset[sfb],
                                         &( sfbEnergy_exp[sfb] ) );
#endif
#endif
        sfbEnergy_exp[sfb] = add( sfbEnergy_exp[sfb], *pPowerSpectrum_exp );
        move16();
+13 −2
Original line number Diff line number Diff line
@@ -27,12 +27,15 @@ static Word16 tcx_arith_decode_fx(
    Tastat as;
    Word16 exp_k;
    Word16 tmp;
    Word32 L_tmp, Q;
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    Word32 L_tmp, Q;
    Flag Overflow = 0;
    move32();
    Flag Carry = 0; // not done
#else
    Word32 Q;
    Word64 W_tmp;
#endif
    move32();
#endif
@@ -41,7 +44,11 @@ static Word16 tcx_arith_decode_fx(
    bp = ari_start_decoding_14bits_prm_fx( prm, 0, &as );

    tmp = sub( envelope_e, 1 + 15 );
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    L_tmp = L_deposit_l( 0 );
#else
    W_tmp = 0;
#endif
    FOR( k = 0; k < L_frame; k++ )
    {
        IF( envelope[k] == 0 ) /* safety check in case of bit errors */
@@ -68,7 +75,7 @@ static Word16 tcx_arith_decode_fx(
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
            L_tmp = L_macNs_co( L_tmp, q, k, &Carry, &Overflow );
#else
            L_tmp = L_macNs_sat( L_tmp, q, k );
            W_tmp = W_mac_16_16( W_tmp, q, k );
#endif

            Q = L_mult( q, negate( shl( 1, sub( 30, SPEC_EXP_DEC ) ) ) );
@@ -94,7 +101,11 @@ static Word16 tcx_arith_decode_fx(
    set32_fx( q_spectrum + k, 0, sub( L_frame, k ) );

    /* noise filling seed */
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    *nf_seed = extract_l( L_tmp );
#else
    *nf_seed = extract_l( (Word32)W_tmp );
#endif
    move16();

    return bp;
+0 −9
Original line number Diff line number Diff line
@@ -1584,16 +1584,7 @@ static void IGF_appl( IGF_DEC_PRIVATE_DATA_HANDLE hPrivateData, /**< in
    L_tmp = norm_llQ31( L_c, L_tmp, &shift ); // Q31
#else
    {
#if 0
        Word16 shift2=shift;
        
        Word32 L_tmp2 = sum_array_norm(energyTmp, 24, &shift2);
        if (L_tmp != L_tmp2 || shift != shift2) {
            fprintf(stderr, "%s:%d: 0x%08X, %d, 0x%08X, %d\n", __FILE__,__LINE__, L_tmp,shift, L_tmp2,shift2);
        }
#else
        L_tmp = sum_array_norm( energyTmp, 24, &shift );
#endif
    }
#endif
    /* float: dE = (float)sqrt(dE / 24.f); basop: */
+14 −1
Original line number Diff line number Diff line
@@ -676,7 +676,12 @@ void tcx_arith_encode_envelope_fx(
    const Word8 *deadzone_flags;
    Word16 gamma_w, gamma_uw;
    Word16 hm_bits;
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    Word32 L_tmp, L_tmp2;
#else
    Word32 L_tmp;
    Word64 W_tmp2;
#endif
    Word16 tmp;
    TCX_ENC_HANDLE hTcxEnc = st->hTcxEnc;
#ifdef BASOP_NOGLOB_DECLARE_LOCAL
@@ -770,13 +775,17 @@ void tcx_arith_encode_envelope_fx(
    move16();

    /* Multiply back the signs */
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    L_tmp2 = L_deposit_l( 0 );
#else
    W_tmp2 = 0;
#endif
    FOR( k = 0; k <= kMax; k++ )
    {
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
        L_tmp2 = L_macNs_co( L_tmp2, q_spectrum[k], k, &Carry, &Overflow );
#else
        L_tmp2 = L_macNs_sat( L_tmp2, q_spectrum[k], k );
        W_tmp2 = W_mac_16_16( W_tmp2, q_spectrum[k], k );
#endif

        if ( signs[k] != 0 )
@@ -791,7 +800,11 @@ void tcx_arith_encode_envelope_fx(
    set32_fx( spectrum + k, 0, sub( s_max( L_frame, L_spec ), k ) );

    /* noise filling seed */
#ifndef FIX_ISSUE_1965_REPLACE_CARRY_OVERFLOW
    *nf_seed = extract_l( L_tmp2 );
#else
    *nf_seed = extract_l( (Word32)W_tmp2 );
#endif
    move16();
}