Add jitter buffer delay metric to pc level tests

Bug: webrtc:11701
Change-Id: I45db3d179150dbad87e1b85a91d9d11feed1cb89
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179065
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31699}
This commit is contained in:
Andrey Logvin 2020-07-10 10:29:27 +00:00 committed by Commit Bot
parent 265931ea3c
commit 76ad2e0c05
2 changed files with 12 additions and 0 deletions

View File

@ -47,6 +47,8 @@ void DefaultAudioQualityAnalyzer::OnStatsReports(
stat->inserted_samples_for_deceleration.ValueOrDefault(0ul);
sample.silent_concealed_samples =
stat->silent_concealed_samples.ValueOrDefault(0ul);
sample.jitter_buffer_delay =
TimeDelta::Seconds(stat->jitter_buffer_delay.ValueOrDefault(0.));
sample.jitter_buffer_target_delay =
TimeDelta::Seconds(stat->jitter_buffer_target_delay.ValueOrDefault(0.));
sample.jitter_buffer_emitted_count =
@ -90,9 +92,14 @@ void DefaultAudioQualityAnalyzer::OnStatsReports(
sample.jitter_buffer_emitted_count -
prev_sample.jitter_buffer_emitted_count;
if (jitter_buffer_emitted_count_diff > 0) {
TimeDelta jitter_buffer_delay_diff =
sample.jitter_buffer_delay - prev_sample.jitter_buffer_delay;
TimeDelta jitter_buffer_target_delay_diff =
sample.jitter_buffer_target_delay -
prev_sample.jitter_buffer_target_delay;
audio_stream_stats.average_jitter_buffer_delay_ms.AddSample(
jitter_buffer_delay_diff.ms<double>() /
jitter_buffer_emitted_count_diff);
audio_stream_stats.preferred_buffer_size_ms.AddSample(
jitter_buffer_target_delay_diff.ms<double>() /
jitter_buffer_emitted_count_diff);
@ -120,6 +127,9 @@ void DefaultAudioQualityAnalyzer::Stop() {
ReportResult("speech_expand_rate", item.first,
item.second.speech_expand_rate, "unitless",
ImproveDirection::kSmallerIsBetter);
ReportResult("average_jitter_buffer_delay_ms", item.first,
item.second.average_jitter_buffer_delay_ms, "ms",
ImproveDirection::kNone);
ReportResult("preferred_buffer_size_ms", item.first,
item.second.preferred_buffer_size_ms, "ms",
ImproveDirection::kNone);

View File

@ -30,6 +30,7 @@ struct AudioStreamStats {
SamplesStatsCounter accelerate_rate;
SamplesStatsCounter preemptive_rate;
SamplesStatsCounter speech_expand_rate;
SamplesStatsCounter average_jitter_buffer_delay_ms;
SamplesStatsCounter preferred_buffer_size_ms;
};
@ -52,6 +53,7 @@ class DefaultAudioQualityAnalyzer : public AudioQualityAnalyzerInterface {
uint64_t removed_samples_for_acceleration = 0;
uint64_t inserted_samples_for_deceleration = 0;
uint64_t silent_concealed_samples = 0;
TimeDelta jitter_buffer_delay = TimeDelta::Zero();
TimeDelta jitter_buffer_target_delay = TimeDelta::Zero();
uint64_t jitter_buffer_emitted_count = 0;
};