Mismatching logic operator in ivas_decision_matrix_enc_fx between BASOP and float
Basic info
- Float reference:
- Encoder (float): 08cd86420da38cb0eb176218999e5fca74ed4584
- Fixed point:
- Encoder (fixed): 7897b35e
Bug description
Looking at code in ivas_decision_matrix_enc_fx, the code below has a mismatch compared to float implementation, EVS versions, and also decoder. All other ones use &&-operator at the indicated place but this has ||.
/* SID and FRAME_NO_DATA frames */
IF( st->Opt_DTX_ON && ( EQ_32( st->core_brate, SID_2k40 ) || st->core_brate == FRAME_NO_DATA ) )
{
st->core = ACELP_CORE;
move16();
test();
BUG -> if ( GE_32( st->input_Fs, 32000 ) || GE_16( st->bwidth, SWB ) )
{
st->extl = SWB_CNG;
move16();
}
st->rf_mode = 0;
move16();
return;
}