Index: webrtc/modules/audio_processing/aec/echo_cancellation.cc |
diff --git a/webrtc/modules/audio_processing/aec/echo_cancellation.cc b/webrtc/modules/audio_processing/aec/echo_cancellation.cc |
index 4f65c2b9830717696e51c430467d4a5b392ed029..9261632c17d799df935a6fce20926b44d400ddc4 100644 |
--- a/webrtc/modules/audio_processing/aec/echo_cancellation.cc |
+++ b/webrtc/modules/audio_processing/aec/echo_cancellation.cc |
@@ -296,8 +296,7 @@ int32_t WebRtcAec_BufferFarend(void* aecInst, |
// Write the time-domain data to |far_pre_buf|. |
WebRtc_WriteBuffer(aecpc->far_pre_buf, farend_ptr, newNrOfSamples); |
- // TODO(minyue): reduce to |PART_LEN| samples for each buffering, when |
- // WebRtcAec_BufferFarendPartition() is changed to take |PART_LEN| samples. |
+ // TODO(minyue): reduce to |PART_LEN| samples for each buffering. |
while (WebRtc_available_read(aecpc->far_pre_buf) >= PART_LEN2) { |
// We have enough data to pass to the FFT, hence read PART_LEN2 samples. |
{ |
@@ -305,7 +304,7 @@ int32_t WebRtcAec_BufferFarend(void* aecInst, |
float tmp[PART_LEN2]; |
WebRtc_ReadBuffer(aecpc->far_pre_buf, |
reinterpret_cast<void**>(&ptmp), tmp, PART_LEN2); |
- WebRtcAec_BufferFarendPartition(aecpc->aec, ptmp); |
+ WebRtcAec_BufferFarendBlock(aecpc->aec, &ptmp[PART_LEN]); |
} |
// Rewind |far_pre_buf| PART_LEN samples for overlap before continuing. |
@@ -653,7 +652,8 @@ static int ProcessNormal(Aec* aecpc, |
// the pointer |overhead_elements| since we have only added data |
// to the buffer and no delay compensation nor AEC processing |
// has been done. |
- WebRtcAec_MoveFarReadPtr(aecpc->aec, overhead_elements); |
+ WebRtcAec_AdjustFarendBufferSizeAndSystemDelay(aecpc->aec, |
+ overhead_elements); |
// Enable the AEC |
aecpc->startup_phase = 0; |
@@ -730,7 +730,8 @@ static void ProcessExtended(Aec* self, |
#endif |
int overhead_elements = |
(WebRtcAec_system_delay(self->aec) - target_delay) / PART_LEN; |
- WebRtcAec_MoveFarReadPtr(self->aec, overhead_elements); |
+ WebRtcAec_AdjustFarendBufferSizeAndSystemDelay(self->aec, |
+ overhead_elements); |
self->startup_phase = 0; |
} |
@@ -769,7 +770,9 @@ static void EstBufDelayNormal(Aec* aecpc) { |
// 3) Compensate for non-causality, if needed, by flushing one block. |
if (current_delay < PART_LEN) { |
- current_delay += WebRtcAec_MoveFarReadPtr(aecpc->aec, 1) * PART_LEN; |
+ current_delay += |
+ WebRtcAec_AdjustFarendBufferSizeAndSystemDelay(aecpc->aec, 1) * |
+ PART_LEN; |
} |
// We use -1 to signal an initialized state in the "extended" implementation; |
@@ -824,7 +827,8 @@ static void EstBufDelayExtended(Aec* self) { |
// 3) Compensate for non-causality, if needed, by flushing two blocks. |
if (current_delay < PART_LEN) { |
- current_delay += WebRtcAec_MoveFarReadPtr(self->aec, 2) * PART_LEN; |
+ current_delay += |
+ WebRtcAec_AdjustFarendBufferSizeAndSystemDelay(self->aec, 2) * PART_LEN; |
} |
if (self->filtDelay == -1) { |