Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Unified Diff: webrtc/video/receive_statistics_proxy.cc

Issue 2966733002: Add received interframe delay UMA metrics (Closed)
Patch Set: Implement Sprang@ comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/video/receive_statistics_proxy.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/receive_statistics_proxy.cc
diff --git a/webrtc/video/receive_statistics_proxy.cc b/webrtc/video/receive_statistics_proxy.cc
index 61b2ad13987aae3afb41f7aed304480b07e9b81f..2af19125c24ea62e8a5e5df136d5943744b4fc07 100644
--- a/webrtc/video/receive_statistics_proxy.cc
+++ b/webrtc/video/receive_statistics_proxy.cc
@@ -77,6 +77,8 @@ ReceiveStatisticsProxy::ReceiveStatisticsProxy(
total_byte_tracker_(100, 10u), // bucket_interval_ms, bucket_count
e2e_delay_max_ms_video_(-1),
e2e_delay_max_ms_screenshare_(-1),
+ interframe_delay_max_ms_video_(-1),
+ interframe_delay_max_ms_screenshare_(-1),
freq_offset_counter_(clock, nullptr, kFreqOffsetProcessIntervalMs),
first_report_block_time_ms_(-1),
avg_rtt_ms_(0),
@@ -210,6 +212,36 @@ void ReceiveStatisticsProxy::UpdateHistograms() {
e2e_delay_max_ms_screenshare);
}
+ int interframe_delay_ms_screenshare =
+ interframe_delay_counter_screenshare_.Avg(kMinRequiredSamples);
+ if (interframe_delay_ms_screenshare != -1) {
+ RTC_HISTOGRAM_COUNTS_10000("WebRTC.Video.Screenshare.InterframeDelayInMs",
+ interframe_delay_ms_screenshare);
+ }
+
+ int interframe_delay_ms_video =
+ interframe_delay_counter_video_.Avg(kMinRequiredSamples);
+ if (interframe_delay_ms_video != -1) {
+ RTC_HISTOGRAM_COUNTS_10000("WebRTC.Video.InterframeDelayInMs",
+ interframe_delay_ms_video);
+ }
+
+ int interframe_delay_max_ms_screenshare =
+ interframe_delay_max_ms_screenshare_;
+ if (interframe_delay_max_ms_screenshare != -1) {
+ RTC_HISTOGRAM_COUNTS_10000(
+ "WebRTC.Video.Screenshare.InterframeDelayMaxInMs",
+ interframe_delay_ms_screenshare);
+ }
+
+ int interframe_delay_max_ms_video = interframe_delay_max_ms_video_;
+ if (interframe_delay_max_ms_video != -1) {
+ RTC_HISTOGRAM_COUNTS_10000(
+ "WebRTC.Video.InterframeDelayMaxInMs",
+ interframe_delay_ms_video);
+ }
+
+
StreamDataCounters rtp = stats_.rtp_stats;
StreamDataCounters rtx;
for (auto it : rtx_stats_)
@@ -516,6 +548,22 @@ void ReceiveStatisticsProxy::OnDecodedFrame(rtc::Optional<uint8_t> qp,
}
last_content_type_ = content_type;
decode_fps_estimator_.Update(1, now);
+ if (last_decoded_frame_time_ms_) {
+ int64_t interframe_delay_ms = now - *last_decoded_frame_time_ms_;
+ RTC_DCHECK_GE(interframe_delay_ms, 0);
+ if (last_content_type_ == VideoContentType::SCREENSHARE) {
+ interframe_delay_counter_screenshare_.Add(interframe_delay_ms);
+ if (interframe_delay_max_ms_screenshare_ < interframe_delay_ms) {
+ interframe_delay_max_ms_screenshare_ = interframe_delay_ms;
+ }
+ } else {
+ interframe_delay_counter_video_.Add(interframe_delay_ms);
+ if (interframe_delay_max_ms_video_ < interframe_delay_ms) {
+ interframe_delay_max_ms_video_ = interframe_delay_ms;
+ }
+ }
+ }
+ last_decoded_frame_time_ms_.emplace(now);
}
void ReceiveStatisticsProxy::OnRenderedFrame(const VideoFrame& frame) {
« no previous file with comments | « webrtc/video/receive_statistics_proxy.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698