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}
This commit is contained in:

committed by
Commit Bot

parent
d9664b8249
commit
2fbb83b16b
@ -943,74 +943,6 @@ 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