Make echo metrics optional

This makes it optional for an echo detector to report metrics through
the getStats interface.

Bug: webrtc:11539
Change-Id: I1fef93b7bf534637b69c16971d38709b3e849a08
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174100
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31146}
This commit is contained in:
Ivo Creusen
2020-04-29 14:34:48 +02:00
committed by Commit Bot
parent 6a92e0ebba
commit bb826c9142
2 changed files with 10 additions and 6 deletions

View File

@ -884,8 +884,8 @@ class EchoDetector : public rtc::RefCountInterface {
std::vector<float>* packed_buffer);
struct Metrics {
double echo_likelihood;
double echo_likelihood_recent_max;
absl::optional<double> echo_likelihood;
absl::optional<double> echo_likelihood_recent_max;
};
// Collect current metrics from the echo detector.

View File

@ -41,7 +41,8 @@ TEST(ResidualEchoDetectorTests, Echo) {
}
// We expect to detect echo with near certain likelihood.
auto ed_metrics = echo_detector->GetMetrics();
EXPECT_NEAR(1.f, ed_metrics.echo_likelihood, 0.01f);
ASSERT_TRUE(ed_metrics.echo_likelihood);
EXPECT_NEAR(1.f, ed_metrics.echo_likelihood.value(), 0.01f);
}
TEST(ResidualEchoDetectorTests, NoEcho) {
@ -63,7 +64,8 @@ TEST(ResidualEchoDetectorTests, NoEcho) {
}
// We expect to not detect any echo.
auto ed_metrics = echo_detector->GetMetrics();
EXPECT_NEAR(0.f, ed_metrics.echo_likelihood, 0.01f);
ASSERT_TRUE(ed_metrics.echo_likelihood);
EXPECT_NEAR(0.f, ed_metrics.echo_likelihood.value(), 0.01f);
}
TEST(ResidualEchoDetectorTests, EchoWithRenderClockDrift) {
@ -100,7 +102,8 @@ TEST(ResidualEchoDetectorTests, EchoWithRenderClockDrift) {
// possible to make this decision right away. For this reason we only expect
// an echo likelihood of 75% in this test.
auto ed_metrics = echo_detector->GetMetrics();
EXPECT_GT(ed_metrics.echo_likelihood, 0.75f);
ASSERT_TRUE(ed_metrics.echo_likelihood);
EXPECT_GT(ed_metrics.echo_likelihood.value(), 0.75f);
}
TEST(ResidualEchoDetectorTests, EchoWithCaptureClockDrift) {
@ -132,7 +135,8 @@ TEST(ResidualEchoDetectorTests, EchoWithCaptureClockDrift) {
}
// We expect to detect echo with near certain likelihood.
auto ed_metrics = echo_detector->GetMetrics();
EXPECT_NEAR(1.f, ed_metrics.echo_likelihood, 0.01f);
ASSERT_TRUE(ed_metrics.echo_likelihood);
EXPECT_NEAR(1.f, ed_metrics.echo_likelihood.value(), 0.01f);
}
} // namespace webrtc