From f040b2367d894345677192f924590309be8c72fc Mon Sep 17 00:00:00 2001 From: asapersson Date: Wed, 4 Nov 2015 00:59:03 -0800 Subject: [PATCH] Add histograms for send-side delay stats for a sent video stream: - "WebRTC.Video.SendSideDelayInMs" - "WebRTC.Video.SendSideDelayMaxInMs" BUG=chromium:512752 Review URL: https://codereview.webrtc.org/1405023014 Cr-Commit-Position: refs/heads/master@{#10502} --- webrtc/video/send_statistics_proxy.cc | 12 ++++++++++++ webrtc/video/send_statistics_proxy.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/webrtc/video/send_statistics_proxy.cc b/webrtc/video/send_statistics_proxy.cc index 5be9970583..916ffb3baa 100644 --- a/webrtc/video/send_statistics_proxy.cc +++ b/webrtc/video/send_statistics_proxy.cc @@ -121,6 +121,15 @@ void SendStatisticsProxy::UpdateHistograms() { RTC_HISTOGRAM_ENUMERATION( "WebRTC.Video.BandwidthLimitedResolutionsDisabled", num_disabled, 10); } + int delay_ms = delay_counter_.Avg(kMinRequiredSamples); + if (delay_ms != -1) + RTC_HISTOGRAM_COUNTS_100000("WebRTC.Video.SendSideDelayInMs", delay_ms); + + int max_delay_ms = max_delay_counter_.Avg(kMinRequiredSamples); + if (max_delay_ms != -1) { + RTC_HISTOGRAM_COUNTS_100000( + "WebRTC.Video.SendSideDelayMaxInMs", max_delay_ms); + } } void SendStatisticsProxy::OnOutgoingRate(uint32_t framerate, uint32_t bitrate) { @@ -337,6 +346,9 @@ void SendStatisticsProxy::SendSideDelayUpdated(int avg_delay_ms, return; stats->avg_delay_ms = avg_delay_ms; stats->max_delay_ms = max_delay_ms; + + delay_counter_.Add(avg_delay_ms); + max_delay_counter_.Add(max_delay_ms); } void SendStatisticsProxy::SampleCounter::Add(int sample) { diff --git a/webrtc/video/send_statistics_proxy.h b/webrtc/video/send_statistics_proxy.h index 26ea09c4c4..2939a671d1 100644 --- a/webrtc/video/send_statistics_proxy.h +++ b/webrtc/video/send_statistics_proxy.h @@ -142,6 +142,8 @@ class SendStatisticsProxy : public CpuOveruseMetricsObserver, SampleCounter quality_downscales_counter_ GUARDED_BY(crit_); BoolSampleCounter bw_limited_frame_counter_ GUARDED_BY(crit_); SampleCounter bw_resolutions_disabled_counter_ GUARDED_BY(crit_); + SampleCounter delay_counter_ GUARDED_BY(crit_); + SampleCounter max_delay_counter_ GUARDED_BY(crit_); }; } // namespace webrtc