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

Unified Diff: chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc

Issue 1752293003: Add VP9 to chrome_webrtc_video_quality_browsertest.cc. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc
diff --git a/chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc b/chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc
index 6098fa3452657239a9c2664f6c0d7f78cb462fbe..635945728627283f6dc2a74952c069c20c9a27af 100644
--- a/chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc
+++ b/chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc
@@ -37,6 +37,13 @@
#include "testing/perf/perf_test.h"
#include "ui/gl/gl_switches.h"
+namespace {
+std::string MakeLabel(const char* test_name, const std::string& video_codec) {
+ std::string codec_label = video_codec.empty() ? "" : "_" + video_codec;
+ return base::StringPrintf("%s%s", test_name, codec_label.c_str());
+}
+} // namespace
+
static const base::FilePath::CharType kFrameAnalyzerExecutable[] =
#if defined(OS_WIN)
FILE_PATH_LITERAL("frame_analyzer.exe");
@@ -195,7 +202,7 @@ class WebRtcVideoQualityBrowserTest : public WebRtcTestBase,
// |width| x |height|.
// All measurements calculated are printed as perf parsable numbers to stdout.
bool CompareVideosAndPrintResult(
- const char* test_label,
+ const std::string& test_label,
int width,
int height,
const base::FilePath& captured_video_filename,
@@ -236,7 +243,7 @@ class WebRtcVideoQualityBrowserTest : public WebRtcTestBase,
EXPECT_TRUE(GetPythonCommand(&compare_command));
compare_command.AppendArgPath(path_to_compare_script);
- compare_command.AppendArg(base::StringPrintf("--label=%s", test_label));
+ compare_command.AppendArg("--label=" + test_label);
compare_command.AppendArg("--ref_video");
compare_command.AppendArgPath(reference_video_filename);
compare_command.AppendArg("--test_video");
@@ -270,12 +277,61 @@ class WebRtcVideoQualityBrowserTest : public WebRtcTestBase,
return true;
}
+ void TestVideoQuality(const std::string& video_codec) {
+ ASSERT_GE(TestTimeouts::action_max_timeout().InSeconds(), 150)
+ << "This is a long-running test; you must specify "
+ "--ui-test-action-max-timeout to have a value of at least 150000.";
+ ASSERT_TRUE(test::HasReferenceFilesInCheckout());
+ ASSERT_TRUE(embedded_test_server()->Start());
+
+ content::WebContents* left_tab =
+ OpenPageAndGetUserMediaInNewTabWithConstraints(
+ embedded_test_server()->GetURL(kMainWebrtcTestHtmlPage),
+ test_config_.constraints);
+ content::WebContents* right_tab =
+ OpenPageAndGetUserMediaInNewTabWithConstraints(
+ embedded_test_server()->GetURL(kCapturingWebrtcHtmlPage),
+ test_config_.constraints);
+
+ SetupPeerconnectionWithLocalStream(left_tab);
+ SetupPeerconnectionWithLocalStream(right_tab);
+
+ NegotiateCall(left_tab, right_tab, video_codec);
+
+ // Poll slower here to avoid flooding the log with messages: capturing and
+ // sending frames take quite a bit of time.
+ int polling_interval_msec = 1000;
+
+ EXPECT_TRUE(test::PollingWaitUntil("doneFrameCapturing()", "done-capturing",
+ right_tab, polling_interval_msec));
+
+ HangUp(left_tab);
+
+ WriteCapturedFramesToWorkingDir(right_tab);
+
+ // Shut everything down to avoid having the javascript race with the
+ // analysis tools. For instance, dont have console log printouts interleave
+ // with the RESULT lines from the analysis tools (crbug.com/323200).
+ chrome::CloseWebContents(browser(), left_tab, false);
+ chrome::CloseWebContents(browser(), right_tab, false);
+
+ ASSERT_TRUE(
+ RunARGBtoI420Converter(test_config_.width, test_config_.height,
+ GetWorkingDir().Append(kCapturedYuvFileName)));
+
+ ASSERT_TRUE(CompareVideosAndPrintResult(
+ MakeLabel(test_config_.test_name, video_codec), test_config_.width,
+ test_config_.height, GetWorkingDir().Append(kCapturedYuvFileName),
+ test::GetReferenceFilesDir()
+ .Append(test_config_.reference_video)
+ .AddExtension(test::kYuvFileExtension),
+ GetWorkingDir().Append(kStatsFileName)));
+ }
+
protected:
VideoQualityTestConfig test_config_;
- base::FilePath GetWorkingDir() {
- return temp_working_dir_.path();
- }
+ base::FilePath GetWorkingDir() { return temp_working_dir_.path(); }
private:
base::FilePath GetSourceDir() {
@@ -300,56 +356,21 @@ INSTANTIATE_TEST_CASE_P(
WebRtcVideoQualityBrowserTest,
testing::ValuesIn(kVideoConfigurations));
+// The video codec name is now appended to the test label (e.g. '720p_VP8').
+// TODO(asapersson): Keep test below using the default video codec (which do
+// not have the codec name appended ('720p')) until new tests have been
+// running for some time.
+IN_PROC_BROWSER_TEST_P(WebRtcVideoQualityBrowserTest,
+ MANUAL_TestVideoQualityDefault) {
+ TestVideoQuality("");
+}
+
+IN_PROC_BROWSER_TEST_P(WebRtcVideoQualityBrowserTest,
+ MANUAL_TestVideoQualityVp8) {
+ TestVideoQuality("VP8");
+}
+
IN_PROC_BROWSER_TEST_P(WebRtcVideoQualityBrowserTest,
- MANUAL_TestVideoQuality) {
- ASSERT_GE(TestTimeouts::action_max_timeout().InSeconds(), 150) <<
- "This is a long-running test; you must specify "
- "--ui-test-action-max-timeout to have a value of at least 150000.";
- ASSERT_TRUE(test::HasReferenceFilesInCheckout());
- ASSERT_TRUE(embedded_test_server()->Start());
-
- content::WebContents* left_tab =
- OpenPageAndGetUserMediaInNewTabWithConstraints(
- embedded_test_server()->GetURL(kMainWebrtcTestHtmlPage),
- test_config_.constraints);
- content::WebContents* right_tab =
- OpenPageAndGetUserMediaInNewTabWithConstraints(
- embedded_test_server()->GetURL(kCapturingWebrtcHtmlPage),
- test_config_.constraints);
-
- SetupPeerconnectionWithLocalStream(left_tab);
- SetupPeerconnectionWithLocalStream(right_tab);
-
- NegotiateCall(left_tab, right_tab);
-
- // Poll slower here to avoid flooding the log with messages: capturing and
- // sending frames take quite a bit of time.
- int polling_interval_msec = 1000;
-
- EXPECT_TRUE(test::PollingWaitUntil(
- "doneFrameCapturing()", "done-capturing", right_tab,
- polling_interval_msec));
-
- HangUp(left_tab);
-
- WriteCapturedFramesToWorkingDir(right_tab);
-
- // Shut everything down to avoid having the javascript race with the analysis
- // tools. For instance, dont have console log printouts interleave with the
- // RESULT lines from the analysis tools (crbug.com/323200).
- chrome::CloseWebContents(browser(), left_tab, false);
- chrome::CloseWebContents(browser(), right_tab, false);
-
- ASSERT_TRUE(RunARGBtoI420Converter(
- test_config_.width, test_config_.height,
- GetWorkingDir().Append(kCapturedYuvFileName)));
- ASSERT_TRUE(CompareVideosAndPrintResult(
- test_config_.test_name,
- test_config_.width,
- test_config_.height,
- GetWorkingDir().Append(kCapturedYuvFileName),
- test::GetReferenceFilesDir()
- .Append(test_config_.reference_video)
- .AddExtension(test::kYuvFileExtension),
- GetWorkingDir().Append(kStatsFileName)));
+ MANUAL_TestVideoQualityVp9) {
+ TestVideoQuality("VP9");
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698