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

Unified Diff: webrtc/video/receive_statistics_proxy.cc

Issue 1228393008: Add resolution and fps stats to histograms. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 5 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') | webrtc/video/send_statistics_proxy.h » ('j') | 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 b5d80560f1f28d1e7decb5a5df09295bf3e01414..e028dab2e8d8540d56b2a21fd3bedf042488bc22 100644
--- a/webrtc/video/receive_statistics_proxy.cc
+++ b/webrtc/video/receive_statistics_proxy.cc
@@ -28,16 +28,24 @@ ReceiveStatisticsProxy::~ReceiveStatisticsProxy() {
UpdateHistograms();
}
-void ReceiveStatisticsProxy::UpdateHistograms() const {
- int fraction_lost;
- {
- rtc::CritScope lock(&crit_);
- fraction_lost = report_block_stats_.FractionLostInPercent();
- }
+void ReceiveStatisticsProxy::UpdateHistograms() {
+ int fraction_lost = report_block_stats_.FractionLostInPercent();
if (fraction_lost != -1) {
RTC_HISTOGRAM_PERCENTAGE("WebRTC.Video.ReceivedPacketsLostInPercent",
fraction_lost);
}
+
+ int render_fps = static_cast<int>(render_fps_tracker_total_.units_second());
+ if (render_fps > 0)
+ RTC_HISTOGRAM_COUNTS_100("WebRTC.Video.RenderFramesPerSecond", render_fps);
+
+ const int kMinRequiredSamples = 100;
+ int width = render_width_counter_.Avg(kMinRequiredSamples);
+ int height = render_height_counter_.Avg(kMinRequiredSamples);
+ if (width != -1) {
+ RTC_HISTOGRAM_COUNTS_10000("WebRTC.Video.ReceivedWidthInPixels", width);
+ RTC_HISTOGRAM_COUNTS_10000("WebRTC.Video.ReceivedHeightInPixels", height);
+ }
}
VideoReceiveStream::Stats ReceiveStatisticsProxy::GetStats() const {
@@ -117,12 +125,15 @@ void ReceiveStatisticsProxy::OnDecodedFrame() {
stats_.decode_frame_rate = decode_fps_estimator_.Rate(now);
}
-void ReceiveStatisticsProxy::OnRenderedFrame() {
+void ReceiveStatisticsProxy::OnRenderedFrame(int width, int height) {
uint64_t now = clock_->TimeInMilliseconds();
rtc::CritScope lock(&crit_);
renders_fps_estimator_.Update(1, now);
stats_.render_frame_rate = renders_fps_estimator_.Rate(now);
+ render_width_counter_.Add(width);
+ render_height_counter_.Add(height);
+ render_fps_tracker_total_.Update(1);
}
void ReceiveStatisticsProxy::OnReceiveRatesUpdated(uint32_t bitRate,
@@ -140,4 +151,15 @@ void ReceiveStatisticsProxy::OnDiscardedPacketsUpdated(int discarded_packets) {
stats_.discarded_packets = discarded_packets;
}
+void ReceiveStatisticsProxy::SampleCounter::Add(int sample) {
+ sum += sample;
+ ++num_samples;
+}
+
+int ReceiveStatisticsProxy::SampleCounter::Avg(int min_required_samples) const {
+ if (num_samples < min_required_samples || num_samples == 0)
+ return -1;
+ return sum / num_samples;
+}
+
} // namespace webrtc
« no previous file with comments | « webrtc/video/receive_statistics_proxy.h ('k') | webrtc/video/send_statistics_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698