| Index: webrtc/video/send_statistics_proxy.cc
|
| diff --git a/webrtc/video/send_statistics_proxy.cc b/webrtc/video/send_statistics_proxy.cc
|
| index 2aea976ae7d3288e7c0c9a71fcd7a95ba7270c3f..00edd065ced1afc3cd19db5bffed604c89f6a02f 100644
|
| --- a/webrtc/video/send_statistics_proxy.cc
|
| +++ b/webrtc/video/send_statistics_proxy.cc
|
| @@ -70,6 +70,17 @@ void SendStatisticsProxy::UpdateHistograms() {
|
| RTC_HISTOGRAM_COUNTS_1000("WebRTC.Video.KeyFramesSentInPermille",
|
| key_frames_permille);
|
| }
|
| + int quality_limited =
|
| + quality_limited_frame_counter_.Percent(kMinRequiredSamples);
|
| + if (quality_limited != -1) {
|
| + RTC_HISTOGRAM_PERCENTAGE("WebRTC.Video.QualityLimitedResolutionInPercent",
|
| + quality_limited);
|
| + }
|
| + int downscales = quality_downscales_counter_.Avg(kMinRequiredSamples);
|
| + if (downscales != -1) {
|
| + RTC_HISTOGRAM_ENUMERATION("WebRTC.Video.QualityLimitedResolutionDownscales",
|
| + downscales, 20);
|
| + }
|
| }
|
|
|
| void SendStatisticsProxy::OnOutgoingRate(uint32_t framerate, uint32_t bitrate) {
|
| @@ -170,6 +181,16 @@ void SendStatisticsProxy::OnSendEncodedImage(
|
|
|
| key_frame_counter_.Add(encoded_image._frameType == kKeyFrame);
|
|
|
| + if (encoded_image.adapt_reason_.quality_resolution_downscales != -1) {
|
| + bool downscaled =
|
| + encoded_image.adapt_reason_.quality_resolution_downscales > 0;
|
| + quality_limited_frame_counter_.Add(downscaled);
|
| + if (downscaled) {
|
| + quality_downscales_counter_.Add(
|
| + encoded_image.adapt_reason_.quality_resolution_downscales);
|
| + }
|
| + }
|
| +
|
| // TODO(asapersson): This is incorrect if simulcast layers are encoded on
|
| // different threads and there is no guarantee that one frame of all layers
|
| // are encoded before the next start.
|
|
|