Add support for content-hint value "text"
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 <solenberg@webrtc.org>
Reviewed-by: Peter Boström <pbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23701}
diff --git a/api/mediastreaminterface.h b/api/mediastreaminterface.h
index 38ae3fc..416073d 100644
--- a/api/mediastreaminterface.h
+++ b/api/mediastreaminterface.h
@@ -155,8 +155,8 @@
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 f3bf970..13e0e1d 100644
--- a/pc/rtpsender.cc
+++ b/pc/rtpsender.cc
@@ -549,6 +549,7 @@
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 8151ad6..985fa06 100644
--- a/pc/rtpsenderreceiver_unittest.cc
+++ b/pc/rtpsenderreceiver_unittest.cc
@@ -1084,6 +1084,9 @@
// 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 @@
// 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();
}