OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "config.h" | 5 #include "config.h" |
6 #include "platform/image-decoders/ImageDecoderTestHelpers.h" | 6 #include "platform/image-decoders/ImageDecoderTestHelpers.h" |
7 | 7 |
8 #include "platform/SharedBuffer.h" | 8 #include "platform/SharedBuffer.h" |
9 #include "platform/image-decoders/ImageDecoder.h" | 9 #include "platform/image-decoders/ImageDecoder.h" |
10 #include "platform/image-decoders/ImageFrame.h" | |
11 #include "public/platform/Platform.h" | 10 #include "public/platform/Platform.h" |
12 #include "public/platform/WebUnitTestSupport.h" | 11 #include "public/platform/WebUnitTestSupport.h" |
13 #include "wtf/OwnPtr.h" | 12 #include "wtf/OwnPtr.h" |
14 #include "wtf/StringHasher.h" | 13 #include "wtf/StringHasher.h" |
15 #include <gtest/gtest.h> | 14 #include <gtest/gtest.h> |
16 | 15 |
17 namespace blink { | 16 namespace blink { |
18 | 17 |
19 PassRefPtr<SharedBuffer> readFile(const char* fileName) | 18 PassRefPtr<SharedBuffer> readFile(const char* fileName) |
20 { | 19 { |
(...skipping 19 matching lines...) Expand all Loading... |
40 } | 39 } |
41 | 40 |
42 static unsigned createDecodingBaseline(DecoderCreator createDecoder, SharedBuffe
r* data) | 41 static unsigned createDecodingBaseline(DecoderCreator createDecoder, SharedBuffe
r* data) |
43 { | 42 { |
44 OwnPtr<ImageDecoder> decoder = createDecoder(); | 43 OwnPtr<ImageDecoder> decoder = createDecoder(); |
45 decoder->setData(data, true); | 44 decoder->setData(data, true); |
46 ImageFrame* frame = decoder->frameBufferAtIndex(0); | 45 ImageFrame* frame = decoder->frameBufferAtIndex(0); |
47 return hashBitmap(frame->bitmap()); | 46 return hashBitmap(frame->bitmap()); |
48 } | 47 } |
49 | 48 |
50 void createDecodingBaseline(DecoderCreator createDecoder, SharedBuffer* data, Ve
ctor<unsigned>* baselineHashes) | 49 void createDecodingBaseline(DecoderCreator createDecoder, SharedBuffer* data, Ve
ctor<unsigned>* baselineHashes, ImageFrame::ColorType outputType) |
51 { | 50 { |
52 OwnPtr<ImageDecoder> decoder = createDecoder(); | 51 OwnPtr<ImageDecoder> decoder = createDecoder(); |
53 decoder->setData(data, true); | 52 decoder->setData(data, true); |
54 size_t frameCount = decoder->frameCount(); | 53 size_t frameCount = decoder->frameCount(); |
55 for (size_t i = 0; i < frameCount; ++i) { | 54 for (size_t i = 0; i < frameCount; ++i) { |
56 ImageFrame* frame = decoder->frameBufferAtIndex(i); | 55 ImageFrame* frame = decoder->frameBufferAtIndex(i, outputType); |
57 baselineHashes->append(hashBitmap(frame->getSkBitmap())); | 56 baselineHashes->append(hashBitmap(frame->getSkBitmap())); |
58 } | 57 } |
59 } | 58 } |
60 | 59 |
61 void testByteByByteDecode(DecoderCreator createDecoder, const char* file, size_t
expectedFrameCount, int expectedRepetitionCount) | 60 void testByteByByteDecode(DecoderCreator createDecoder, const char* file, size_t
expectedFrameCount, int expectedRepetitionCount) |
62 { | 61 { |
63 RefPtr<SharedBuffer> data = readFile(file); | 62 RefPtr<SharedBuffer> data = readFile(file); |
64 ASSERT_TRUE(data.get()); | 63 ASSERT_TRUE(data.get()); |
65 | 64 |
66 Vector<unsigned> baselineHashes; | 65 Vector<unsigned> baselineHashes; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 // data in a segment, its pointer would no longer be valid. | 127 // data in a segment, its pointer would no longer be valid. |
129 segmentedData->data(); | 128 segmentedData->data(); |
130 | 129 |
131 ImageFrame* frame = decoder->frameBufferAtIndex(0); | 130 ImageFrame* frame = decoder->frameBufferAtIndex(0); |
132 ASSERT_FALSE(decoder->failed()); | 131 ASSERT_FALSE(decoder->failed()); |
133 EXPECT_EQ(frame->status(), ImageFrame::FrameComplete); | 132 EXPECT_EQ(frame->status(), ImageFrame::FrameComplete); |
134 EXPECT_EQ(hashBitmap(frame->bitmap()), hash); | 133 EXPECT_EQ(hashBitmap(frame->bitmap()), hash); |
135 } | 134 } |
136 | 135 |
137 } // namespace blink | 136 } // namespace blink |
OLD | NEW |