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.