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

Side by Side Diff: chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc

Issue 254803002: Making webrtc video quality test page generic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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 | « no previous file | chrome/test/data/webrtc/video_extraction.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « no previous file | chrome/test/data/webrtc/video_extraction.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698