diff --git a/lib_rend/ivas_dirac_output_synthesis_dec_fx.c b/lib_rend/ivas_dirac_output_synthesis_dec_fx.c index 541e4d5a8148c97d9af968befd62d9703ad53a79..52ccc6b93f90e86ff4b19132aac33075796808d6 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec_fx.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec_fx.c @@ -1072,15 +1072,15 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx( free( exp_temp_cy_cross_dir_smooth_fx ); Word16 temp_q1 = sub( h_dirac_output_synthesis_state->q_cy_cross_dir_smooth, temp_q ); - FOR( ch_idx = s_min( 4, nchan_transport ); ch_idx < num_channels_dir; ch_idx++ ) + IF( NE_16( temp_q, h_dirac_output_synthesis_state->q_cy_cross_dir_smooth ) ) { - IF( NE_16( temp_q, h_dirac_output_synthesis_state->q_cy_cross_dir_smooth ) ) + Word16 i; + Word32 aux; + IF( temp_q1 < 0 ) { - Word16 i; - Word32 aux; - IF( temp_q1 < 0 ) + Word32 temp_q1_equiv = L_lshl( (Word32) 0x80000000, temp_q1 ); + FOR( ch_idx = s_min( 4, nchan_transport ); ch_idx < num_channels_dir; ch_idx++ ) { - Word32 temp_q1_equiv = L_lshl( (Word32) 0x80000000, temp_q1 ); FOR( i = 0; i < num_freq_bands; i++ ) { aux = Mpy_32_32( h_dirac_output_synthesis_state->direct_power_factor_fx[i], h_dirac_output_synthesis_state->direct_responses_fx[ch_idx * num_freq_bands + i] ); @@ -1088,7 +1088,10 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx( move32(); } } - ELSE + } + ELSE + { + FOR( ch_idx = s_min( 4, nchan_transport ); ch_idx < num_channels_dir; ch_idx++ ) { FOR( i = 0; i < num_freq_bands; i++ ) { @@ -1099,9 +1102,12 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx( } } } - ELSE + } + ELSE + { + Word16 i; + FOR( ch_idx = s_min( 4, nchan_transport ); ch_idx < num_channels_dir; ch_idx++ ) { - Word16 i; FOR( i = 0; i < num_freq_bands; i++ ) { h_dirac_output_synthesis_state->cy_cross_dir_smooth_fx[ch_idx * num_freq_bands + i] = Madd_32_32( h_dirac_output_synthesis_state->cy_cross_dir_smooth_fx[ch_idx * num_freq_bands + i], h_dirac_output_synthesis_state->direct_power_factor_fx[i], h_dirac_output_synthesis_state->direct_responses_fx[ch_idx * num_freq_bands + i] ); @@ -1110,7 +1116,6 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx( } } - /*Diffuse gain*/ FOR( ch_idx = s_min( 4, nchan_transport ); ch_idx < num_channels_diff; ch_idx++ ) {