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

Side by Side Diff: content/common/gpu/media/vaapi_jpeg_parser_unittest.cc

Issue 748023002: Add JPEG parser for JPEG decode acceleration (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/at_exit.h"
6 #include "base/files/memory_mapped_file.h"
7 #include "base/path_service.h"
8 #include "content/common/gpu/media/vaapi_jpeg_parser.h"
9 #include "media/base/test_data_util.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace content {
13
14 TEST(VaapiJpegParserTest, Parsing) {
15 base::FilePath data_dir;
16 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &data_dir));
17 data_dir = data_dir.AppendASCII("content")
18 .AppendASCII("test")
19 .AppendASCII("data")
20 .AppendASCII("jpeg");
21
22 // This sample frame is captured from Chromebook Pixel
23 base::FilePath file_path = data_dir.AppendASCII("pixel-1280x720.jpg");
24
25 base::MemoryMappedFile stream;
26 ASSERT_TRUE(stream.Initialize(file_path))
27 << "Couldn't open stream file: " << file_path.MaybeAsASCII();
28
29 JpegParseResult result;
30 JpegParser parser;
31 ASSERT_TRUE(parser.Parse(stream.data(), stream.length(), &result));
32
33 // Verify selected fields
34 // SOF fields
35 EXPECT_EQ(1280, result.visible_size.width());
36 EXPECT_EQ(720, result.visible_size.height());
37 EXPECT_EQ(3, result.num_components);
38 EXPECT_EQ(1, result.components[0].id);
39 EXPECT_EQ(2, result.components[0].horizontal_sampling_factor);
40 EXPECT_EQ(1, result.components[0].vertical_sampling_factor);
41 EXPECT_EQ(0, result.components[0].quantization_table_selector);
42 EXPECT_EQ(2, result.components[1].id);
43 EXPECT_EQ(1, result.components[1].horizontal_sampling_factor);
44 EXPECT_EQ(1, result.components[1].vertical_sampling_factor);
45 EXPECT_EQ(1, result.components[1].quantization_table_selector);
46 EXPECT_EQ(3, result.components[2].id);
47 EXPECT_EQ(1, result.components[2].horizontal_sampling_factor);
48 EXPECT_EQ(1, result.components[2].vertical_sampling_factor);
49 EXPECT_EQ(1, result.components[2].quantization_table_selector);
50
51 // DRI fields
52 EXPECT_EQ(0, result.restart_interval);
53
54 // DQT fields
55 EXPECT_TRUE(result.q_table[0].valid);
56 EXPECT_TRUE(result.q_table[1].valid);
57 EXPECT_FALSE(result.q_table[2].valid);
58 EXPECT_FALSE(result.q_table[3].valid);
59
60 // DHT fields (no DHT marker)
61 EXPECT_FALSE(result.dc_table[0].valid);
62 EXPECT_FALSE(result.ac_table[0].valid);
63 EXPECT_FALSE(result.dc_table[1].valid);
64 EXPECT_FALSE(result.ac_table[1].valid);
65
66 // SOS fields
67 EXPECT_EQ(3, result.scan.num_components);
68 EXPECT_EQ(1, result.scan.components[0].component_selector);
69 EXPECT_EQ(0, result.scan.components[0].dc_selector);
70 EXPECT_EQ(0, result.scan.components[0].ac_selector);
71 EXPECT_EQ(2, result.scan.components[1].component_selector);
72 EXPECT_EQ(1, result.scan.components[1].dc_selector);
73 EXPECT_EQ(1, result.scan.components[1].ac_selector);
74 EXPECT_EQ(3, result.scan.components[2].component_selector);
75 EXPECT_EQ(1, result.scan.components[2].dc_selector);
76 EXPECT_EQ(1, result.scan.components[2].ac_selector);
77 EXPECT_EQ(121150u, result.scan.data_size);
78 }
79
80 TEST(VaapiJpegParserTest, ParsingFail) {
81 const uint8_t data[] = {0, 1, 2, 3}; // not jpeg
82 JpegParseResult result;
83 JpegParser parser;
84 ASSERT_FALSE(parser.Parse(data, sizeof(data), &result));
85 }
86
87 } // namespace content
88
89 int main(int argc, char** argv) {
90 testing::InitGoogleTest(&argc, argv);
91 base::AtExitManager exit_manager;
92 return RUN_ALL_TESTS();
93 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698