Index: webrtc/video/send_statistics_proxy.cc |
diff --git a/webrtc/video/send_statistics_proxy.cc b/webrtc/video/send_statistics_proxy.cc |
index 0d0d3f348cfc23231c00d0e815dea403da131d2a..1f12b2d640ab63d9887d9f087d04cc2ac6993006 100644 |
--- a/webrtc/video/send_statistics_proxy.cc |
+++ b/webrtc/video/send_statistics_proxy.cc |
@@ -17,6 +17,7 @@ |
#include "webrtc/base/checks.h" |
#include "webrtc/base/logging.h" |
+#include "webrtc/base/trace_event.h" |
#include "webrtc/modules/video_coding/include/video_codec_interface.h" |
#include "webrtc/system_wrappers/include/metrics.h" |
@@ -426,6 +427,8 @@ void SendStatisticsProxy::OnEncoderStatsUpdate(uint32_t framerate, |
rtc::CritScope lock(&crit_); |
stats_.encode_frame_rate = framerate; |
stats_.media_bitrate_bps = bitrate; |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.FrameRateSent", |
+ "frame_rate", framerate, "ssrc", rtp_config_.ssrcs[0]); |
} |
void SendStatisticsProxy::OnEncodedFrameTimeMeasured( |
@@ -436,6 +439,12 @@ void SendStatisticsProxy::OnEncodedFrameTimeMeasured( |
encode_time_.Apply(1.0f, encode_time_ms); |
stats_.avg_encode_time_ms = round(encode_time_.filtered()); |
stats_.encode_usage_percent = metrics.encode_usage_percent; |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.EncodeTimeInMs", |
+ "encode_time_ms", stats_.avg_encode_time_ms, |
+ "ssrc", rtp_config_.ssrcs[0]); |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.EncodeUsagePercent", |
+ "encode_usage_percent", stats_.encode_usage_percent, |
+ "ssrc", rtp_config_.ssrcs[0]); |
} |
void SendStatisticsProxy::OnSuspendChange(bool is_suspended) { |
@@ -643,6 +652,11 @@ void SendStatisticsProxy::OnSendEncodedImage( |
uma_container_->max_sent_height_per_timestamp_ = |
std::max(uma_container_->max_sent_height_per_timestamp_, |
static_cast<int>(encoded_image._encodedHeight)); |
+ |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.SentWidthInPixels", |
+ "frame_width", encoded_image._encodedWidth, "ssrc", ssrc); |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.SentHeightInPixels", |
+ "frame_height", encoded_image._encodedHeight, "ssrc", ssrc); |
} |
int SendStatisticsProxy::GetSendFrameRate() const { |
@@ -657,6 +671,10 @@ void SendStatisticsProxy::OnIncomingFrame(int width, int height) { |
uma_container_->input_width_counter_.Add(width); |
uma_container_->input_height_counter_.Add(height); |
uma_container_->cpu_limited_frame_counter_.Add(stats_.cpu_limited_resolution); |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.InputFrameRate", |
+ "frame_rate", round( |
+ uma_container_->input_frame_rate_tracker_.ComputeRate()), |
+ "ssrc", rtp_config_.ssrcs[0]); |
} |
void SendStatisticsProxy::SetResolutionRestrictionStats( |
@@ -680,6 +698,7 @@ void SendStatisticsProxy::OnCpuRestrictedResolutionChanged( |
rtc::CritScope lock(&crit_); |
stats_.cpu_limited_resolution = cpu_restricted_resolution; |
++stats_.number_of_cpu_adapt_changes; |
+ TRACE_EVENT_INSTANT0("webrtc_stats", "WebRTC.Video.AdaptationChanges"); |
} |
void SendStatisticsProxy::OnQualityRestrictedResolutionChanged( |
@@ -700,6 +719,13 @@ void SendStatisticsProxy::RtcpPacketTypesCounterUpdated( |
stats->rtcp_packet_type_counts = packet_counter; |
if (uma_container_->first_rtcp_stats_time_ms_ == -1) |
uma_container_->first_rtcp_stats_time_ms_ = clock_->TimeInMilliseconds(); |
+ |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.FirPacketsReceived", |
+ "fir_packets_received", packet_counter.fir_packets, "ssrc", ssrc); |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.NackPacketsReceived", |
+ "nack_packets_received", packet_counter.nack_packets, "ssrc", ssrc); |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.PliPacketsReceived", |
+ "pli_packets_received", packet_counter.pli_packets, "ssrc", ssrc); |
} |
void SendStatisticsProxy::StatisticsUpdated(const RtcpStatistics& statistics, |
@@ -711,6 +737,9 @@ void SendStatisticsProxy::StatisticsUpdated(const RtcpStatistics& statistics, |
stats->rtcp_stats = statistics; |
uma_container_->report_block_stats_.Store(statistics, 0, ssrc); |
+ |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.SentPacketsLost", |
+ "packets_lost", statistics.cumulative_lost, "ssrc", ssrc); |
} |
void SendStatisticsProxy::CNameChanged(const char* cname, uint32_t ssrc) {} |
@@ -745,6 +774,9 @@ void SendStatisticsProxy::DataCountersUpdated( |
} else { |
uma_container_->media_byte_counter_.Set(counters.MediaPayloadBytes(), ssrc); |
} |
+ |
+ TRACE_EVENT_INSTANT2("webrtc_stats", "WebRTC.Video.SentPackets", |
+ "packets_sent", counters.transmitted.packets, "ssrc", ssrc); |
} |
void SendStatisticsProxy::Notify(uint32_t total_bitrate_bps, |