Resolve "(Another) BASOP assert in EVS encoder (with -rf mode on)"
- Related issues: #2573 (closed)
- Requested reviewers: @fotopoulou or @vaclav
Reason why this change is needed
Code for the update of channel-aware mode was duplicated and is thus leading to invalid states. More specifically, the following code is present twice:
IF( EQ_16( st->rf_mode, 1 ) )
{
IF( EQ_16( hRF->rf_frame_type, RF_NELP ) )
{
hSC_VBR->last_nelp_mode = 1;
}
ELSE
{
hSC_VBR->last_nelp_mode = 0;
}
}
/* RF mode updates */
st->rf_mode_last = st->rf_mode;
IF( EQ_16( st->Opt_RF_ON, 1 ) )
{
st->L_frame = L_FRAME;
st->rf_mode = 1;
}
First it is part of updt_enc_common_fx(), and it is called a second time right after updt_enc_common_fx() in evs_enc_fx(). This leads to an inconsisten state of st->rf_mode_last, which in the subsequent frame causes a wrong configuration for st->enableTcxLpc, since no reconfiguration via core_enc_reconf_tx() might happen.
The issue is not present in float.
Description of the change
- Remove the duplicated code.
Affected operating points
- This misconfiguration happens seldomly and is probably not triggered by the MR pipeline - otherwise we would have seen this probably in !2710 (merged).
Closes #2573 (closed)
Edited by multrus