OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // The bulk of this file is support code; sorry about that. Here's an overview | 5 // The bulk of this file is support code; sorry about that. Here's an overview |
6 // to hopefully help readers of this code: | 6 // to hopefully help readers of this code: |
7 // - RenderingHelper is charged with interacting with X11/{EGL/GLES2,GLX/GL} or | 7 // - RenderingHelper is charged with interacting with X11/{EGL/GLES2,GLX/GL} or |
8 // Win/EGL. | 8 // Win/EGL. |
9 // - ClientState is an enum for the state of the decode client used by the test. | 9 // - ClientState is an enum for the state of the decode client used by the test. |
10 // - ClientStateNotification is a barrier abstraction that allows the test code | 10 // - ClientStateNotification is a barrier abstraction that allows the test code |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 const gfx::Size kThumbnailSize(160, 120); | 173 const gfx::Size kThumbnailSize(160, 120); |
174 const int kMD5StringLength = 32; | 174 const int kMD5StringLength = 32; |
175 | 175 |
176 // Read in golden MD5s for the thumbnailed rendering of this video | 176 // Read in golden MD5s for the thumbnailed rendering of this video |
177 void ReadGoldenThumbnailMD5s(const TestVideoFile* video_file, | 177 void ReadGoldenThumbnailMD5s(const TestVideoFile* video_file, |
178 std::vector<std::string>* md5_strings) { | 178 std::vector<std::string>* md5_strings) { |
179 base::FilePath filepath(video_file->file_name); | 179 base::FilePath filepath(video_file->file_name); |
180 filepath = filepath.AddExtension(FILE_PATH_LITERAL(".md5")); | 180 filepath = filepath.AddExtension(FILE_PATH_LITERAL(".md5")); |
181 std::string all_md5s; | 181 std::string all_md5s; |
182 base::ReadFileToString(filepath, &all_md5s); | 182 base::ReadFileToString(filepath, &all_md5s); |
183 *md5_strings = base::SplitString( | 183 base::SplitString(all_md5s, '\n', md5_strings); |
184 all_md5s, "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | |
185 // Check these are legitimate MD5s. | 184 // Check these are legitimate MD5s. |
186 for (const std::string& md5_string : *md5_strings) { | 185 for (std::vector<std::string>::iterator md5_string = md5_strings->begin(); |
| 186 md5_string != md5_strings->end(); ++md5_string) { |
187 // Ignore the empty string added by SplitString | 187 // Ignore the empty string added by SplitString |
188 if (!md5_string.length()) | 188 if (!md5_string->length()) |
189 continue; | 189 continue; |
190 // Ignore comments | 190 // Ignore comments |
191 if (md5_string.at(0) == '#') | 191 if (md5_string->at(0) == '#') |
192 continue; | 192 continue; |
193 | 193 |
194 CHECK_EQ(static_cast<int>(md5_string.length()), | 194 CHECK_EQ(static_cast<int>(md5_string->length()), |
195 kMD5StringLength) << md5_string; | 195 kMD5StringLength) << *md5_string; |
196 bool hex_only = std::count_if(md5_string.begin(), | 196 bool hex_only = std::count_if(md5_string->begin(), |
197 md5_string.end(), isxdigit) == | 197 md5_string->end(), isxdigit) == |
198 kMD5StringLength; | 198 kMD5StringLength; |
199 CHECK(hex_only) << md5_string; | 199 CHECK(hex_only) << *md5_string; |
200 } | 200 } |
201 CHECK_GE(md5_strings->size(), 1U) << " MD5 checksum file (" | 201 CHECK_GE(md5_strings->size(), 1U) << " MD5 checksum file (" |
202 << filepath.MaybeAsASCII() | 202 << filepath.MaybeAsASCII() |
203 << ") missing or empty."; | 203 << ") missing or empty."; |
204 } | 204 } |
205 | 205 |
206 // State of the GLRenderingVDAClient below. Order matters here as the test | 206 // State of the GLRenderingVDAClient below. Order matters here as the test |
207 // makes assumptions about it. | 207 // makes assumptions about it. |
208 enum ClientState { | 208 enum ClientState { |
209 CS_CREATED = 0, | 209 CS_CREATED = 0, |
(...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1054 FROM_HERE, base::Bind(&RenderingHelper::UnInitialize, | 1054 FROM_HERE, base::Bind(&RenderingHelper::UnInitialize, |
1055 base::Unretained(&rendering_helper_), &done)); | 1055 base::Unretained(&rendering_helper_), &done)); |
1056 done.Wait(); | 1056 done.Wait(); |
1057 | 1057 |
1058 rendering_helper_.TearDown(); | 1058 rendering_helper_.TearDown(); |
1059 } | 1059 } |
1060 | 1060 |
1061 void VideoDecodeAcceleratorTest::ParseAndReadTestVideoData( | 1061 void VideoDecodeAcceleratorTest::ParseAndReadTestVideoData( |
1062 base::FilePath::StringType data, | 1062 base::FilePath::StringType data, |
1063 std::vector<TestVideoFile*>* test_video_files) { | 1063 std::vector<TestVideoFile*>* test_video_files) { |
1064 std::vector<base::FilePath::StringType> entries = base::SplitString( | 1064 std::vector<base::FilePath::StringType> entries; |
1065 data, base::FilePath::StringType(1, ';'), | 1065 base::SplitString(data, ';', &entries); |
1066 base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | |
1067 CHECK_GE(entries.size(), 1U) << data; | 1066 CHECK_GE(entries.size(), 1U) << data; |
1068 for (size_t index = 0; index < entries.size(); ++index) { | 1067 for (size_t index = 0; index < entries.size(); ++index) { |
1069 std::vector<base::FilePath::StringType> fields = base::SplitString( | 1068 std::vector<base::FilePath::StringType> fields; |
1070 entries[index], base::FilePath::StringType(1, ':'), | 1069 base::SplitString(entries[index], ':', &fields); |
1071 base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | |
1072 CHECK_GE(fields.size(), 1U) << entries[index]; | 1070 CHECK_GE(fields.size(), 1U) << entries[index]; |
1073 CHECK_LE(fields.size(), 8U) << entries[index]; | 1071 CHECK_LE(fields.size(), 8U) << entries[index]; |
1074 TestVideoFile* video_file = new TestVideoFile(fields[0]); | 1072 TestVideoFile* video_file = new TestVideoFile(fields[0]); |
1075 if (!fields[1].empty()) | 1073 if (!fields[1].empty()) |
1076 CHECK(base::StringToInt(fields[1], &video_file->width)); | 1074 CHECK(base::StringToInt(fields[1], &video_file->width)); |
1077 if (!fields[2].empty()) | 1075 if (!fields[2].empty()) |
1078 CHECK(base::StringToInt(fields[2], &video_file->height)); | 1076 CHECK(base::StringToInt(fields[2], &video_file->height)); |
1079 if (!fields[3].empty()) | 1077 if (!fields[3].empty()) |
1080 CHECK(base::StringToInt(fields[3], &video_file->num_frames)); | 1078 CHECK(base::StringToInt(fields[3], &video_file->num_frames)); |
1081 if (!fields[4].empty()) | 1079 if (!fields[4].empty()) |
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1642 content::VaapiWrapper::PreSandboxInitialization(); | 1640 content::VaapiWrapper::PreSandboxInitialization(); |
1643 #endif | 1641 #endif |
1644 | 1642 |
1645 content::g_env = | 1643 content::g_env = |
1646 reinterpret_cast<content::VideoDecodeAcceleratorTestEnvironment*>( | 1644 reinterpret_cast<content::VideoDecodeAcceleratorTestEnvironment*>( |
1647 testing::AddGlobalTestEnvironment( | 1645 testing::AddGlobalTestEnvironment( |
1648 new content::VideoDecodeAcceleratorTestEnvironment())); | 1646 new content::VideoDecodeAcceleratorTestEnvironment())); |
1649 | 1647 |
1650 return RUN_ALL_TESTS(); | 1648 return RUN_ALL_TESTS(); |
1651 } | 1649 } |
OLD | NEW |