From c19ab07134aff75025f88c02a3356313078bb281 Mon Sep 17 00:00:00 2001 From: Harald Alvestrand Date: Mon, 18 Jun 2018 08:53:10 +0200 Subject: [PATCH] Add support for content-hint value "text" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This involves treating it just like "detailed", for now. At a later stage we might want to modify codec parameters for it. Bug: chromium:852701 Change-Id: I24678e1f7711bf03ca22273afaaf338e9e3ba1fe Reviewed-on: https://webrtc-review.googlesource.com/83582 Reviewed-by: Fredrik Solenberg Reviewed-by: Peter Boström Commit-Queue: Harald Alvestrand Cr-Commit-Position: refs/heads/master@{#23701} --- api/mediastreaminterface.h | 4 ++-- pc/rtpsender.cc | 1 + pc/rtpsenderreceiver_unittest.cc | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/api/mediastreaminterface.h b/api/mediastreaminterface.h index 38ae3fc6a3..416073d9f9 100644 --- a/api/mediastreaminterface.h +++ b/api/mediastreaminterface.h @@ -155,8 +155,8 @@ class VideoTrackInterface : public MediaStreamTrackInterface, public: // Video track content hint, used to override the source is_screencast // property. - // See https://crbug.com/653531 and https://github.com/WICG/mst-content-hint. - enum class ContentHint { kNone, kFluid, kDetailed }; + // See https://crbug.com/653531 and https://w3c.github.io/mst-content-hint. + enum class ContentHint { kNone, kFluid, kDetailed, kText }; // Register a video sink for this track. Used to connect the track to the // underlying video engine. diff --git a/pc/rtpsender.cc b/pc/rtpsender.cc index f3bf970fa9..13e0e1d7c8 100644 --- a/pc/rtpsender.cc +++ b/pc/rtpsender.cc @@ -549,6 +549,7 @@ void VideoRtpSender::SetVideoSend() { options.is_screencast = false; break; case VideoTrackInterface::ContentHint::kDetailed: + case VideoTrackInterface::ContentHint::kText: options.is_screencast = true; break; } diff --git a/pc/rtpsenderreceiver_unittest.cc b/pc/rtpsenderreceiver_unittest.cc index 8151ad6bd5..985fa06c7e 100644 --- a/pc/rtpsenderreceiver_unittest.cc +++ b/pc/rtpsenderreceiver_unittest.cc @@ -1084,6 +1084,9 @@ TEST_F(RtpSenderReceiverTest, PropagatesVideoTrackContentHint) { // Setting fluid should remain in non-screencast mode (its default). video_track_->set_content_hint(VideoTrackInterface::ContentHint::kFluid); EXPECT_EQ(false, video_media_channel_->options().is_screencast); + // Setting text should have the same effect as Detailed + video_track_->set_content_hint(VideoTrackInterface::ContentHint::kText); + EXPECT_EQ(true, video_media_channel_->options().is_screencast); DestroyVideoRtpSender(); } @@ -1110,6 +1113,9 @@ TEST_F(RtpSenderReceiverTest, // Setting detailed should still remain in screencast mode (its default). video_track_->set_content_hint(VideoTrackInterface::ContentHint::kDetailed); EXPECT_EQ(true, video_media_channel_->options().is_screencast); + // Setting text should have the same effect as Detailed + video_track_->set_content_hint(VideoTrackInterface::ContentHint::kText); + EXPECT_EQ(true, video_media_channel_->options().is_screencast); DestroyVideoRtpSender(); }