diff --git a/lib_rend/ivas_dirac_output_synthesis_dec_fx.c b/lib_rend/ivas_dirac_output_synthesis_dec_fx.c index 574a6950ec9aa2337bfc0d825dbd0b22b89e00c9..836120530442aeacdc9809f161ac17718ab9d08e 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec_fx.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec_fx.c @@ -44,7 +44,6 @@ #include "wmc_auto.h" #include "ivas_prot_fx.h" - /*------------------------------------------------------------------------- * Local constants *------------------------------------------------------------------------*/ @@ -1072,15 +1071,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 +1087,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 +1101,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 +1115,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++ ) {