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:
@ -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.
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user