| 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..7371111066559f1e83860c36a875e65b3c22cb7b 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 int 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);
|
| }
|
| }
|
|
|
|
|