Resolve "(Another) BASOP assert in EVS encoder (with -rf mode on)"

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

Merge request reports

Loading