| 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 2cc2968f81c2e2ffc658d15ba048e3890d8a4a47..1a45a0c8c01228d563729c1fb7461d928d283baf 100644 | 
| --- a/webrtc/modules/audio_processing/aec/aec_core.cc | 
| +++ b/webrtc/modules/audio_processing/aec/aec_core.cc | 
| @@ -689,12 +689,11 @@ static void UpdateMetrics(AecCore* aec) { | 
| // ERLE | 
|  | 
| // subtract noise power | 
| -      suppressedEcho = 2 * (aec->nlpoutlevel.averagelevel - | 
| -                            safety * aec->nlpoutlevel.minlevel); | 
| +      suppressedEcho = aec->nlpoutlevel.averagelevel - | 
| +          safety * aec->nlpoutlevel.minlevel; | 
|  | 
| dtmp = 10 * static_cast<float>(log10(aec->nearlevel.averagelevel / | 
| -                                           (2 * aec->nlpoutlevel.averagelevel) + | 
| -                                           1e-10f)); | 
| +          aec->nlpoutlevel.averagelevel + 1e-10f)); | 
| dtmp2 = 10 * static_cast<float>(log10(echo / suppressedEcho + 1e-10f)); | 
|  | 
| dtmp = dtmp2; | 
| @@ -1139,16 +1138,6 @@ static void EchoSuppression(AecCore* aec, | 
| // Inverse error fft. | 
| ScaledInverseFft(efw, fft, 2.0f, 1); | 
|  | 
| -  // TODO(bjornv): Investigate how to take the windowing below into account if | 
| -  // needed. | 
| -  if (aec->metricsMode == 1) { | 
| -    // Note that we have a scaling by two in the time domain |eBuf|. | 
| -    // In addition the time domain signal is windowed before transformation, | 
| -    // losing half the energy on the average. We take care of the first | 
| -    // scaling only in UpdateMetrics(). | 
| -    UpdateLevel(&aec->nlpoutlevel, CalculatePower(fft, PART_LEN2)); | 
| -  } | 
| - | 
| // Overlap and add to obtain output. | 
| for (i = 0; i < PART_LEN; i++) { | 
| output[i] = (fft[i] * WebRtcAec_sqrtHanning[i] + | 
| @@ -1358,6 +1347,7 @@ static void ProcessBlock(AecCore* aec) { | 
| EchoSuppression(aec, farend_ptr, echo_subtractor_output, output, outputH_ptr); | 
|  | 
| if (aec->metricsMode == 1) { | 
| +    UpdateLevel(&aec->nlpoutlevel, CalculatePower(output, PART_LEN)); | 
| UpdateMetrics(aec); | 
| } | 
|  | 
|  |