From 50864a8f4b911cce51aec715985a929cad86c688 Mon Sep 17 00:00:00 2001 From: ilnik Date: Wed, 6 Sep 2017 12:32:35 -0700 Subject: [PATCH] Add reporting of googContentType via GetStats on send side BUG=webrtc:8174 Review-Url: https://codereview.webrtc.org/3005193002 Cr-Commit-Position: refs/heads/master@{#19719} --- webrtc/call/video_send_stream.h | 2 ++ webrtc/media/base/mediachannel.h | 4 +++- webrtc/media/engine/webrtcvideoengine.cc | 2 ++ webrtc/pc/statscollector.cc | 3 +++ webrtc/video/send_statistics_proxy.cc | 4 ++++ 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/webrtc/call/video_send_stream.h b/webrtc/call/video_send_stream.h index a458203ed5..6dd13ab756 100644 --- a/webrtc/call/video_send_stream.h +++ b/webrtc/call/video_send_stream.h @@ -82,6 +82,8 @@ class VideoSendStream { int number_of_cpu_adapt_changes = 0; int number_of_quality_adapt_changes = 0; std::map substreams; + webrtc::VideoContentType content_type = + webrtc::VideoContentType::UNSPECIFIED; }; struct Config { diff --git a/webrtc/media/base/mediachannel.h b/webrtc/media/base/mediachannel.h index ef245a133a..cea85e6c3d 100644 --- a/webrtc/media/base/mediachannel.h +++ b/webrtc/media/base/mediachannel.h @@ -731,7 +731,8 @@ struct VideoSenderInfo : public MediaSenderInfo { adapt_changes(0), avg_encode_ms(0), encode_usage_percent(0), - frames_encoded(0) {} + frames_encoded(0), + content_type(webrtc::VideoContentType::UNSPECIFIED) {} std::vector ssrc_groups; // TODO(hbos): Move this to |VideoMediaInfo::send_codecs|? @@ -752,6 +753,7 @@ struct VideoSenderInfo : public MediaSenderInfo { int encode_usage_percent; uint32_t frames_encoded; rtc::Optional qp_sum; + webrtc::VideoContentType content_type; }; struct VideoReceiverInfo : public MediaReceiverInfo { diff --git a/webrtc/media/engine/webrtcvideoengine.cc b/webrtc/media/engine/webrtcvideoengine.cc index 9b6c71cd26..a613dc6de6 100644 --- a/webrtc/media/engine/webrtcvideoengine.cc +++ b/webrtc/media/engine/webrtcvideoengine.cc @@ -1976,6 +1976,8 @@ VideoSenderInfo WebRtcVideoChannel::WebRtcVideoSendStream::GetVideoSenderInfo( info.nominal_bitrate = stats.media_bitrate_bps; info.preferred_bitrate = stats.preferred_media_bitrate_bps; + info.content_type = stats.content_type; + info.send_frame_width = 0; info.send_frame_height = 0; for (std::map::iterator it = diff --git a/webrtc/pc/statscollector.cc b/webrtc/pc/statscollector.cc index 0458e82cc8..08cf464568 100644 --- a/webrtc/pc/statscollector.cc +++ b/webrtc/pc/statscollector.cc @@ -310,6 +310,9 @@ void ExtractStats(const cricket::VideoSenderInfo& info, StatsReport* report) { for (const auto& i : ints) report->AddInt(i.name, i.value); report->AddString(StatsReport::kStatsValueNameMediaType, "video"); + report->AddString( + StatsReport::kStatsValueNameContentType, + webrtc::videocontenttypehelpers::ToString(info.content_type)); } void ExtractStats(const cricket::BandwidthEstimationInfo& info, diff --git a/webrtc/video/send_statistics_proxy.cc b/webrtc/video/send_statistics_proxy.cc index bab495df80..00dd7bf7d1 100644 --- a/webrtc/video/send_statistics_proxy.cc +++ b/webrtc/video/send_statistics_proxy.cc @@ -539,6 +539,10 @@ VideoSendStream::Stats SendStatisticsProxy::GetStats() { PurgeOldStats(); stats_.input_frame_rate = round(uma_container_->input_frame_rate_tracker_.ComputeRate()); + stats_.content_type = + content_type_ == VideoEncoderConfig::ContentType::kRealtimeVideo + ? VideoContentType::UNSPECIFIED + : VideoContentType::SCREENSHARE; return stats_; }