diff --git a/webrtc/media/engine/simulcast.cc b/webrtc/media/engine/simulcast.cc index 62587f682d..8378ca342d 100644 --- a/webrtc/media/engine/simulcast.cc +++ b/webrtc/media/engine/simulcast.cc @@ -230,8 +230,10 @@ std::vector GetSimulcastConfig(size_t max_streams, 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 f60af340aa..a65265f2d2 100644 --- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc +++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc @@ -4124,6 +4124,13 @@ class WebRtcVideoChannel2SimulcastTest : public testing::Test { 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;