Commit e7c22550 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Fix for 3GPP issue 1150 and 1151

[x] Fix issue #1150: Assertion error observed in evs_enc_fx (with option stereo_dmx_evs) from tcx_ltp_find_gain function
[x] Fix issue #1151: Assertion error observed in evs_enc_fx (with option stereo_dmx_evs) from sp_mus_classif_gmm_fx function
parent c6057ceb
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -109,4 +109,6 @@
#define FIX_ISSUE_1092                          /* Ittiam: Fix for Issue 1092: BASOP asserts in stereo fx encoder for selection test inputs*/
#define FIX_ISSUE_1148
#define FIX_ISSUE_1147                          /*Ittiam: Fix for issue 1147: Added saturation in DetectTnsFilt_fx.*/
#define FIX_ISSUE_1150                          /* Ittiam: Fix for Issue 1150: Assertion error observed in evs_enc_fx (with option stereo_dmx_evs) from tcx_ltp_find_gain function*/
#define FIX_ISSUE_1151                          /* Ittiam: Fix for Issue 1151: Assertion error observed in evs_enc_fx (with option stereo_dmx_evs) from sp_mus_classif_gmm_fx function*/
#endif
+17 −1
Original line number Diff line number Diff line
@@ -899,12 +899,28 @@ static Word16 sp_mus_classif_gmm_fx( /* o : decis

            tmp = div_s( tmp2, tmp1 );            /*Q(15+exp3) */
            L_tmp = L_shl( tmp, sub( 1, exp3 ) ); /*Q16 */
#ifdef FIX_ISSUE_1151
#ifdef BASOP_NOGLOB
            ps_sta = L_add_sat( ps_sta, L_tmp ); /*Q16 */
#else
            ps_sta = L_add( ps_sta, L_tmp ); /*Q16 */
#endif
#else
            ps_sta = L_add( ps_sta, L_tmp ); /*Q16 */
#endif
        }
    }

    /**pFV++ = (float)log(ps_sta + 1e-5f);*/
#ifdef FIX_ISSUE_1151
#ifdef BASOP_NOGLOB
    ps_sta = L_add_sat( ps_sta, 336 );
#else
    ps_sta = L_add( ps_sta, 336 );
#endif
#else
    ps_sta = L_add( ps_sta, 336 );
#endif
    e_tmp = norm_l( ps_sta );
    f_tmp = Log2_norm_lc( L_shl( ps_sta, e_tmp ) );
    e_tmp = sub( 30 - 16, e_tmp );
+8 −0
Original line number Diff line number Diff line
@@ -549,7 +549,15 @@ static void tcx_ltp_find_gain( Word16 *speech, Word16 *pred_speech, Word16 L_fra
    BASOP_SATURATE_WARNING_ON_EVS

    /* Quantize gain */
#ifdef FIX_ISSUE_1150
#ifdef BASOP_NOGLOB
    g = shr( sub_o( g, 0x1000, &Overflow ), 13 );
#else
    g = shr( sub( g, 0x1000 ), 13 );
#endif
#else
    g = shr( sub( g, 0x1000 ), 13 );
#endif
    g = s_max( g, -1 );

    *gain_index = g;