Index: webrtc/video/send_statistics_proxy.cc |
diff --git a/webrtc/video/send_statistics_proxy.cc b/webrtc/video/send_statistics_proxy.cc |
index 83399a9013df898de83f90347b4d1e11c1b0514a..4e430a6b1db4d444ed83b7ca71b2fc34e4794325 100644 |
--- a/webrtc/video/send_statistics_proxy.cc |
+++ b/webrtc/video/send_statistics_proxy.cc |
@@ -31,12 +31,15 @@ enum HistogramCodecType { |
kVideoMax = 64, |
}; |
+const char* kRealtimePrefix = "WebRTC.Video."; |
+const char* kScreenPrefix = "WebRTC.Video.Screenshare."; |
+ |
const char* GetUmaPrefix(VideoEncoderConfig::ContentType content_type) { |
switch (content_type) { |
case VideoEncoderConfig::ContentType::kRealtimeVideo: |
- return "WebRTC.Video."; |
+ return kRealtimePrefix; |
case VideoEncoderConfig::ContentType::kScreen: |
- return "WebRTC.Video.Screenshare."; |
+ return kScreenPrefix; |
} |
RTC_NOTREACHED(); |
return nullptr; |
@@ -93,68 +96,75 @@ SendStatisticsProxy::UmaSamplesContainer::~UmaSamplesContainer() { |
} |
void SendStatisticsProxy::UmaSamplesContainer::UpdateHistograms() { |
+ RTC_DCHECK(uma_prefix_ == kRealtimePrefix || uma_prefix_ == kScreenPrefix); |
+ const size_t kIndex = uma_prefix_ == kScreenPrefix ? 1 : 0; |
const int kMinRequiredSamples = 200; |
int in_width = input_width_counter_.Avg(kMinRequiredSamples); |
int in_height = input_height_counter_.Avg(kMinRequiredSamples); |
int in_fps = round(input_frame_rate_tracker_.ComputeTotalRate()); |
if (in_width != -1) { |
- RTC_HISTOGRAM_COUNTS_SPARSE_10000(uma_prefix_ + "InputWidthInPixels", |
- in_width); |
- RTC_HISTOGRAM_COUNTS_SPARSE_10000(uma_prefix_ + "InputHeightInPixels", |
- in_height); |
- RTC_HISTOGRAM_COUNTS_SPARSE_100(uma_prefix_ + "InputFramesPerSecond", |
- in_fps); |
+ RTC_HISTOGRAMS_COUNTS_10000(kIndex, uma_prefix_ + "InputWidthInPixels", |
+ in_width); |
+ RTC_HISTOGRAMS_COUNTS_10000(kIndex, uma_prefix_ + "InputHeightInPixels", |
+ in_height); |
+ RTC_HISTOGRAMS_COUNTS_100(kIndex, uma_prefix_ + "InputFramesPerSecond", |
+ in_fps); |
} |
int sent_width = sent_width_counter_.Avg(kMinRequiredSamples); |
int sent_height = sent_height_counter_.Avg(kMinRequiredSamples); |
int sent_fps = round(sent_frame_rate_tracker_.ComputeTotalRate()); |
if (sent_width != -1) { |
- RTC_HISTOGRAM_COUNTS_SPARSE_10000(uma_prefix_ + "SentWidthInPixels", |
- sent_width); |
- RTC_HISTOGRAM_COUNTS_SPARSE_10000(uma_prefix_ + "SentHeightInPixels", |
- sent_height); |
- RTC_HISTOGRAM_COUNTS_SPARSE_100(uma_prefix_ + "SentFramesPerSecond", |
- sent_fps); |
+ RTC_HISTOGRAMS_COUNTS_10000(kIndex, uma_prefix_ + "SentWidthInPixels", |
+ sent_width); |
+ RTC_HISTOGRAMS_COUNTS_10000(kIndex, uma_prefix_ + "SentHeightInPixels", |
+ sent_height); |
+ RTC_HISTOGRAMS_COUNTS_100(kIndex, uma_prefix_ + "SentFramesPerSecond", |
+ sent_fps); |
} |
int encode_ms = encode_time_counter_.Avg(kMinRequiredSamples); |
- if (encode_ms != -1) |
- RTC_HISTOGRAM_COUNTS_SPARSE_1000(uma_prefix_ + "EncodeTimeInMs", encode_ms); |
- |
+ if (encode_ms != -1) { |
+ RTC_HISTOGRAMS_COUNTS_1000(kIndex, uma_prefix_ + "EncodeTimeInMs", |
+ encode_ms); |
+ } |
int key_frames_permille = key_frame_counter_.Permille(kMinRequiredSamples); |
if (key_frames_permille != -1) { |
- RTC_HISTOGRAM_COUNTS_SPARSE_1000(uma_prefix_ + "KeyFramesSentInPermille", |
- key_frames_permille); |
+ RTC_HISTOGRAMS_COUNTS_1000(kIndex, uma_prefix_ + "KeyFramesSentInPermille", |
+ key_frames_permille); |
} |
int quality_limited = |
quality_limited_frame_counter_.Percent(kMinRequiredSamples); |
if (quality_limited != -1) { |
- RTC_HISTOGRAM_PERCENTAGE_SPARSE( |
- uma_prefix_ + "QualityLimitedResolutionInPercent", quality_limited); |
+ RTC_HISTOGRAMS_PERCENTAGE(kIndex, |
+ uma_prefix_ + "QualityLimitedResolutionInPercent", |
+ quality_limited); |
} |
int downscales = quality_downscales_counter_.Avg(kMinRequiredSamples); |
if (downscales != -1) { |
- RTC_HISTOGRAM_ENUMERATION_SPARSE( |
- uma_prefix_ + "QualityLimitedResolutionDownscales", downscales, 20); |
+ RTC_HISTOGRAMS_ENUMERATION( |
+ kIndex, uma_prefix_ + "QualityLimitedResolutionDownscales", downscales, |
+ 20); |
} |
int bw_limited = bw_limited_frame_counter_.Percent(kMinRequiredSamples); |
if (bw_limited != -1) { |
- RTC_HISTOGRAM_PERCENTAGE_SPARSE( |
- uma_prefix_ + "BandwidthLimitedResolutionInPercent", bw_limited); |
+ RTC_HISTOGRAMS_PERCENTAGE( |
+ kIndex, uma_prefix_ + "BandwidthLimitedResolutionInPercent", |
+ bw_limited); |
} |
int num_disabled = bw_resolutions_disabled_counter_.Avg(kMinRequiredSamples); |
if (num_disabled != -1) { |
- RTC_HISTOGRAM_ENUMERATION_SPARSE( |
- uma_prefix_ + "BandwidthLimitedResolutionsDisabled", num_disabled, 10); |
+ RTC_HISTOGRAMS_ENUMERATION( |
+ kIndex, uma_prefix_ + "BandwidthLimitedResolutionsDisabled", |
+ num_disabled, 10); |
} |
int delay_ms = delay_counter_.Avg(kMinRequiredSamples); |
if (delay_ms != -1) |
- RTC_HISTOGRAM_COUNTS_SPARSE_100000(uma_prefix_ + "SendSideDelayInMs", |
- delay_ms); |
+ RTC_HISTOGRAMS_COUNTS_100000(kIndex, uma_prefix_ + "SendSideDelayInMs", |
+ delay_ms); |
int max_delay_ms = max_delay_counter_.Avg(kMinRequiredSamples); |
if (max_delay_ms != -1) { |
- RTC_HISTOGRAM_COUNTS_SPARSE_100000(uma_prefix_ + "SendSideDelayMaxInMs", |
- max_delay_ms); |
+ RTC_HISTOGRAMS_COUNTS_100000(kIndex, uma_prefix_ + "SendSideDelayMaxInMs", |
+ max_delay_ms); |
} |
} |