Front VAD impact on core encoding
In ivas_core_pre_proc_front some of the vad/dtx variables from the front VAD run on the left and right input signal and the VAD run on the mixdown signals are combined.
Line 458
/* This only applies to st->idchan==0 now */
/* Add down mix stereo activity to LR vad_flag_dtx */
*vad_flag_dtx = *vad_flag_dtx || st->vad_flag;
/* Combine the LR VAD flag and stereo downmix VAD flag */
st->vad_flag = ( LR_vad_flag || st->vad_flag );
/* Determine hangover flag status based on LR localVAD and downmix localVAD */
*vad_hover_flag = *vad_flag_dtx && !( LR_localVAD || st->localVAD );
vad_flag_dtx and vad_hover_flag controls dtx operation and these code lines allow the mixdown VAD to force active encoding even if the front VAD has indicated inactivity. This was added earlier to fix an issue with comfort noise not being generated correctly.
Setting the downmix VAD flag (st->vad_flag) to a combination of the front VAD has however no impact on the DTX decision but it can influence other decisions in the core encoding like coder type. This was not intentional and it makes more sense to not do the combining and instead let st->vad_flag reflect the core signal to be encoded.
The fix just removes these lines of code. It will not be bit-exact.
/* Combine the LR VAD flag and stereo downmix VAD flag */
st->vad_flag = ( LR_vad_flag || st->vad_flag );