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

Unified Diff: webrtc/modules/video_coding/main/source/media_optimization.cc

Issue 1169543005: Add sent framerates to histogram stats: (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 6 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
Index: webrtc/modules/video_coding/main/source/media_optimization.cc
diff --git a/webrtc/modules/video_coding/main/source/media_optimization.cc b/webrtc/modules/video_coding/main/source/media_optimization.cc
index 524a7b2b70a080279f21b8ae79b4b56471d460e9..f23755a194f59223827beb8119cfd37ea9f2ef9e 100644
--- a/webrtc/modules/video_coding/main/source/media_optimization.cc
+++ b/webrtc/modules/video_coding/main/source/media_optimization.cc
@@ -15,6 +15,7 @@
#include "webrtc/modules/video_coding/utility/include/frame_dropper.h"
#include "webrtc/system_wrappers/interface/clock.h"
#include "webrtc/system_wrappers/interface/logging.h"
+#include "webrtc/system_wrappers/interface/metrics.h"
namespace webrtc {
namespace media_optimization {
@@ -104,15 +105,35 @@ MediaOptimization::MediaOptimization(Clock* clock)
suspension_enabled_(false),
video_suspended_(false),
suspension_threshold_bps_(0),
- suspension_window_bps_(0) {
+ suspension_window_bps_(0),
+ sent_frames_(0),
+ first_sent_frame_time_ms_(-1) {
memset(send_statistics_, 0, sizeof(send_statistics_));
memset(incoming_frame_times_, -1, sizeof(incoming_frame_times_));
}
MediaOptimization::~MediaOptimization(void) {
+ UpdateHistograms();
loss_prot_logic_->Release();
}
+void MediaOptimization::UpdateHistograms() {
+ int fps = -1;
+ {
+ CriticalSectionScoped lock(crit_sect_.get());
+ if (sent_frames_ > 0) {
+ int64_t elapsed_sec =
+ (clock_->TimeInMilliseconds() - first_sent_frame_time_ms_) / 1000;
+ if (elapsed_sec > metrics::kMinRunTimeInSeconds) {
+ fps = sent_frames_ / elapsed_sec;
+ }
+ }
+ }
+ if (fps != -1) {
+ RTC_HISTOGRAM_COUNTS_100("WebRTC.Video.SentFramesPerSecond", fps);
pbos-webrtc 2015/06/09 12:49:01 Can you move these histograms to SendStatisticsPro
+ }
+}
+
void MediaOptimization::Reset() {
CriticalSectionScoped lock(crit_sect_.get());
SetEncodingDataInternal(
@@ -381,6 +402,9 @@ int32_t MediaOptimization::UpdateWithEncodedData(
} else {
encoded_frame_samples_.push_back(
EncodedFrameSample(encoded_length, timestamp, now_ms));
+ ++sent_frames_;
+ if (first_sent_frame_time_ms_ == -1)
+ first_sent_frame_time_ms_ = now_ms;
}
UpdateSentBitrate(now_ms);
UpdateSentFramerate();

Powered by Google App Engine
This is Rietveld 408576698