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

Unified Diff: webrtc/video/send_statistics_proxy.cc

Issue 1870043002: Add histogram stats for average QP per frame for VP9 (for sent video streams): (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 4 years, 8 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/video/send_statistics_proxy.cc
diff --git a/webrtc/video/send_statistics_proxy.cc b/webrtc/video/send_statistics_proxy.cc
index 86694c930e71fda3e866876e319a170ab8c0f3a3..6951fda01bbbd5520a622cd8fca3150c5be0570c 100644
--- a/webrtc/video/send_statistics_proxy.cc
+++ b/webrtc/video/send_statistics_proxy.cc
@@ -194,26 +194,46 @@ void SendStatisticsProxy::UmaSamplesContainer::UpdateHistograms(
}
for (const auto& it : qp_counters_) {
- int qp = it.second.vp8.Avg(kMinRequiredSamples);
- if (qp != -1) {
+ int qp_vp8 = it.second.vp8.Avg(kMinRequiredSamples);
+ if (qp_vp8 != -1) {
int spatial_idx = it.first;
if (spatial_idx == -1) {
RTC_LOGGED_HISTOGRAMS_COUNTS_200(kIndex, uma_prefix_ + "Encoded.Qp.Vp8",
- qp);
+ qp_vp8);
} else if (spatial_idx == 0) {
- RTC_LOGGED_HISTOGRAMS_COUNTS_200(kIndex,
- uma_prefix_ + "Encoded.Qp.Vp8.S0", qp);
+ RTC_LOGGED_HISTOGRAMS_COUNTS_200(
+ kIndex, uma_prefix_ + "Encoded.Qp.Vp8.S0", qp_vp8);
} else if (spatial_idx == 1) {
- RTC_LOGGED_HISTOGRAMS_COUNTS_200(kIndex,
- uma_prefix_ + "Encoded.Qp.Vp8.S1", qp);
+ RTC_LOGGED_HISTOGRAMS_COUNTS_200(
+ kIndex, uma_prefix_ + "Encoded.Qp.Vp8.S1", qp_vp8);
} else if (spatial_idx == 2) {
- RTC_LOGGED_HISTOGRAMS_COUNTS_200(kIndex,
- uma_prefix_ + "Encoded.Qp.Vp8.S2", qp);
+ RTC_LOGGED_HISTOGRAMS_COUNTS_200(
+ kIndex, uma_prefix_ + "Encoded.Qp.Vp8.S2", qp_vp8);
} else {
LOG(LS_WARNING) << "QP stats not recorded for VP8 spatial idx "
<< spatial_idx;
}
}
+ int qp_vp9 = it.second.vp9.Avg(kMinRequiredSamples);
+ if (qp_vp9 != -1) {
+ int spatial_idx = it.first;
+ if (spatial_idx == -1) {
+ RTC_LOGGED_HISTOGRAMS_COUNTS_500(kIndex, uma_prefix_ + "Encoded.Qp.Vp9",
+ qp_vp9);
+ } else if (spatial_idx == 0) {
+ RTC_LOGGED_HISTOGRAMS_COUNTS_500(
+ kIndex, uma_prefix_ + "Encoded.Qp.Vp9.S0", qp_vp9);
+ } else if (spatial_idx == 1) {
+ RTC_LOGGED_HISTOGRAMS_COUNTS_500(
+ kIndex, uma_prefix_ + "Encoded.Qp.Vp9.S1", qp_vp9);
+ } else if (spatial_idx == 2) {
+ RTC_LOGGED_HISTOGRAMS_COUNTS_500(
+ kIndex, uma_prefix_ + "Encoded.Qp.Vp9.S2", qp_vp9);
+ } else {
+ LOG(LS_WARNING) << "QP stats not recorded for VP9 spatial layer "
+ << spatial_idx;
+ }
+ }
}
if (first_rtcp_stats_time_ms_ != -1) {
@@ -449,11 +469,19 @@ void SendStatisticsProxy::OnSendEncodedImage(
}
}
- if (encoded_image.qp_ != -1 && rtp_video_header &&
- rtp_video_header->codec == kRtpVideoVp8) {
- int spatial_idx =
- (config_.rtp.ssrcs.size() == 1) ? -1 : static_cast<int>(simulcast_idx);
- uma_container_->qp_counters_[spatial_idx].vp8.Add(encoded_image.qp_);
+ if (encoded_image.qp_ != -1 && rtp_video_header) {
+ if (rtp_video_header->codec == kRtpVideoVp8) {
+ int spatial_idx = (config_.rtp.ssrcs.size() == 1)
+ ? -1
+ : static_cast<int>(simulcast_idx);
+ uma_container_->qp_counters_[spatial_idx].vp8.Add(encoded_image.qp_);
+ } else if (rtp_video_header->codec == kRtpVideoVp9) {
+ int spatial_idx =
+ (rtp_video_header->codecHeader.VP9.num_spatial_layers == 1)
+ ? -1
+ : rtp_video_header->codecHeader.VP9.spatial_idx;
+ uma_container_->qp_counters_[spatial_idx].vp9.Add(encoded_image.qp_);
+ }
}
// TODO(asapersson): This is incorrect if simulcast layers are encoded on

Powered by Google App Engine
This is Rietveld 408576698