Condition in ivas_param_mc_dec_prepare_renderer()
Bug description
Seems that the call to ivas_param_mc_get_mixing_matrices() has an extra condition compared to float:
BASOP:
FOR( is_next_band = 0; is_next_band < 2; is_next_band++ )
{
test();
IF( is_next_band && skip_next_band )
{
CONTINUE;
}
IF( NE_32( hParamMC->synthesis_conf, PARAM_MC_SYNTH_MONO_STEREO ) )
{
IF( is_next_band )
{
ivas_param_mc_get_mixing_matrices_fx( hParamMC, hSynthesisOutputSetup, cx_next_band_fx, cx_e, add( param_band_idx, is_next_band ), hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx, hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp, hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx, hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp, nchan_out_transport, hParamMC->synthesis_conf, nchan_transport, nchan_out_cov );
}
ELSE
{
ivas_param_mc_get_mixing_matrices_fx( hParamMC, hSynthesisOutputSetup, cx_fx, cx_e, add( param_band_idx, is_next_band ), hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx, hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp, hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx, hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp, nchan_out_transport, hParamMC->synthesis_conf, nchan_transport, nchan_out_cov );
}
}
}
Float:
for ( is_next_band = 0; is_next_band < 2; is_next_band++ )
{
if ( is_next_band && skip_next_band )
{
continue;
}
/* generate mixing matrices */
ivas_param_mc_get_mixing_matrices( hParamMC,
hSynthesisOutputSetup,
is_next_band ? cx_next_band : cx,
param_band_idx + is_next_band,
hParamMC->h_output_synthesis_cov_state.mixing_matrix,
hParamMC->h_output_synthesis_cov_state.mixing_matrix_res,
nchan_out_transport,
hParamMC->synthesis_conf,
nchan_transport,
nchan_out_cov );
}
More precisely, the condition
IF( NE_32( hParamMC->synthesis_conf, PARAM_MC_SYNTH_MONO_STEREO ) )
is not present in float.
Edited by multrus