| Index: webrtc/modules/audio_processing/aec/aec_core.cc
 | 
| diff --git a/webrtc/modules/audio_processing/aec/aec_core.cc b/webrtc/modules/audio_processing/aec/aec_core.cc
 | 
| index 0168a3d227e9753f091a5ede51c5d82bb62cca22..2cd39749ac687404c975812c756e6fd920b164b9 100644
 | 
| --- a/webrtc/modules/audio_processing/aec/aec_core.cc
 | 
| +++ b/webrtc/modules/audio_processing/aec/aec_core.cc
 | 
| @@ -131,7 +131,8 @@ enum { kPrefBandSize = 24 };
 | 
|  WebRtcAecFilterFar WebRtcAec_FilterFar;
 | 
|  WebRtcAecScaleErrorSignal WebRtcAec_ScaleErrorSignal;
 | 
|  WebRtcAecFilterAdaptation WebRtcAec_FilterAdaptation;
 | 
| -WebRtcAecOverdriveAndSuppress WebRtcAec_OverdriveAndSuppress;
 | 
| +WebRtcAecOverdrive WebRtcAec_Overdrive;
 | 
| +WebRtcAecSuppress WebRtcAec_Suppress;
 | 
|  WebRtcAecComputeCoherence WebRtcAec_ComputeCoherence;
 | 
|  WebRtcAecUpdateCoherenceSpectra WebRtcAec_UpdateCoherenceSpectra;
 | 
|  WebRtcAecStoreAsComplex WebRtcAec_StoreAsComplex;
 | 
| @@ -307,19 +308,21 @@ static void FilterAdaptation(
 | 
|    }
 | 
|  }
 | 
|  
 | 
| -static void OverdriveAndSuppress(float overdrive_scaling,
 | 
| -                                 float hNl[PART_LEN1],
 | 
| -                                 const float hNlFb,
 | 
| -                                 float efw[2][PART_LEN1]) {
 | 
| -  int i;
 | 
| -  for (i = 0; i < PART_LEN1; i++) {
 | 
| +static void Overdrive(float overdrive_scaling,
 | 
| +                      const float hNlFb,
 | 
| +                      float hNl[PART_LEN1]) {
 | 
| +  for (int i = 0; i < PART_LEN1; ++i) {
 | 
|      // Weight subbands
 | 
|      if (hNl[i] > hNlFb) {
 | 
|        hNl[i] = WebRtcAec_weightCurve[i] * hNlFb +
 | 
|                 (1 - WebRtcAec_weightCurve[i]) * hNl[i];
 | 
|      }
 | 
|      hNl[i] = powf(hNl[i], overdrive_scaling * WebRtcAec_overDriveCurve[i]);
 | 
| +  }
 | 
| +}
 | 
|  
 | 
| +static void Suppress(const float hNl[PART_LEN1], float efw[2][PART_LEN1]) {
 | 
| +  for (int i = 0; i < PART_LEN1; ++i) {
 | 
|      // Suppress error signal
 | 
|      efw[0][i] *= hNl[i];
 | 
|      efw[1][i] *= hNl[i];
 | 
| @@ -1157,7 +1160,8 @@ static void EchoSuppression(AecCore* aec,
 | 
|          0.9f * aec->overdrive_scaling + 0.1f * aec->overDrive;
 | 
|    }
 | 
|  
 | 
| -  WebRtcAec_OverdriveAndSuppress(aec->overdrive_scaling, hNl, hNlFb, efw);
 | 
| +  WebRtcAec_Overdrive(aec->overdrive_scaling, hNlFb, hNl);
 | 
| +  WebRtcAec_Suppress(hNl, efw);
 | 
|  
 | 
|    // Add comfort noise.
 | 
|    ComfortNoise(aec, efw, comfortNoiseHband, aec->noisePow, hNl);
 | 
| @@ -1477,7 +1481,8 @@ AecCore* WebRtcAec_CreateAec(int instance_count) {
 | 
|    WebRtcAec_FilterFar = FilterFar;
 | 
|    WebRtcAec_ScaleErrorSignal = ScaleErrorSignal;
 | 
|    WebRtcAec_FilterAdaptation = FilterAdaptation;
 | 
| -  WebRtcAec_OverdriveAndSuppress = OverdriveAndSuppress;
 | 
| +  WebRtcAec_Overdrive = Overdrive;
 | 
| +  WebRtcAec_Suppress = Suppress;
 | 
|    WebRtcAec_ComputeCoherence = ComputeCoherence;
 | 
|    WebRtcAec_UpdateCoherenceSpectra = UpdateCoherenceSpectra;
 | 
|    WebRtcAec_StoreAsComplex = StoreAsComplex;
 | 
| 
 |