Revert "Remove APM-internal usage of EchoControlMobile"
This reverts commit 2fbb83b16b4c2c1712cbe898ca3ba42d6da3e96f. Reason for revert: Speculative revert over failing Chromium bot: https://ci.chromium.org/p/chromium/builders/luci.chromium.webrtc.fyi/WebRTC%20Chromium%20FYI%20Android%20Tests%20%28dbg%29%20%28M%20Nexus5X%29/117 Original change's description: > Remove APM-internal usage of EchoControlMobile > > This is a sibling CL to a similar one for EchoCancellation: > https://webrtc-review.googlesource.com/c/src/+/97603 > > - EchoControlMobileImpl will no longer inherit EchoControlMobile. > - Removes usage of AudioProcessing::echo_control_mobile() inside most of > the audio processing module and unit tests. > > The CL breaks audioproc_f backwards compatibility: It can no longer > use all recorded settings (comfort noise, routing mode), but prints an > error message when unsupported settings are encountered. > > Tested: audioproc_f with .wav and aecdump inputs. > Bug: webrtc:9535 > Change-Id: I63c3c81bcaf44021315978e1a0f3e42173b988ce > Reviewed-on: https://webrtc-review.googlesource.com/101621 > Reviewed-by: Alex Loiko <aleloi@webrtc.org> > Commit-Queue: Sam Zackrisson <saza@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#24888} TBR=saza@webrtc.org,aleloi@webrtc.org Change-Id: I1f8a27ac291f2cdc16c8daa32e399b74d489dbb9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/102642 Reviewed-by: Sam Zackrisson <saza@webrtc.org> Commit-Queue: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24895}
This commit is contained in:

committed by
Commit Bot

parent
ee05e90297
commit
05a7004442
@ -943,6 +943,74 @@ TEST_F(ApmTest, DISABLED_EchoCancellationReportsCorrectDelays) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ApmTest, EchoControlMobile) {
|
||||
// Turn AECM on (and AEC off)
|
||||
Init(16000, 16000, 16000, 2, 2, 2, false);
|
||||
EXPECT_EQ(apm_->kNoError, apm_->echo_control_mobile()->Enable(true));
|
||||
EXPECT_TRUE(apm_->echo_control_mobile()->is_enabled());
|
||||
|
||||
// Toggle routing modes
|
||||
EchoControlMobile::RoutingMode mode[] = {
|
||||
EchoControlMobile::kQuietEarpieceOrHeadset,
|
||||
EchoControlMobile::kEarpiece,
|
||||
EchoControlMobile::kLoudEarpiece,
|
||||
EchoControlMobile::kSpeakerphone,
|
||||
EchoControlMobile::kLoudSpeakerphone,
|
||||
};
|
||||
for (size_t i = 0; i < arraysize(mode); i++) {
|
||||
EXPECT_EQ(apm_->kNoError,
|
||||
apm_->echo_control_mobile()->set_routing_mode(mode[i]));
|
||||
EXPECT_EQ(mode[i],
|
||||
apm_->echo_control_mobile()->routing_mode());
|
||||
}
|
||||
// Turn comfort noise off/on
|
||||
EXPECT_EQ(apm_->kNoError,
|
||||
apm_->echo_control_mobile()->enable_comfort_noise(false));
|
||||
EXPECT_FALSE(apm_->echo_control_mobile()->is_comfort_noise_enabled());
|
||||
EXPECT_EQ(apm_->kNoError,
|
||||
apm_->echo_control_mobile()->enable_comfort_noise(true));
|
||||
EXPECT_TRUE(apm_->echo_control_mobile()->is_comfort_noise_enabled());
|
||||
// Set and get echo path
|
||||
const size_t echo_path_size =
|
||||
apm_->echo_control_mobile()->echo_path_size_bytes();
|
||||
std::unique_ptr<char[]> echo_path_in(new char[echo_path_size]);
|
||||
std::unique_ptr<char[]> echo_path_out(new char[echo_path_size]);
|
||||
EXPECT_EQ(apm_->kNullPointerError,
|
||||
apm_->echo_control_mobile()->SetEchoPath(NULL, echo_path_size));
|
||||
EXPECT_EQ(apm_->kNullPointerError,
|
||||
apm_->echo_control_mobile()->GetEchoPath(NULL, echo_path_size));
|
||||
EXPECT_EQ(apm_->kBadParameterError,
|
||||
apm_->echo_control_mobile()->GetEchoPath(echo_path_out.get(), 1));
|
||||
EXPECT_EQ(apm_->kNoError,
|
||||
apm_->echo_control_mobile()->GetEchoPath(echo_path_out.get(),
|
||||
echo_path_size));
|
||||
for (size_t i = 0; i < echo_path_size; i++) {
|
||||
echo_path_in[i] = echo_path_out[i] + 1;
|
||||
}
|
||||
EXPECT_EQ(apm_->kBadParameterError,
|
||||
apm_->echo_control_mobile()->SetEchoPath(echo_path_in.get(), 1));
|
||||
EXPECT_EQ(apm_->kNoError,
|
||||
apm_->echo_control_mobile()->SetEchoPath(echo_path_in.get(),
|
||||
echo_path_size));
|
||||
EXPECT_EQ(apm_->kNoError,
|
||||
apm_->echo_control_mobile()->GetEchoPath(echo_path_out.get(),
|
||||
echo_path_size));
|
||||
for (size_t i = 0; i < echo_path_size; i++) {
|
||||
EXPECT_EQ(echo_path_in[i], echo_path_out[i]);
|
||||
}
|
||||
|
||||
// Process a few frames with NS in the default disabled state. This exercises
|
||||
// a different codepath than with it enabled.
|
||||
EXPECT_EQ(apm_->kNoError, apm_->set_stream_delay_ms(0));
|
||||
EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_));
|
||||
EXPECT_EQ(apm_->kNoError, apm_->set_stream_delay_ms(0));
|
||||
EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_));
|
||||
|
||||
// Turn AECM off
|
||||
EXPECT_EQ(apm_->kNoError, apm_->echo_control_mobile()->Enable(false));
|
||||
EXPECT_FALSE(apm_->echo_control_mobile()->is_enabled());
|
||||
}
|
||||
|
||||
TEST_F(ApmTest, GainControl) {
|
||||
// Testing gain modes
|
||||
EXPECT_EQ(apm_->kNoError,
|
||||
|
Reference in New Issue
Block a user