| 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 4c109d7d9ce50cfe1455c5ad7b317c6c14bac8a3..fb1a7a506a89551461109ca435c500ea174226c1 100644
|
| --- a/webrtc/modules/audio_processing/aec/aec_core.cc
|
| +++ b/webrtc/modules/audio_processing/aec/aec_core.cc
|
| @@ -827,6 +827,7 @@ static int SignalBasedDelayCorrection(AecCore* self) {
|
| // playout audio volume is low (or even muted) the delay estimation can return
|
| // a very large delay, which will break the AEC if it is applied.
|
| if (self->frame_count < kDelayCorrectionStart) {
|
| + self->data_dumper->DumpRaw("aec_da_reported_delay", 1, &last_delay);
|
| return 0;
|
| }
|
| #endif
|
| @@ -843,6 +844,7 @@ static int SignalBasedDelayCorrection(AecCore* self) {
|
| // 4. Finally, verify that the proposed |delay_correction| is feasible by
|
| // comparing with the size of the far-end buffer.
|
| last_delay = WebRtc_last_delay(self->delay_estimator);
|
| + self->data_dumper->DumpRaw("aec_da_reported_delay", 1, &last_delay);
|
| if ((last_delay >= 0) && (last_delay != self->previous_delay) &&
|
| (WebRtc_last_delay_quality(self->delay_estimator) >
|
| self->delay_quality_threshold)) {
|
| @@ -888,6 +890,8 @@ static int SignalBasedDelayCorrection(AecCore* self) {
|
| ? delay_quality
|
| : self->delay_quality_threshold);
|
| }
|
| + self->data_dumper->DumpRaw("aec_da_delay_correction", 1, &delay_correction);
|
| +
|
| return delay_correction;
|
| }
|
|
|
| @@ -1154,6 +1158,8 @@ static void EchoSuppression(AecCore* aec,
|
| aec->delayIdx = WebRtcAec_PartitionDelay(aec->num_partitions, aec->wfBuf);
|
| }
|
|
|
| + aec->data_dumper->DumpRaw("aec_nlp_delay", 1, &aec->delayIdx);
|
| +
|
| // Use delayed far.
|
| memcpy(xfw, aec->xfwBuf + aec->delayIdx * PART_LEN1,
|
| sizeof(xfw[0][0]) * 2 * PART_LEN1);
|
| @@ -1173,6 +1179,8 @@ static void EchoSuppression(AecCore* aec,
|
|
|
| FormSuppressionGain(aec, cohde, cohxd, hNl);
|
|
|
| + aec->data_dumper->DumpRaw("aec_nlp_gain", PART_LEN1, hNl);
|
| +
|
| WebRtcAec_Suppress(hNl, efw);
|
|
|
| // Add comfort noise.
|
| @@ -1388,6 +1396,10 @@ static void ProcessBlock(AecCore* aec) {
|
| aec->error_threshold, &x_fft[0][0], &aec->xfBufBlockPos,
|
| aec->xfBuf, nearend_ptr, aec->xPow, aec->wfBuf,
|
| echo_subtractor_output);
|
| + aec->data_dumper->DumpRaw("aec_h_fft", PART_LEN1 * aec->num_partitions,
|
| + &aec->wfBuf[0][0]);
|
| + aec->data_dumper->DumpRaw("aec_h_fft", PART_LEN1 * aec->num_partitions,
|
| + &aec->wfBuf[1][0]);
|
|
|
| aec->data_dumper->DumpWav("aec_out_linear", PART_LEN, echo_subtractor_output,
|
| std::min(aec->sampFreq, 16000), 1);
|
|
|