Base ApmTest.Process on AudioProcessingStats.output_rms_dbfs
This replaces the current usage of AudioProcessing::level_estimator() in that test. The unit tests that specifically test the level_estimator API are left in place, until the level_estimator API itself is removed. Bug: webrtc:9947 Change-Id: I73301c1478d2c9763bb49598a692142229102876 Reviewed-on: https://webrtc-review.googlesource.com/c/114550 Commit-Queue: Sam Zackrisson <saza@webrtc.org> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26049}
This commit is contained in:
parent
358fba1f9d
commit
11b8703201
@ -195,6 +195,7 @@ void EnableAllAPComponents(AudioProcessing* ap) {
|
||||
#endif
|
||||
|
||||
apm_config.high_pass_filter.enabled = true;
|
||||
apm_config.level_estimation.enabled = true;
|
||||
ap->ApplyConfig(apm_config);
|
||||
|
||||
EXPECT_NOERR(ap->level_estimator()->Enable(true));
|
||||
@ -1276,6 +1277,7 @@ TEST_F(ApmTest, AllProcessingDisabledByDefault) {
|
||||
AudioProcessing::Config config = apm_->GetConfig();
|
||||
EXPECT_FALSE(config.echo_canceller.enabled);
|
||||
EXPECT_FALSE(config.high_pass_filter.enabled);
|
||||
EXPECT_FALSE(config.level_estimation.enabled);
|
||||
EXPECT_FALSE(apm_->gain_control()->is_enabled());
|
||||
EXPECT_FALSE(apm_->level_estimator()->is_enabled());
|
||||
EXPECT_FALSE(apm_->noise_suppression()->is_enabled());
|
||||
@ -1835,6 +1837,7 @@ TEST_F(ApmTest, Process) {
|
||||
int analog_level_average = 0;
|
||||
int max_output_average = 0;
|
||||
float ns_speech_prob_average = 0.0f;
|
||||
float rms_dbfs_average = 0.0f;
|
||||
#if defined(WEBRTC_AUDIOPROC_FLOAT_PROFILE)
|
||||
int stats_index = 0;
|
||||
#endif
|
||||
@ -1869,6 +1872,9 @@ TEST_F(ApmTest, Process) {
|
||||
}
|
||||
|
||||
ns_speech_prob_average += apm_->noise_suppression()->speech_probability();
|
||||
AudioProcessingStats stats =
|
||||
apm_->GetStatistics(/*has_remote_tracks=*/false);
|
||||
rms_dbfs_average += *stats.output_rms_dbfs;
|
||||
|
||||
size_t frame_size = frame_->samples_per_channel_ * frame_->num_channels_;
|
||||
size_t write_count = fwrite(frame_->data(),
|
||||
@ -1904,11 +1910,6 @@ TEST_F(ApmTest, Process) {
|
||||
const int32_t delay_standard_deviation_ms =
|
||||
stats.delay_standard_deviation_ms.value_or(-1.0);
|
||||
|
||||
// Get RMS.
|
||||
int rms_level = apm_->level_estimator()->RMS();
|
||||
EXPECT_LE(0, rms_level);
|
||||
EXPECT_GE(127, rms_level);
|
||||
|
||||
if (!write_ref_data) {
|
||||
const audioproc::Test::EchoMetrics& reference =
|
||||
test->echo_metrics(stats_index);
|
||||
@ -1929,8 +1930,6 @@ TEST_F(ApmTest, Process) {
|
||||
EXPECT_EQ(reference_delay.median(), delay_median_ms);
|
||||
EXPECT_EQ(reference_delay.std(), delay_standard_deviation_ms);
|
||||
|
||||
EXPECT_EQ(test->rms_level(stats_index), rms_level);
|
||||
|
||||
++stats_index;
|
||||
} else {
|
||||
audioproc::Test::EchoMetrics* message_echo = test->add_echo_metrics();
|
||||
@ -1946,8 +1945,6 @@ TEST_F(ApmTest, Process) {
|
||||
test->add_delay_metrics();
|
||||
message_delay->set_median(delay_median_ms);
|
||||
message_delay->set_std(delay_standard_deviation_ms);
|
||||
|
||||
test->add_rms_level(rms_level);
|
||||
}
|
||||
}
|
||||
#endif // defined(WEBRTC_AUDIOPROC_FLOAT_PROFILE).
|
||||
@ -1955,6 +1952,7 @@ TEST_F(ApmTest, Process) {
|
||||
max_output_average /= frame_count;
|
||||
analog_level_average /= frame_count;
|
||||
ns_speech_prob_average /= frame_count;
|
||||
rms_dbfs_average /= frame_count;
|
||||
|
||||
if (!write_ref_data) {
|
||||
const int kIntNear = 1;
|
||||
@ -1989,6 +1987,7 @@ TEST_F(ApmTest, Process) {
|
||||
EXPECT_NEAR(test->ns_speech_probability_average(),
|
||||
ns_speech_prob_average,
|
||||
kFloatNear);
|
||||
EXPECT_NEAR(test->rms_dbfs_average(), rms_dbfs_average, kFloatNear);
|
||||
#endif
|
||||
} else {
|
||||
test->set_has_voice_count(has_voice_count);
|
||||
@ -2001,6 +2000,7 @@ TEST_F(ApmTest, Process) {
|
||||
EXPECT_LE(0.0f, ns_speech_prob_average);
|
||||
EXPECT_GE(1.0f, ns_speech_prob_average);
|
||||
test->set_ns_speech_probability_average(ns_speech_prob_average);
|
||||
test->set_rms_dbfs_average(rms_dbfs_average);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ message Test {
|
||||
|
||||
repeated DelayMetrics delay_metrics = 12;
|
||||
|
||||
repeated int32 rms_level = 13;
|
||||
optional float rms_dbfs_average = 13;
|
||||
|
||||
optional float ns_speech_probability_average = 14;
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
82e9600c82f03c21e9feb33f82792d8d17908a5f
|
||||
f3f7efa512900b06a30af8e3c92aa7863fbc96f8
|
||||
@ -1 +1 @@
|
||||
3f2550064d3e71c6428c3759dcce18bddec36690
|
||||
cc82c345f1e7ef17b12c2da41a0a9f73b09ca8f6
|
||||
Loading…
x
Reference in New Issue
Block a user