| 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);
|
| }
|
|
|