Index: webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc |
diff --git a/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc b/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc |
index 474174c2ee915d00eefd28d1574a077146c6d4cf..32b20a4950444232a04d55f25cb00c10d92a2c18 100644 |
--- a/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc |
+++ b/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc |
@@ -308,7 +308,8 @@ TEST(AdaptiveFirFilter, FilterAndAdapt) { |
AecState aec_state(0.f); |
RenderSignalAnalyzer render_signal_analyzer; |
std::vector<float> e(kBlockSize, 0.f); |
- std::array<float, kFftLength> s; |
+ std::array<float, kFftLength> s_scratch; |
+ std::array<float, kBlockSize> s; |
FftData S; |
FftData G; |
FftData E; |
@@ -348,20 +349,24 @@ TEST(AdaptiveFirFilter, FilterAndAdapt) { |
render_signal_analyzer.Update(render_buffer, aec_state.FilterDelay()); |
filter.Filter(render_buffer, &S); |
- fft.Ifft(S, &s); |
- std::transform(y.begin(), y.end(), s.begin() + kFftLengthBy2, e.begin(), |
+ fft.Ifft(S, &s_scratch); |
+ std::transform(y.begin(), y.end(), s_scratch.begin() + kFftLengthBy2, |
+ e.begin(), |
[&](float a, float b) { return a - b * kScale; }); |
std::for_each(e.begin(), e.end(), |
[](float& a) { a = rtc::SafeClamp(a, -32768.f, 32767.f); }); |
fft.ZeroPaddedFft(e, &E); |
+ for (size_t k = 0; k < kBlockSize; ++k) { |
+ s[k] = kScale * s_scratch[k + kFftLengthBy2]; |
+ } |
gain.Compute(render_buffer, render_signal_analyzer, E, |
filter.SizePartitions(), false, &G); |
filter.Adapt(render_buffer, G); |
aec_state.HandleEchoPathChange(EchoPathVariability(false, false)); |
aec_state.Update(filter.FilterFrequencyResponse(), |
- rtc::Optional<size_t>(), render_buffer, E2_main, Y2, |
- x[0], false); |
+ filter.FilterImpulseResponse(), rtc::Optional<size_t>(), |
+ render_buffer, E2_main, Y2, x[0], s, false); |
} |
// Verify that the filter is able to perform well. |
EXPECT_LT(1000 * std::inner_product(e.begin(), e.end(), e.begin(), 0.f), |