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

Unified Diff: webrtc/api/rtpsender.cc

Issue 2579993003: Add support for content hints to VideoTrack. (Closed)
Patch Set: rename test + add comments Created 4 years 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
« no previous file with comments | « webrtc/api/rtpsender.h ('k') | webrtc/api/rtpsenderreceiver_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/api/rtpsender.cc
diff --git a/webrtc/api/rtpsender.cc b/webrtc/api/rtpsender.cc
index 2e01d961d43696ef878c6336c9573f849cd4a885..61f53b4d801ef187ee36ca03bec97048acb87ac3 100644
--- a/webrtc/api/rtpsender.cc
+++ b/webrtc/api/rtpsender.cc
@@ -243,7 +243,8 @@ VideoRtpSender::VideoRtpSender(VideoTrackInterface* track,
stream_id_(stream_id),
channel_(channel),
track_(track),
- cached_track_enabled_(track->enabled()) {
+ cached_track_enabled_(track->enabled()),
+ cached_track_content_hint_(track->content_hint()) {
track_->RegisterObserver(this);
}
@@ -253,7 +254,8 @@ VideoRtpSender::VideoRtpSender(VideoTrackInterface* track,
stream_id_(rtc::CreateRandomUuid()),
channel_(channel),
track_(track),
- cached_track_enabled_(track->enabled()) {
+ cached_track_enabled_(track->enabled()),
+ cached_track_content_hint_(track->content_hint()) {
track_->RegisterObserver(this);
}
@@ -269,8 +271,10 @@ VideoRtpSender::~VideoRtpSender() {
void VideoRtpSender::OnChanged() {
TRACE_EVENT0("webrtc", "VideoRtpSender::OnChanged");
RTC_DCHECK(!stopped_);
- if (cached_track_enabled_ != track_->enabled()) {
+ if (cached_track_enabled_ != track_->enabled() ||
+ cached_track_content_hint_ != track_->content_hint()) {
cached_track_enabled_ = track_->enabled();
+ cached_track_content_hint_ = track_->content_hint();
if (can_send_track()) {
SetVideoSend();
}
@@ -303,6 +307,7 @@ bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) {
track_ = video_track;
if (track_) {
cached_track_enabled_ = track_->enabled();
+ cached_track_content_hint_ = track_->content_hint();
track_->RegisterObserver(this);
}
@@ -372,6 +377,16 @@ void VideoRtpSender::SetVideoSend() {
options.is_screencast = rtc::Optional<bool>(source->is_screencast());
options.video_noise_reduction = source->needs_denoising();
}
+ switch (cached_track_content_hint_) {
+ case VideoTrackInterface::ContentHint::kNone:
+ break;
+ case VideoTrackInterface::ContentHint::kFluid:
+ options.is_screencast = rtc::Optional<bool>(false);
+ break;
+ case VideoTrackInterface::ContentHint::kDetailed:
+ options.is_screencast = rtc::Optional<bool>(true);
+ break;
+ }
if (!channel_->SetVideoSend(ssrc_, track_->enabled(), &options, track_)) {
RTC_DCHECK(false);
}
« no previous file with comments | « webrtc/api/rtpsender.h ('k') | webrtc/api/rtpsenderreceiver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698