From 3ebabf1c2983c99bfea9fe47373920d23dd99f55 Mon Sep 17 00:00:00 2001 From: sprang Date: Thu, 16 Feb 2017 07:35:22 -0800 Subject: [PATCH] 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} --- webrtc/media/engine/simulcast.cc | 6 ++++-- webrtc/media/engine/webrtcvideoengine2_unittest.cc | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) 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;