Admin message

WARNING! Gitlab maintenance operation scheduled for Monday, 20 April between 12:00 and 14:00 (CET). During this time window, short service interruptions (less than 5 minutes) may occur. Thank you in advance for your understanding.

Probable porting bug in ivas_sba_dirac_stereo_compute_td_stefi_nrgs

Basic info

  • Float reference:
    • Encoder (float):
    • Decoder (float): 2a32cceaf0d7ce3482cb05e5c12951e95a8a552a
  • Fixed point:
    • Encoder (fixed):
    • Decoder (fixed): a8ff39cd

Bug description

In beginning of function ivas_sba_dirac_stereo_compute_td_stefi_nrgs, there is probably porting bug where output_frame/2 has become output_frame/4. See below

Float

    if ( ( core == ACELP_CORE && !fd_cng_flag ) || hStereoDft->core_hist[1] == ACELP_CORE )
    {
        for ( i = 0; i < output_frame / 2; i++ )
        {
            hb_nrg2 += hb_synth[i] * hb_synth[i];
        }

BASOP

    IF( ( EQ_16( core, ACELP_CORE ) && !fd_cng_flag ) || EQ_16( hStereoDft->core_hist[1], ACELP_CORE ) )
    {
        FOR( i = 0; i < shr( output_frame, 2 ); i++ ) <-- BUG HERE
        {
            hb_nrg2 = Madd_32_32( hb_nrg2, hb_synth[i], hb_synth[i] ); /*2*q_hb_synth-31*/
        }

It is always possible that there is some intentional change here so good to verify properly. And also good to check where this value is used.

Assignee Loading
Time tracking Loading