Commit 2c5f5a1e authored by norvell's avatar norvell
Browse files

Add fix NONBE_1246_INF_COHERENCE_IN_HIGH_LEVEL_DTX to port MR1919

parent d3312299
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -188,6 +188,7 @@
#define FIX_ISSUE_2008_MISSING_CODE_FROM_PORTING        /* FhG: Issue 2008: Code deleted while porting float-main MR !1504 (BASOP issue 1565)*/
#define ADJUST_MCT_CHANNELS_MAX                         /* FhG: set correct max mct channels constant*/
#define FIX_1053_REVERB_RECONFIGURATION
#define NONBE_1246_INF_COHERENCE_IN_HIGH_LEVEL_DTX      /* Ericsson: Issue 1246: High level input which triggers DTX can lead to numerical overflow in coherence calculation */

/* #################### End BASOP porting switches ############################ */

+4 −0
Original line number Diff line number Diff line
@@ -95,7 +95,11 @@ void stereo_dft_enc_sid_calc_coh(
            for ( k = hStereoDft->band_limits[b]; k < hStereoDft->band_limits[b + 1]; k++ )
            {
                coh_weight = hStereoDft->DFT[0][2 * k] * hStereoDft->DFT[0][2 * k] + hStereoDft->DFT[0][2 * k + 1] * hStereoDft->DFT[0][2 * k + 1];
#ifdef NONBE_1246_INF_COHERENCE_IN_HIGH_LEVEL_DTX
                cohBand[b] += coh_weight * ( ( hStereoDft->xspec_smooth[2 * k] * hStereoDft->xspec_smooth[2 * k] + hStereoDft->xspec_smooth[2 * k + 1] * hStereoDft->xspec_smooth[2 * k + 1] ) / ( hStereoDft->Spd_L_smooth[k] * hStereoDft->Spd_R_smooth[k] + EPSILON ) );
#else
                cohBand[b] += coh_weight * ( hStereoDft->xspec_smooth[2 * k] * hStereoDft->xspec_smooth[2 * k] + hStereoDft->xspec_smooth[2 * k + 1] * hStereoDft->xspec_smooth[2 * k + 1] ) / ( hStereoDft->Spd_L_smooth[k] * hStereoDft->Spd_R_smooth[k] + EPSILON );
#endif
                coh_weight_sum += coh_weight;
            }
            if ( coh_weight_sum > 0 )