Commit 901841d9 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh Committed by Manuel Jander
Browse files

Fix for 3GPP issue 1339: Artifact in IGF part for first active frame after DTX...

Fix for 3GPP issue 1339: Artifact in IGF part for first active frame after DTX period in MDCT-Stereo

Link #1339
parent 85432c38
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -358,6 +358,32 @@ void stereo_mdct_core_enc_fx(
        }
        q_spec = sub( Q31, q_spec );

        /*find headroom to increase precision*/
        Word16 hdrm_min = MAX_16;
        move16();
        FOR( ch = 0; ch < CPE_CHANNELS; ch++ )
        {
            IF( EQ_16( sts[ch]->hTcxEnc->tcxMode, TCX_20 ) )
            {
                length = sts[ch]->hTcxEnc->L_frameTCX;
                move16();
            }
            ELSE
            {
                length = shr( sts[ch]->hTcxEnc->L_frameTCX, 1 );
            }
            FOR( k = 0; k <= ( ( sts[ch]->core == TCX_20_CORE ) ? 1 : NB_DIV ) - 1; k++ )
            {
                hdrm_min = s_min( hdrm_min, L_norm_arr( sts[ch]->hTcxEnc->spectrum_fx[k], length ) );
                hdrm_min = s_min( hdrm_min, L_norm_arr( mdst_spectrum_fx[ch][k], length ) );
            }
        }

        IF( hdrm_min != 0 )
        {
            q_spec = sub( add( hdrm_min, q_spec ), 1 ); /*1 guard bit to avoid over-flows*/
        }

        FOR( ch = 0; ch < CPE_CHANNELS; ch++ )
        {
            Word16 n_sb = NB_DIV;