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; };