Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Side by Side Diff: webrtc/video/video_quality_test.cc

Issue 2705973002: Replace test::FrameGenerator::ChromaGenerator with new FrameGenerator::SquareGenerator (Closed)
Patch Set: addressed comments. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/video/end_to_end_tests.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "webrtc/video/video_quality_test.h" 10 #include "webrtc/video/video_quality_test.h"
(...skipping 1325 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 const size_t kWidth = 1850; 1336 const size_t kWidth = 1850;
1337 const size_t kHeight = 1110; 1337 const size_t kHeight = 1110;
1338 std::vector<std::string> slides; 1338 std::vector<std::string> slides;
1339 slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv")); 1339 slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv"));
1340 slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv")); 1340 slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv"));
1341 slides.push_back(test::ResourcePath("photo_1850_1110", "yuv")); 1341 slides.push_back(test::ResourcePath("photo_1850_1110", "yuv"));
1342 slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv")); 1342 slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv"));
1343 1343
1344 if (params_.screenshare.scroll_duration == 0) { 1344 if (params_.screenshare.scroll_duration == 0) {
1345 // Cycle image every slide_change_interval seconds. 1345 // Cycle image every slide_change_interval seconds.
1346 frame_generator_.reset(test::FrameGenerator::CreateFromYuvFile( 1346 frame_generator_ = test::FrameGenerator::CreateFromYuvFile(
1347 slides, kWidth, kHeight, 1347 slides, kWidth, kHeight,
1348 params_.screenshare.slide_change_interval * params_.video.fps)); 1348 params_.screenshare.slide_change_interval * params_.video.fps);
1349 } else { 1349 } else {
1350 RTC_CHECK_LE(params_.video.width, kWidth); 1350 RTC_CHECK_LE(params_.video.width, kWidth);
1351 RTC_CHECK_LE(params_.video.height, kHeight); 1351 RTC_CHECK_LE(params_.video.height, kHeight);
1352 RTC_CHECK_GT(params_.screenshare.slide_change_interval, 0); 1352 RTC_CHECK_GT(params_.screenshare.slide_change_interval, 0);
1353 const int kPauseDurationMs = (params_.screenshare.slide_change_interval - 1353 const int kPauseDurationMs = (params_.screenshare.slide_change_interval -
1354 params_.screenshare.scroll_duration) * 1354 params_.screenshare.scroll_duration) *
1355 1000; 1355 1000;
1356 RTC_CHECK_LE(params_.screenshare.scroll_duration, 1356 RTC_CHECK_LE(params_.screenshare.scroll_duration,
1357 params_.screenshare.slide_change_interval); 1357 params_.screenshare.slide_change_interval);
1358 1358
1359 frame_generator_.reset( 1359 frame_generator_ = test::FrameGenerator::CreateScrollingInputFromYuvFiles(
1360 test::FrameGenerator::CreateScrollingInputFromYuvFiles( 1360 clock_, slides, kWidth, kHeight, params_.video.width,
1361 clock_, slides, kWidth, kHeight, params_.video.width, 1361 params_.video.height, params_.screenshare.scroll_duration * 1000,
1362 params_.video.height, params_.screenshare.scroll_duration * 1000, 1362 kPauseDurationMs);
1363 kPauseDurationMs));
1364 } 1363 }
1365 } else if (params_.ss.num_spatial_layers > 1) { // For non-screenshare case. 1364 } else if (params_.ss.num_spatial_layers > 1) { // For non-screenshare case.
1366 RTC_CHECK(params_.video.codec == "VP9"); 1365 RTC_CHECK(params_.video.codec == "VP9");
1367 VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings(); 1366 VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings();
1368 vp9_settings.numberOfTemporalLayers = 1367 vp9_settings.numberOfTemporalLayers =
1369 static_cast<unsigned char>(params_.video.num_temporal_layers); 1368 static_cast<unsigned char>(params_.video.num_temporal_layers);
1370 vp9_settings.numberOfSpatialLayers = 1369 vp9_settings.numberOfSpatialLayers =
1371 static_cast<unsigned char>(params_.ss.num_spatial_layers); 1370 static_cast<unsigned char>(params_.ss.num_spatial_layers);
1372 video_encoder_config_.encoder_specific_settings = new rtc::RefCountedObject< 1371 video_encoder_config_.encoder_specific_settings = new rtc::RefCountedObject<
1373 VideoEncoderConfig::Vp9EncoderSpecificSettings>(vp9_settings); 1372 VideoEncoderConfig::Vp9EncoderSpecificSettings>(vp9_settings);
1374 } 1373 }
1375 } 1374 }
1376 1375
1377 void VideoQualityTest::CreateCapturer() { 1376 void VideoQualityTest::CreateCapturer() {
1378 if (params_.screenshare.enabled) { 1377 if (params_.screenshare.enabled) {
1379 test::FrameGeneratorCapturer* frame_generator_capturer = 1378 test::FrameGeneratorCapturer* frame_generator_capturer =
1380 new test::FrameGeneratorCapturer(clock_, frame_generator_.release(), 1379 new test::FrameGeneratorCapturer(clock_, std::move(frame_generator_),
1381 params_.video.fps); 1380 params_.video.fps);
1382 EXPECT_TRUE(frame_generator_capturer->Init()); 1381 EXPECT_TRUE(frame_generator_capturer->Init());
1383 video_capturer_.reset(frame_generator_capturer); 1382 video_capturer_.reset(frame_generator_capturer);
1384 } else { 1383 } else {
1385 if (params_.video.clip_name.empty()) { 1384 if (params_.video.clip_name.empty()) {
1386 video_capturer_.reset(test::VcmCapturer::Create( 1385 video_capturer_.reset(test::VcmCapturer::Create(
1387 params_.video.width, params_.video.height, params_.video.fps)); 1386 params_.video.width, params_.video.height, params_.video.fps));
1388 if (!video_capturer_) { 1387 if (!video_capturer_) {
1389 // Failed to get actual camera, use chroma generator as backup. 1388 // Failed to get actual camera, use chroma generator as backup.
1390 video_capturer_.reset(test::FrameGeneratorCapturer::Create( 1389 video_capturer_.reset(test::FrameGeneratorCapturer::Create(
1391 params_.video.width, params_.video.height, params_.video.fps, 1390 static_cast<int>(params_.video.width),
1392 clock_)); 1391 static_cast<int>(params_.video.height), params_.video.fps, clock_));
1393 } 1392 }
1394 } else { 1393 } else {
1395 video_capturer_.reset(test::FrameGeneratorCapturer::CreateFromYuvFile( 1394 video_capturer_.reset(test::FrameGeneratorCapturer::CreateFromYuvFile(
1396 test::ResourcePath(params_.video.clip_name, "yuv"), 1395 test::ResourcePath(params_.video.clip_name, "yuv"),
1397 params_.video.width, params_.video.height, params_.video.fps, 1396 params_.video.width, params_.video.height, params_.video.fps,
1398 clock_)); 1397 clock_));
1399 ASSERT_TRUE(video_capturer_) << "Could not create capturer for " 1398 ASSERT_TRUE(video_capturer_) << "Could not create capturer for "
1400 << params_.video.clip_name 1399 << params_.video.clip_name
1401 << ".yuv. Is this resource file present?"; 1400 << ".yuv. Is this resource file present?";
1402 } 1401 }
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
1702 std::ostringstream str; 1701 std::ostringstream str;
1703 str << receive_logs_++; 1702 str << receive_logs_++;
1704 std::string path = 1703 std::string path =
1705 params_.video.encoded_frame_base_path + "." + str.str() + ".recv.ivf"; 1704 params_.video.encoded_frame_base_path + "." + str.str() + ".recv.ivf";
1706 stream->EnableEncodedFrameRecording(rtc::CreatePlatformFile(path), 1705 stream->EnableEncodedFrameRecording(rtc::CreatePlatformFile(path),
1707 10000000); 1706 10000000);
1708 } 1707 }
1709 } 1708 }
1710 1709
1711 } // namespace webrtc 1710 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/end_to_end_tests.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698