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

Unified Diff: webrtc/media/engine/webrtcvideoengine2.cc

Issue 2133073002: Add periodic logging of video stats. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: use rtc::TimeMillis Created 4 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
Index: webrtc/media/engine/webrtcvideoengine2.cc
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
index 5da8e33e1e0d784ab4e5b879a1b19cb5cc2fbeb8..212f347ba40535212780a23048f756e1e9b7c9df 100644
--- a/webrtc/media/engine/webrtcvideoengine2.cc
+++ b/webrtc/media/engine/webrtcvideoengine2.cc
@@ -342,6 +342,9 @@ static const int kDefaultRtcpReceiverReportSsrc = 1;
// Down grade resolution at most 2 times for CPU reasons.
static const int kMaxCpuDowngrades = 2;
+// Minimum time interval for logging stats.
+static const int64_t kStatsLogIntervalMs = 8000;
+
// Adds |codec| to |list|, and also adds an RTX codec if |codec|'s name is
// recognized.
// TODO(deadbeef): Should we add RTX codecs for external codecs whose names we
@@ -676,7 +679,8 @@ WebRtcVideoChannel2::WebRtcVideoChannel2(
external_encoder_factory_(external_encoder_factory),
external_decoder_factory_(external_decoder_factory),
default_send_options_(options),
- red_disabled_by_remote_side_(false) {
+ red_disabled_by_remote_side_(false),
+ last_stats_log_ms_(-1) {
RTC_DCHECK(thread_checker_.CalledOnValidThread());
rtcp_receiver_report_ssrc_ = kDefaultRtcpReceiverReportSsrc;
@@ -1354,6 +1358,13 @@ bool WebRtcVideoChannel2::GetStats(VideoMediaInfo* info) {
info->senders[i].rtt_ms = stats.rtt_ms;
}
}
+ // Log stats periodically.
+ int64_t now_ms = rtc::TimeMillis();
+ if (last_stats_log_ms_ == -1 ||
+ rtc::TimeDiff(now_ms, last_stats_log_ms_) > kStatsLogIntervalMs) {
+ last_stats_log_ms_ = now_ms;
+ LOG(LS_INFO) << stats.ToString(now_ms);
+ }
return true;
}
@@ -1554,6 +1565,7 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::WebRtcVideoSendStream(
call_(call),
cpu_restricted_counter_(0),
number_of_cpu_adapt_changes_(0),
+ last_stats_log_ms_(-1),
source_(nullptr),
external_encoder_factory_(external_encoder_factory),
stream_(nullptr),
@@ -2123,6 +2135,15 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::GetVideoSenderInfo() {
stats = stream_->GetStats();
}
+
+ // Log stats periodically.
+ int64_t now_ms = rtc::TimeMillis();
+ if (last_stats_log_ms_ == -1 ||
+ rtc::TimeDiff(now_ms, last_stats_log_ms_) > kStatsLogIntervalMs) {
+ last_stats_log_ms_ = now_ms;
+ LOG(LS_INFO) << stats.ToString(now_ms);
+ }
+
info.adapt_changes = number_of_cpu_adapt_changes_;
info.adapt_reason =
cpu_restricted_counter_ <= 0 ? ADAPTREASON_NONE : ADAPTREASON_CPU;
@@ -2237,6 +2258,7 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::WebRtcVideoReceiveStream(
config_(std::move(config)),
red_disabled_by_remote_side_(red_disabled_by_remote_side),
external_decoder_factory_(external_decoder_factory),
+ last_stats_log_ms_(-1),
sink_(NULL),
last_width_(-1),
last_height_(-1),
@@ -2536,6 +2558,14 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::GetVideoReceiverInfo() {
info.plis_sent = stats.rtcp_packet_type_counts.pli_packets;
info.nacks_sent = stats.rtcp_packet_type_counts.nack_packets;
+ // Log stats periodically.
+ int64_t now_ms = rtc::TimeMillis();
+ if (last_stats_log_ms_ == -1 ||
+ rtc::TimeDiff(now_ms, last_stats_log_ms_) > kStatsLogIntervalMs) {
+ last_stats_log_ms_ = now_ms;
+ LOG(LS_INFO) << stats.ToString(now_ms);
+ }
+
return info;
}

Powered by Google App Engine
This is Rietveld 408576698