OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/environment.h" | 6 #include "base/environment.h" |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/process/launch.h" | 9 #include "base/process/launch.h" |
10 #include "base/strings/string_split.h" | 10 #include "base/strings/string_split.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 | 60 |
61 // The working dir should be in the user's home folder. | 61 // The working dir should be in the user's home folder. |
62 static const base::FilePath::CharType kWorkingDirName[] = | 62 static const base::FilePath::CharType kWorkingDirName[] = |
63 FILE_PATH_LITERAL("webrtc_video_quality"); | 63 FILE_PATH_LITERAL("webrtc_video_quality"); |
64 static const base::FilePath::CharType kCapturedYuvFileName[] = | 64 static const base::FilePath::CharType kCapturedYuvFileName[] = |
65 FILE_PATH_LITERAL("captured_video.yuv"); | 65 FILE_PATH_LITERAL("captured_video.yuv"); |
66 static const base::FilePath::CharType kStatsFileName[] = | 66 static const base::FilePath::CharType kStatsFileName[] = |
67 FILE_PATH_LITERAL("stats.txt"); | 67 FILE_PATH_LITERAL("stats.txt"); |
68 static const char kMainWebrtcTestHtmlPage[] = | 68 static const char kMainWebrtcTestHtmlPage[] = |
69 "/webrtc/webrtc_jsep01_test.html"; | 69 "/webrtc/webrtc_jsep01_test.html"; |
| 70 static const char kCapturingWebrtcHtmlPage[] = |
| 71 "/webrtc/webrtc_video_quality_test.html"; |
70 | 72 |
71 // If you change the port number, don't forget to modify video_extraction.js | 73 // If you change the port number, don't forget to modify video_extraction.js |
72 // too! | 74 // too! |
73 static const char kPyWebSocketPortNumber[] = "12221"; | 75 static const char kPyWebSocketPortNumber[] = "12221"; |
74 | 76 |
75 static const struct VideoQualityTestConfig { | 77 static const struct VideoQualityTestConfig { |
76 const char* test_name; | 78 const char* test_name; |
77 int width; | 79 int width; |
78 int height; | 80 int height; |
79 const char* capture_page; | |
80 const base::FilePath::CharType* reference_video; | 81 const base::FilePath::CharType* reference_video; |
81 const char* constraints; | 82 const char* constraints; |
82 } kVideoConfigurations[] = { | 83 } kVideoConfigurations[] = { |
83 { "360p", 640, 360, | 84 { "360p", 640, 360, |
84 "/webrtc/webrtc_video_quality_test.html", | |
85 test::kReferenceFileName360p, | 85 test::kReferenceFileName360p, |
86 WebRtcTestBase::kAudioVideoCallConstraints360p }, | 86 WebRtcTestBase::kAudioVideoCallConstraints360p }, |
87 { "720p", 1280, 720, | 87 { "720p", 1280, 720, |
88 "/webrtc/webrtc_video_quality_test_hd.html", | |
89 test::kReferenceFileName720p, | 88 test::kReferenceFileName720p, |
90 WebRtcTestBase::kAudioVideoCallConstraints720p }, | 89 WebRtcTestBase::kAudioVideoCallConstraints720p }, |
91 }; | 90 }; |
92 | 91 |
93 // Test the video quality of the WebRTC output. | 92 // Test the video quality of the WebRTC output. |
94 // | 93 // |
95 // Prerequisites: This test case must run on a machine with a chrome playing | 94 // Prerequisites: This test case must run on a machine with a chrome playing |
96 // the video from the reference files located in GetReferenceFilesDir(). | 95 // the video from the reference files located in GetReferenceFilesDir(). |
97 // The file kReferenceY4mFileName.kY4mFileExtension is played using a | 96 // The file kReferenceY4mFileName.kY4mFileExtension is played using a |
98 // FileVideoCaptureDevice and its sibling with kYuvFileExtension is used for | 97 // FileVideoCaptureDevice and its sibling with kYuvFileExtension is used for |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 ASSERT_TRUE(HasAllRequiredResources()); | 333 ASSERT_TRUE(HasAllRequiredResources()); |
335 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 334 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
336 ASSERT_TRUE(StartPyWebSocketServer()); | 335 ASSERT_TRUE(StartPyWebSocketServer()); |
337 | 336 |
338 content::WebContents* left_tab = | 337 content::WebContents* left_tab = |
339 OpenPageAndGetUserMediaInNewTabWithConstraints( | 338 OpenPageAndGetUserMediaInNewTabWithConstraints( |
340 embedded_test_server()->GetURL(kMainWebrtcTestHtmlPage), | 339 embedded_test_server()->GetURL(kMainWebrtcTestHtmlPage), |
341 test_config_.constraints); | 340 test_config_.constraints); |
342 content::WebContents* right_tab = | 341 content::WebContents* right_tab = |
343 OpenPageAndGetUserMediaInNewTabWithConstraints( | 342 OpenPageAndGetUserMediaInNewTabWithConstraints( |
344 embedded_test_server()->GetURL(test_config_.capture_page), | 343 embedded_test_server()->GetURL(kCapturingWebrtcHtmlPage), |
345 test_config_.constraints); | 344 test_config_.constraints); |
346 | 345 |
347 SetupPeerconnectionWithLocalStream(left_tab); | 346 SetupPeerconnectionWithLocalStream(left_tab); |
348 SetupPeerconnectionWithLocalStream(right_tab); | 347 SetupPeerconnectionWithLocalStream(right_tab); |
349 | 348 |
350 NegotiateCall(left_tab, right_tab); | 349 NegotiateCall(left_tab, right_tab); |
351 | 350 |
352 // Poll slower here to avoid flooding the log with messages: capturing and | 351 // Poll slower here to avoid flooding the log with messages: capturing and |
353 // sending frames take quite a bit of time. | 352 // sending frames take quite a bit of time. |
354 int polling_interval_msec = 1000; | 353 int polling_interval_msec = 1000; |
(...skipping 22 matching lines...) Expand all Loading... |
377 ASSERT_TRUE(CompareVideosAndPrintResult( | 376 ASSERT_TRUE(CompareVideosAndPrintResult( |
378 test_config_.test_name, | 377 test_config_.test_name, |
379 test_config_.width, | 378 test_config_.width, |
380 test_config_.height, | 379 test_config_.height, |
381 GetWorkingDir().Append(kCapturedYuvFileName), | 380 GetWorkingDir().Append(kCapturedYuvFileName), |
382 test::GetReferenceFilesDir() | 381 test::GetReferenceFilesDir() |
383 .Append(test_config_.reference_video) | 382 .Append(test_config_.reference_video) |
384 .AddExtension(test::kYuvFileExtension), | 383 .AddExtension(test::kYuvFileExtension), |
385 GetWorkingDir().Append(kStatsFileName))); | 384 GetWorkingDir().Append(kStatsFileName))); |
386 } | 385 } |
OLD | NEW |