Commit 83c65d0b authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Fix for 3GPP issue 811

[x] Updated handling of guard bits in ivas_dirac_dec_decorr_process_fx
parent 78f425a3
Loading
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1124,8 +1124,14 @@ void ivas_dirac_dec_decorr_process_fx(
        set32_fx( &h_freq_domain_decorr_ap_state->decorr_buffer_fx[imult1616( imult1616( imult1616( 2, sub( decorr_buffer_len, 1 ) ), max_band_decorr ), num_channels )], 0, imult1616( imult1616( 2, max_band_decorr ), num_channels ) );

        Word16 decorr_buff_tot_len = imult1616( imult1616( shl( decorr_buffer_len, 1 ), max_band_decorr ), num_channels );

        guarded_bits = 0;
        FOR( Word16 i = 0; i < decorr_buff_tot_len; i++ )
        {
            IF( h_freq_domain_decorr_ap_state->decorr_buffer_fx[i] != 0 )
            {
                guarded_bits = s_max( find_guarded_bits_fx( 2 ), 3 );
            }
        }
        q_shift = sub( getScaleFactor32( h_freq_domain_decorr_ap_state->decorr_buffer_fx, decorr_buff_tot_len ), guarded_bits );
        Scale_sig32( h_freq_domain_decorr_ap_state->decorr_buffer_fx, decorr_buff_tot_len, q_shift );
        q_decorr_buf = add( q_decorr_buf, q_shift );