| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 "", | 147 "", |
| 148 "Field trials control experimental feature code which can be forced. " | 148 "Field trials control experimental feature code which can be forced. " |
| 149 "E.g. running with --force_fieldtrials=WebRTC-FooFeature/Enable/" | 149 "E.g. running with --force_fieldtrials=WebRTC-FooFeature/Enable/" |
| 150 " will assign the group Enable to field trial WebRTC-FooFeature. Multiple " | 150 " will assign the group Enable to field trial WebRTC-FooFeature. Multiple " |
| 151 "trials are separated by \"/\""); | 151 "trials are separated by \"/\""); |
| 152 } // namespace flags | 152 } // namespace flags |
| 153 | 153 |
| 154 class ScreenshareLoopback : public test::Loopback { | 154 class ScreenshareLoopback : public test::Loopback { |
| 155 public: | 155 public: |
| 156 explicit ScreenshareLoopback(const Config& config) : Loopback(config) { | 156 explicit ScreenshareLoopback(const Config& config) : Loopback(config) { |
| 157 CHECK_GE(config.num_temporal_layers, 1u); | 157 RTC_CHECK_GE(config.num_temporal_layers, 1u); |
| 158 CHECK_LE(config.num_temporal_layers, 2u); | 158 RTC_CHECK_LE(config.num_temporal_layers, 2u); |
| 159 CHECK_GE(config.num_spatial_layers, 1u); | 159 RTC_CHECK_GE(config.num_spatial_layers, 1u); |
| 160 CHECK_LE(config.num_spatial_layers, 5u); | 160 RTC_CHECK_LE(config.num_spatial_layers, 5u); |
| 161 CHECK(config.num_spatial_layers == 1 || config.codec == "VP9"); | 161 RTC_CHECK(config.num_spatial_layers == 1 || config.codec == "VP9"); |
| 162 CHECK(config.num_spatial_layers == 1 || config.num_temporal_layers == 1); | 162 RTC_CHECK(config.num_spatial_layers == 1 || |
| 163 CHECK_LT(config.tl_discard_threshold, config.num_temporal_layers); | 163 config.num_temporal_layers == 1); |
| 164 CHECK_LT(config.sl_discard_threshold, config.num_spatial_layers); | 164 RTC_CHECK_LT(config.tl_discard_threshold, config.num_temporal_layers); |
| 165 RTC_CHECK_LT(config.sl_discard_threshold, config.num_spatial_layers); |
| 165 | 166 |
| 166 vp8_settings_ = VideoEncoder::GetDefaultVp8Settings(); | 167 vp8_settings_ = VideoEncoder::GetDefaultVp8Settings(); |
| 167 vp8_settings_.denoisingOn = false; | 168 vp8_settings_.denoisingOn = false; |
| 168 vp8_settings_.frameDroppingOn = false; | 169 vp8_settings_.frameDroppingOn = false; |
| 169 vp8_settings_.numberOfTemporalLayers = | 170 vp8_settings_.numberOfTemporalLayers = |
| 170 static_cast<unsigned char>(config.num_temporal_layers); | 171 static_cast<unsigned char>(config.num_temporal_layers); |
| 171 | 172 |
| 172 vp9_settings_ = VideoEncoder::GetDefaultVp9Settings(); | 173 vp9_settings_ = VideoEncoder::GetDefaultVp9Settings(); |
| 173 vp9_settings_.denoisingOn = false; | 174 vp9_settings_.denoisingOn = false; |
| 174 vp9_settings_.frameDroppingOn = false; | 175 vp9_settings_.frameDroppingOn = false; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 test::VideoCapturer* CreateCapturer(VideoSendStream* send_stream) override { | 210 test::VideoCapturer* CreateCapturer(VideoSendStream* send_stream) override { |
| 210 std::vector<std::string> slides; | 211 std::vector<std::string> slides; |
| 211 slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv")); | 212 slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv")); |
| 212 slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv")); | 213 slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv")); |
| 213 slides.push_back(test::ResourcePath("photo_1850_1110", "yuv")); | 214 slides.push_back(test::ResourcePath("photo_1850_1110", "yuv")); |
| 214 slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv")); | 215 slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv")); |
| 215 | 216 |
| 216 // Fixed for input resolution for prerecorded screenshare content. | 217 // Fixed for input resolution for prerecorded screenshare content. |
| 217 const size_t kWidth = 1850; | 218 const size_t kWidth = 1850; |
| 218 const size_t kHeight = 1110; | 219 const size_t kHeight = 1110; |
| 219 CHECK_LE(flags::Width(), kWidth); | 220 RTC_CHECK_LE(flags::Width(), kWidth); |
| 220 CHECK_LE(flags::Height(), kHeight); | 221 RTC_CHECK_LE(flags::Height(), kHeight); |
| 221 CHECK_GT(flags::SlideChangeInterval(), 0); | 222 RTC_CHECK_GT(flags::SlideChangeInterval(), 0); |
| 222 const int kPauseDurationMs = | 223 const int kPauseDurationMs = |
| 223 (flags::SlideChangeInterval() - flags::ScrollDuration()) * 1000; | 224 (flags::SlideChangeInterval() - flags::ScrollDuration()) * 1000; |
| 224 CHECK_LE(flags::ScrollDuration(), flags::SlideChangeInterval()); | 225 RTC_CHECK_LE(flags::ScrollDuration(), flags::SlideChangeInterval()); |
| 225 | 226 |
| 226 test::FrameGenerator* frame_generator = | 227 test::FrameGenerator* frame_generator = |
| 227 test::FrameGenerator::CreateScrollingInputFromYuvFiles( | 228 test::FrameGenerator::CreateScrollingInputFromYuvFiles( |
| 228 Clock::GetRealTimeClock(), slides, kWidth, kHeight, flags::Width(), | 229 Clock::GetRealTimeClock(), slides, kWidth, kHeight, flags::Width(), |
| 229 flags::Height(), flags::ScrollDuration() * 1000, kPauseDurationMs); | 230 flags::Height(), flags::ScrollDuration() * 1000, kPauseDurationMs); |
| 230 | 231 |
| 231 test::FrameGeneratorCapturer* capturer(new test::FrameGeneratorCapturer( | 232 test::FrameGeneratorCapturer* capturer(new test::FrameGeneratorCapturer( |
| 232 clock_, send_stream->Input(), frame_generator, flags::Fps())); | 233 clock_, send_stream->Input(), frame_generator, flags::Fps())); |
| 233 EXPECT_TRUE(capturer->Init()); | 234 EXPECT_TRUE(capturer->Init()); |
| 234 return capturer; | 235 return capturer; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 263 } // namespace webrtc | 264 } // namespace webrtc |
| 264 | 265 |
| 265 int main(int argc, char* argv[]) { | 266 int main(int argc, char* argv[]) { |
| 266 ::testing::InitGoogleTest(&argc, argv); | 267 ::testing::InitGoogleTest(&argc, argv); |
| 267 google::ParseCommandLineFlags(&argc, &argv, true); | 268 google::ParseCommandLineFlags(&argc, &argv, true); |
| 268 webrtc::test::InitFieldTrialsFromString( | 269 webrtc::test::InitFieldTrialsFromString( |
| 269 webrtc::flags::FLAGS_force_fieldtrials); | 270 webrtc::flags::FLAGS_force_fieldtrials); |
| 270 webrtc::test::RunTest(webrtc::Loopback); | 271 webrtc::test::RunTest(webrtc::Loopback); |
| 271 return 0; | 272 return 0; |
| 272 } | 273 } |
| OLD | NEW |