| Index: webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc
|
| diff --git a/webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc b/webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc
|
| index 8baa45606f5474c598ada890a2a4fb2a276e0540..afe429d1d289f970c4747cb4934c8cc46906f47e 100644
|
| --- a/webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc
|
| +++ b/webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc
|
| @@ -28,6 +28,7 @@
|
| namespace webrtc {
|
| namespace {
|
|
|
| +using testing::Return;
|
| using testing::StrictMock;
|
| using testing::_;
|
|
|
| @@ -82,16 +83,16 @@ class CaptureTransportVerificationProcessor : public BlockProcessor {
|
| explicit CaptureTransportVerificationProcessor(size_t num_bands) {}
|
| ~CaptureTransportVerificationProcessor() override = default;
|
|
|
| - void ProcessCapture(bool known_echo_path_change,
|
| + void ProcessCapture(bool level_change,
|
| bool saturated_microphone_signal,
|
| std::vector<std::vector<float>>* capture_block) override {
|
| }
|
|
|
| bool BufferRender(std::vector<std::vector<float>>* block) override {
|
| - return false;
|
| + return true;
|
| }
|
|
|
| - void ReportEchoLeakage(bool leakage_detected) override {}
|
| + void UpdateEchoLeakageStatus(bool leakage_detected) override {}
|
|
|
| private:
|
| RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(CaptureTransportVerificationProcessor);
|
| @@ -104,7 +105,7 @@ class RenderTransportVerificationProcessor : public BlockProcessor {
|
| explicit RenderTransportVerificationProcessor(size_t num_bands) {}
|
| ~RenderTransportVerificationProcessor() override = default;
|
|
|
| - void ProcessCapture(bool known_echo_path_change,
|
| + void ProcessCapture(bool level_change,
|
| bool saturated_microphone_signal,
|
| std::vector<std::vector<float>>* capture_block) override {
|
| std::vector<std::vector<float>> render_block =
|
| @@ -115,10 +116,10 @@ class RenderTransportVerificationProcessor : public BlockProcessor {
|
|
|
| bool BufferRender(std::vector<std::vector<float>>* block) override {
|
| received_render_blocks_.push_back(*block);
|
| - return false;
|
| + return true;
|
| }
|
|
|
| - void ReportEchoLeakage(bool leakage_detected) override {}
|
| + void UpdateEchoLeakageStatus(bool leakage_detected) override {}
|
|
|
| private:
|
| std::deque<std::vector<std::vector<float>>> received_render_blocks_;
|
| @@ -217,8 +218,9 @@ class EchoCanceller3Tester {
|
| block_processor_mock(
|
| new StrictMock<webrtc::test::MockBlockProcessor>());
|
| EXPECT_CALL(*block_processor_mock, BufferRender(_))
|
| - .Times(expected_num_block_to_process);
|
| - EXPECT_CALL(*block_processor_mock, ReportEchoLeakage(_)).Times(0);
|
| + .Times(expected_num_block_to_process)
|
| + .WillRepeatedly(Return(true));
|
| + EXPECT_CALL(*block_processor_mock, UpdateEchoLeakageStatus(_)).Times(0);
|
|
|
| switch (echo_path_change_test_variant) {
|
| case EchoPathChangeTestVariant::kNone:
|
| @@ -294,24 +296,28 @@ class EchoCanceller3Tester {
|
| block_processor_mock(
|
| new StrictMock<webrtc::test::MockBlockProcessor>());
|
| EXPECT_CALL(*block_processor_mock, BufferRender(_))
|
| - .Times(expected_num_block_to_process);
|
| + .Times(expected_num_block_to_process)
|
| + .WillRepeatedly(Return(true));
|
| EXPECT_CALL(*block_processor_mock, ProcessCapture(_, _, _))
|
| .Times(expected_num_block_to_process);
|
|
|
| switch (leakage_report_variant) {
|
| case EchoLeakageTestVariant::kNone:
|
| - EXPECT_CALL(*block_processor_mock, ReportEchoLeakage(_)).Times(0);
|
| + EXPECT_CALL(*block_processor_mock, UpdateEchoLeakageStatus(_)).Times(0);
|
| break;
|
| case EchoLeakageTestVariant::kFalseSticky:
|
| - EXPECT_CALL(*block_processor_mock, ReportEchoLeakage(false)).Times(1);
|
| + EXPECT_CALL(*block_processor_mock, UpdateEchoLeakageStatus(false))
|
| + .Times(1);
|
| break;
|
| case EchoLeakageTestVariant::kTrueSticky:
|
| - EXPECT_CALL(*block_processor_mock, ReportEchoLeakage(true)).Times(1);
|
| + EXPECT_CALL(*block_processor_mock, UpdateEchoLeakageStatus(true))
|
| + .Times(1);
|
| break;
|
| case EchoLeakageTestVariant::kTrueNonSticky: {
|
| testing::InSequence s;
|
| - EXPECT_CALL(*block_processor_mock, ReportEchoLeakage(true)).Times(1);
|
| - EXPECT_CALL(*block_processor_mock, ReportEchoLeakage(false))
|
| + EXPECT_CALL(*block_processor_mock, UpdateEchoLeakageStatus(true))
|
| + .Times(1);
|
| + EXPECT_CALL(*block_processor_mock, UpdateEchoLeakageStatus(false))
|
| .Times(kNumFramesToProcess - 1);
|
| } break;
|
| }
|
| @@ -326,19 +332,19 @@ class EchoCanceller3Tester {
|
| break;
|
| case EchoLeakageTestVariant::kFalseSticky:
|
| if (frame_index == 0) {
|
| - aec3.ReportEchoLeakage(false);
|
| + aec3.UpdateEchoLeakageStatus(false);
|
| }
|
| break;
|
| case EchoLeakageTestVariant::kTrueSticky:
|
| if (frame_index == 0) {
|
| - aec3.ReportEchoLeakage(true);
|
| + aec3.UpdateEchoLeakageStatus(true);
|
| }
|
| break;
|
| case EchoLeakageTestVariant::kTrueNonSticky:
|
| if (frame_index == 0) {
|
| - aec3.ReportEchoLeakage(true);
|
| + aec3.UpdateEchoLeakageStatus(true);
|
| } else {
|
| - aec3.ReportEchoLeakage(false);
|
| + aec3.UpdateEchoLeakageStatus(false);
|
| }
|
| break;
|
| }
|
| @@ -381,8 +387,9 @@ class EchoCanceller3Tester {
|
| block_processor_mock(
|
| new StrictMock<webrtc::test::MockBlockProcessor>());
|
| EXPECT_CALL(*block_processor_mock, BufferRender(_))
|
| - .Times(expected_num_block_to_process);
|
| - EXPECT_CALL(*block_processor_mock, ReportEchoLeakage(_)).Times(0);
|
| + .Times(expected_num_block_to_process)
|
| + .WillRepeatedly(Return(true));
|
| + EXPECT_CALL(*block_processor_mock, UpdateEchoLeakageStatus(_)).Times(0);
|
|
|
| switch (saturation_variant) {
|
| case SaturationTestVariant::kNone:
|
|
|