From 76ad2e0c055e9ac22ab9d62f0f8b7b7f3e86460d Mon Sep 17 00:00:00 2001 From: Andrey Logvin Date: Fri, 10 Jul 2020 10:29:27 +0000 Subject: [PATCH] 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 Reviewed-by: Artem Titov Commit-Queue: Andrey Logvin Cr-Commit-Position: refs/heads/master@{#31699} --- .../analyzer/audio/default_audio_quality_analyzer.cc | 10 ++++++++++ .../analyzer/audio/default_audio_quality_analyzer.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc index 11fded290d..8830436b09 100644 --- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc +++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc @@ -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() / + jitter_buffer_emitted_count_diff); audio_stream_stats.preferred_buffer_size_ms.AddSample( jitter_buffer_target_delay_diff.ms() / 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); diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h index c842fd2790..dd6280ecfe 100644 --- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h +++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h @@ -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; };