| Index: webrtc/video/receive_statistics_proxy.cc
|
| diff --git a/webrtc/video/receive_statistics_proxy.cc b/webrtc/video/receive_statistics_proxy.cc
|
| index b6063a80afbb1719b2c013a0881a52910da3a38d..536edc4a04742a1c5cda4114cbb0dfa52f0912e2 100644
|
| --- a/webrtc/video/receive_statistics_proxy.cc
|
| +++ b/webrtc/video/receive_statistics_proxy.cc
|
| @@ -10,6 +10,9 @@
|
|
|
| #include "webrtc/video/receive_statistics_proxy.h"
|
|
|
| +#include <cmath>
|
| +
|
| +#include "webrtc/base/checks.h"
|
| #include "webrtc/system_wrappers/interface/clock.h"
|
| #include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
|
| #include "webrtc/system_wrappers/interface/metrics.h"
|
| @@ -21,7 +24,8 @@ ReceiveStatisticsProxy::ReceiveStatisticsProxy(uint32_t ssrc, Clock* clock)
|
| // 1000ms window, scale 1000 for ms to s.
|
| decode_fps_estimator_(1000, 1000),
|
| renders_fps_estimator_(1000, 1000),
|
| - render_fps_tracker_(100u, 10u) {
|
| + render_fps_tracker_(100u, 10u),
|
| + render_pixel_tracker_(100u, 10u) {
|
| stats_.ssrc = ssrc;
|
| }
|
|
|
| @@ -35,12 +39,14 @@ void ReceiveStatisticsProxy::UpdateHistograms() {
|
| RTC_HISTOGRAM_PERCENTAGE("WebRTC.Video.ReceivedPacketsLostInPercent",
|
| fraction_lost);
|
| }
|
| -
|
| - int render_fps = static_cast<int>(render_fps_tracker_.ComputeTotalRate());
|
| - if (render_fps > 0)
|
| - RTC_HISTOGRAM_COUNTS_100("WebRTC.Video.RenderFramesPerSecond", render_fps);
|
| -
|
| const int kMinRequiredSamples = 200;
|
| + int samples = static_cast<int>(render_fps_tracker_.TotalSampleCount());
|
| + if (samples > kMinRequiredSamples) {
|
| + RTC_HISTOGRAM_COUNTS_100("WebRTC.Video.RenderFramesPerSecond",
|
| + static_cast<int>(render_fps_tracker_.ComputeTotalRate()));
|
| + RTC_HISTOGRAM_COUNTS_100000("WebRTC.Video.RenderSqrtPixelsPerSecond",
|
| + static_cast<int>(render_pixel_tracker_.ComputeTotalRate()));
|
| + }
|
| int width = render_width_counter_.Avg(kMinRequiredSamples);
|
| int height = render_height_counter_.Avg(kMinRequiredSamples);
|
| if (width != -1) {
|
| @@ -138,6 +144,8 @@ void ReceiveStatisticsProxy::OnDecodedFrame() {
|
| }
|
|
|
| void ReceiveStatisticsProxy::OnRenderedFrame(int width, int height) {
|
| + RTC_DCHECK_GT(width, 0);
|
| + RTC_DCHECK_GT(height, 0);
|
| uint64_t now = clock_->TimeInMilliseconds();
|
|
|
| rtc::CritScope lock(&crit_);
|
| @@ -146,6 +154,7 @@ void ReceiveStatisticsProxy::OnRenderedFrame(int width, int height) {
|
| render_width_counter_.Add(width);
|
| render_height_counter_.Add(height);
|
| render_fps_tracker_.AddSamples(1);
|
| + render_pixel_tracker_.AddSamples(sqrt(width * height));
|
| }
|
|
|
| void ReceiveStatisticsProxy::OnReceiveRatesUpdated(uint32_t bitRate,
|
|
|