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

Merge branch 'fix_issue_672' into 'main'

fix for issue 672

See merge request !83
parents 0bdcf007 13e3926d
Loading
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -803,34 +803,34 @@ void stereo_cng_compute_PScorr_fx(
    }

    Word32 Var1 = Mpy_32_32( enrP_fx, enrS_fx ); // 2*( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits )
    Word32 temp = L_add( Var1, 1 );              /*adding one in order to make temp non-zero*/
    Word16 q = 2 * ( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits );
    Word16 exp = 31 - ( 2 * ( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits ) );

    Word16 nrm = norm_l( Var1 );
    Word32 frac = L_shl( temp, nrm );
    Word16 exp = 31 - ( q + nrm );
    Word32 Var2 = Isqrt_lc( frac, &exp ); /*Q(31 - exp)*/

    Word32 Var3 = L_add( dotPS_fx, 1 ); /*adding one in order to make temp non-zero.  q = Q_outputSptr + Q_outputPptr - guard_bits*/
    IF( Var1 == 0 )
    {
        Var1 = 1;
    }

    Word32 Var2, Var3;
    Var2 = ISqrt32(Var1, &exp);
    Var3 = L_add( dotPS_fx, 1 ); /*adding one in order to make temp non-zero.  q = Q_outputSptr + Q_outputPptr - guard_bits*/
    c_PS_fx = Mpy_32_32( Var3, Var2 ); /* outputSptr_Q + outputPptr_Q - guard_bits - exp */
    Word16 c_PS_fx_Q = outputSptr_Q + outputPptr_Q - guard_bits - exp - 31;


    Word16 c_PS_fx_Q = outputSptr_Q + outputPptr_Q - guard_bits - exp - 31;
    Word32 a = 0, b = 0;
    a = Mpy_32_32( c_PS_fx, ONE_MINUS_STEREO_TD_PS_CORR_FILT_Q31 ); // Q(c_PS_fx_Q)
    Word16 a_q = 0, b_q = 0, ab_q = 0;

    a = Mpy_32_32( c_PS_fx, ONE_MINUS_STEREO_TD_PS_CORR_FILT_Q31 ); // Q(c_PS_fx_Q)
    a_q = c_PS_fx_Q;
    b = Mpy_32_32( STEREO_TD_PS_CORR_FILT_Q31, *c_PS_LT_fx ); // Q(Q_c_PS_LT_fx)
    b_q = Q_c_PS_LT_fx;

    if ( a_q > b_q )
    IF (GT_16( a_q , b_q) )
    {
        ab_q = a_q - b_q;
        *c_PS_LT_fx = L_add( L_shr( a, (Word16) ab_q ), b );
        Q_c_PS_LT_fx = b_q;
    }
    else if ( b_q < a_q )
    ELSE IF ( LT_16(b_q , a_q ))
    {
        ab_q = b_q - a_q;
        *c_PS_LT_fx = L_add( a, L_shr( b, (Word16) ab_q ) );