Commit 63941ae6 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

restrict direct-gain modifications to HO-DirAC mode

parent 11891d40
Loading
Loading
Loading
Loading
+29 −10
Original line number Diff line number Diff line
@@ -843,7 +843,6 @@ void ivas_dirac_dec_output_synthesis_process_subframe_gain_shd(
            {
                h_dirac_output_synthesis_state.cy_cross_dir_smooth[ch_idx * num_freq_bands + l] = sqrtf( 1.f + h_dirac_output_synthesis_state.cy_cross_dir_smooth[ch_idx * num_freq_bands + l] );
            }

        }

        /*Directional gain*/
@@ -927,6 +926,9 @@ void ivas_dirac_dec_output_synthesis_process_subframe_gain_shd(
    p_gains_dir = h_dirac_output_synthesis_state.cy_cross_dir_smooth_prev;

/*Direct gains*/
#ifdef HODIRAC
    if ( hodirac )
    {
        for ( ch_idx = 0; ch_idx < nchan_transport_foa; ch_idx++ )
        {
            for ( l = 0; l < num_freq_bands; l++ )
@@ -939,6 +941,23 @@ void ivas_dirac_dec_output_synthesis_process_subframe_gain_shd(
                *( p_gains_dir++ ) = g2;
            }
        }
    }
    else
#endif
    {
        for ( ch_idx = 0; ch_idx < nchan_transport_foa; ch_idx++ )
        {
            for ( l = 0; l < num_freq_bands; l++ )
            {
                g1 = 0.3679f + onset_filter[l] * ( 0.1175f - 0.3679f );
                g2 = ( 1.f - g1 ) * *( p_gains_dir );
                g2 += g1 * ( *( p_cy_cross_dir_smooth++ ) );
                g2 = max( g2, 0.85f );
                g2 = min( g2, 1.15f );
                *( p_gains_dir++ ) = g2;
            }
        }
    }

    /*Directional gains*/
    for ( ch_idx = nchan_transport_foa; ch_idx < num_channels_dir; ch_idx++ )