Screen content simulcast layers should not be downscaled.
Fix config so, size isn't downscaled, add unit test coverage.
BUG=webrtc:7171, webrtc:4172
Review-Url: https://codereview.webrtc.org/2692343007
Cr-Commit-Position: refs/heads/master@{#16648}
diff --git a/webrtc/media/engine/simulcast.cc b/webrtc/media/engine/simulcast.cc
index 62587f6..8378ca3 100644
--- a/webrtc/media/engine/simulcast.cc
+++ b/webrtc/media/engine/simulcast.cc
@@ -230,8 +230,10 @@
streams[s].max_framerate = max_framerate;
}
- width /= 2;
- height /= 2;
+ if (!is_screencast) {
+ width /= 2;
+ height /= 2;
+ }
if (s == 0)
break;
}
diff --git a/webrtc/media/engine/webrtcvideoengine2_unittest.cc b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
index f60af34..a65265f 100644
--- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc
+++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
@@ -4124,6 +4124,13 @@
expected_streams = GetSimulcastConfig(
num_configured_streams, capture_width, capture_height, 0,
kDefaultQpMax, kDefaultVideoMaxFramerate, screenshare);
+ if (screenshare) {
+ for (const webrtc::VideoStream& stream : expected_streams) {
+ // Never scale screen content.
+ EXPECT_EQ(stream.width, capture_width);
+ EXPECT_EQ(stream.height, capture_height);
+ }
+ }
} else {
webrtc::VideoStream stream;
stream.width = capture_width;