OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "build/build_config.h" | 5 #include "build/build_config.h" |
6 #include "content/browser/media/media_browsertest.h" | 6 #include "content/browser/media/media_browsertest.h" |
7 #include "content/public/test/browser_test_utils.h" | 7 #include "content/public/test/browser_test_utils.h" |
8 #include "media/base/test_data_util.h" | 8 #include "media/base/test_data_util.h" |
9 | 9 |
10 namespace content { | 10 namespace content { |
11 | 11 |
12 class MediaColorTest : public MediaBrowserTest { | 12 class MediaColorTest : public MediaBrowserTest { |
13 public: | 13 public: |
14 void RunColorTest(const std::string& video_file) { | 14 void RunColorTest(const std::string& video_file) { |
15 base::FilePath path = media::GetTestDataFilePath("blackwhite.html"); | 15 base::FilePath path = media::GetTestDataFilePath("blackwhite.html"); |
16 std::string final_title = | 16 std::string final_title = |
17 RunTest(GetFileUrlWithQuery(path, video_file), kEnded); | 17 RunTest(GetFileUrlWithQuery(path, video_file), kEnded); |
18 EXPECT_EQ(kEnded, final_title); | 18 EXPECT_EQ(kEnded, final_title); |
19 } | 19 } |
20 }; | 20 }; |
21 | 21 |
| 22 // Android doesn't support Theora. |
| 23 #if !defined(OS_ANDROID) |
22 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pTheora) { | 24 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pTheora) { |
23 RunColorTest("yuv420p.ogv"); | 25 RunColorTest("yuv420p.ogv"); |
24 } | 26 } |
25 | 27 |
26 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv422pTheora) { | 28 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv422pTheora) { |
27 RunColorTest("yuv422p.ogv"); | 29 RunColorTest("yuv422p.ogv"); |
28 } | 30 } |
29 | 31 |
30 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv444pTheora) { | 32 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv444pTheora) { |
31 RunColorTest("yuv444p.ogv"); | 33 RunColorTest("yuv444p.ogv"); |
32 } | 34 } |
| 35 #endif // !defined(OS_ANDROID) |
33 | 36 |
34 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pVp8) { | 37 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pVp8) { |
35 RunColorTest("yuv420p.webm"); | 38 RunColorTest("yuv420p.webm"); |
36 } | 39 } |
37 | 40 |
38 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv444pVp9) { | 41 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv444pVp9) { |
39 RunColorTest("yuv444p.webm"); | 42 RunColorTest("yuv444p.webm"); |
40 } | 43 } |
41 | 44 |
42 #if defined(USE_PROPRIETARY_CODECS) | 45 #if defined(USE_PROPRIETARY_CODECS) |
43 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pH264) { | 46 |
| 47 // This fails on some Android devices: http://crbug.com/649199, |
| 48 // http://crbug.com/649185. |
| 49 #if defined(OS_ANDROID) |
| 50 #define MAYBE_Yuv420pH264 DISABLED_Yuv420pH264 |
| 51 #else |
| 52 #define MAYBE_Yuv420pH264 Yuv420pH264 |
| 53 #endif |
| 54 IN_PROC_BROWSER_TEST_F(MediaColorTest, MAYBE_Yuv420pH264) { |
44 RunColorTest("yuv420p.mp4"); | 55 RunColorTest("yuv420p.mp4"); |
45 } | 56 } |
46 | 57 |
47 // This test fails on Android http://crbug.com/647818, and OSX | 58 // This test fails on Android: http://crbug.com/647818, and OSX: |
48 // http://crbug.com/647838. | 59 // http://crbug.com/647838. |
49 #if defined(OS_MACOSX) || defined(OS_ANDROID) | 60 #if defined(OS_MACOSX) || defined(OS_ANDROID) |
50 #define MAYBE_Yuvj420pH264 DISABLED_Yuvj420pH264 | 61 #define MAYBE_Yuvj420pH264 DISABLED_Yuvj420pH264 |
51 #else | 62 #else |
52 #define MAYBE_Yuvj420pH264 Yuvj420pH264 | 63 #define MAYBE_Yuvj420pH264 Yuvj420pH264 |
53 #endif | 64 #endif |
54 IN_PROC_BROWSER_TEST_F(MediaColorTest, MAYBE_Yuvj420pH264) { | 65 IN_PROC_BROWSER_TEST_F(MediaColorTest, MAYBE_Yuvj420pH264) { |
55 RunColorTest("yuvj420p.mp4"); | 66 RunColorTest("yuvj420p.mp4"); |
56 } | 67 } |
57 | 68 |
58 // This fails on Linux & ChromeOS http://crbug.com/647400, and Windows | 69 // This fails on Linux & ChromeOS: http://crbug.com/647400, |
59 // http://crbug.com/647842. | 70 // Windows: http://crbug.com/647842, and Android: http://crbug.com/649199, |
60 #if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_WIN) | 71 // http://crbug.com/649185. |
| 72 #if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_WIN) || \ |
| 73 defined(OS_ANDROID) |
61 #define MAYBE_Yuv420pRec709H264 DISABLED_Yuv420pRec709H264 | 74 #define MAYBE_Yuv420pRec709H264 DISABLED_Yuv420pRec709H264 |
62 #else | 75 #else |
63 #define MAYBE_Yuv420pRec709H264 Yuv420pRec709H264 | 76 #define MAYBE_Yuv420pRec709H264 Yuv420pRec709H264 |
64 #endif | 77 #endif |
65 IN_PROC_BROWSER_TEST_F(MediaColorTest, MAYBE_Yuv420pRec709H264) { | 78 IN_PROC_BROWSER_TEST_F(MediaColorTest, MAYBE_Yuv420pRec709H264) { |
66 RunColorTest("yuv420p_rec709.mp4"); | 79 RunColorTest("yuv420p_rec709.mp4"); |
67 } | 80 } |
68 | 81 |
| 82 // Android devices usually only support baseline, main and high. |
| 83 #if !defined(OS_ANDROID) |
69 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pHighBitDepth) { | 84 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pHighBitDepth) { |
70 RunColorTest("yuv420p_hi10p.mp4"); | 85 RunColorTest("yuv420p_hi10p.mp4"); |
71 } | 86 } |
72 | 87 |
73 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv422pH264) { | 88 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv422pH264) { |
74 RunColorTest("yuv422p.mp4"); | 89 RunColorTest("yuv422p.mp4"); |
75 } | 90 } |
76 | 91 |
77 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv444pH264) { | 92 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv444pH264) { |
78 RunColorTest("yuv444p.mp4"); | 93 RunColorTest("yuv444p.mp4"); |
79 } | 94 } |
| 95 #endif // !defined(OS_ANDROID) |
80 | 96 |
81 #if defined(OS_CHROMEOS) | 97 #if defined(OS_CHROMEOS) |
82 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pMpeg4) { | 98 IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pMpeg4) { |
83 RunColorTest("yuv420p.avi"); | 99 RunColorTest("yuv420p.avi"); |
84 } | 100 } |
85 #endif // defined(OS_CHROMEOS) | 101 #endif // defined(OS_CHROMEOS) |
86 #endif // defined(USE_PROPRIETARY_CODECS) | 102 #endif // defined(USE_PROPRIETARY_CODECS) |
87 | 103 |
88 } // namespace content | 104 } // namespace content |
OLD | NEW |