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

Side by Side Diff: media/filters/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 "media/base/test_data_util.h"
9 #include "media/filters/jpeg_parser.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace media {
13
14 TEST(JpegParserTest, Parsing) {
15 base::FilePath data_dir;
16 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &data_dir));
17
18 // This sample frame is captured from Chromebook Pixel
19 base::FilePath file_path = data_dir.AppendASCII("media")
20 .AppendASCII("test")
21 .AppendASCII("data")
22 .AppendASCII("pixel-1280x720.jpg");
23
24 base::MemoryMappedFile stream;
25 ASSERT_TRUE(stream.Initialize(file_path))
26 << "Couldn't open stream file: " << file_path.MaybeAsASCII();
27
28 JpegParseResult result;
29 ASSERT_TRUE(JpegParser::Parse(stream.data(), stream.length(), &result));
30
31 // Verify selected fields
xhwang 2015/01/12 18:08:58 empty line after this
kcwu 2015/01/13 14:57:01 Done.
32 // SOF fields
33 EXPECT_EQ(1280, result.visible_width);
34 EXPECT_EQ(720, result.visible_height);
35 EXPECT_EQ(3, result.num_components);
36 EXPECT_EQ(1, result.components[0].id);
37 EXPECT_EQ(2, result.components[0].horizontal_sampling_factor);
38 EXPECT_EQ(1, result.components[0].vertical_sampling_factor);
39 EXPECT_EQ(0, result.components[0].quantization_table_selector);
40 EXPECT_EQ(2, result.components[1].id);
41 EXPECT_EQ(1, result.components[1].horizontal_sampling_factor);
42 EXPECT_EQ(1, result.components[1].vertical_sampling_factor);
43 EXPECT_EQ(1, result.components[1].quantization_table_selector);
44 EXPECT_EQ(3, result.components[2].id);
45 EXPECT_EQ(1, result.components[2].horizontal_sampling_factor);
46 EXPECT_EQ(1, result.components[2].vertical_sampling_factor);
47 EXPECT_EQ(1, result.components[2].quantization_table_selector);
48
49 // DRI fields
50 EXPECT_EQ(0, result.restart_interval);
51
52 // DQT fields
53 EXPECT_TRUE(result.q_table[0].valid);
54 EXPECT_TRUE(result.q_table[1].valid);
55 EXPECT_FALSE(result.q_table[2].valid);
56 EXPECT_FALSE(result.q_table[3].valid);
57
58 // DHT fields (no DHT marker)
59 EXPECT_FALSE(result.dc_table[0].valid);
60 EXPECT_FALSE(result.ac_table[0].valid);
61 EXPECT_FALSE(result.dc_table[1].valid);
62 EXPECT_FALSE(result.ac_table[1].valid);
63
64 // SOS fields
65 EXPECT_EQ(3, result.scan.num_components);
66 EXPECT_EQ(1, result.scan.components[0].component_selector);
67 EXPECT_EQ(0, result.scan.components[0].dc_selector);
68 EXPECT_EQ(0, result.scan.components[0].ac_selector);
69 EXPECT_EQ(2, result.scan.components[1].component_selector);
70 EXPECT_EQ(1, result.scan.components[1].dc_selector);
71 EXPECT_EQ(1, result.scan.components[1].ac_selector);
72 EXPECT_EQ(3, result.scan.components[2].component_selector);
73 EXPECT_EQ(1, result.scan.components[2].dc_selector);
74 EXPECT_EQ(1, result.scan.components[2].ac_selector);
75 EXPECT_EQ(121150u, result.scan.data_size);
76 }
77
78 TEST(JpegParserTest, ParsingFail) {
79 const uint8_t data[] = {0, 1, 2, 3}; // not jpeg
80 JpegParseResult result;
81 ASSERT_FALSE(JpegParser::Parse(data, sizeof(data), &result));
82 }
83
84 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698