| 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 "platform/image-decoders/ImageDecoderTestHelpers.h" | 5 #include "platform/image-decoders/ImageDecoderTestHelpers.h" |
| 6 | 6 |
| 7 #include "platform/SharedBuffer.h" | 7 #include "platform/SharedBuffer.h" |
| 8 #include "platform/image-decoders/ImageFrame.h" | 8 #include "platform/image-decoders/ImageFrame.h" |
| 9 #include "platform/testing/UnitTestHelpers.h" | 9 #include "platform/testing/UnitTestHelpers.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 } | 43 } |
| 44 | 44 |
| 45 void createDecodingBaseline(DecoderCreator createDecoder, | 45 void createDecodingBaseline(DecoderCreator createDecoder, |
| 46 SharedBuffer* data, | 46 SharedBuffer* data, |
| 47 Vector<unsigned>* baselineHashes) { | 47 Vector<unsigned>* baselineHashes) { |
| 48 std::unique_ptr<ImageDecoder> decoder = createDecoder(); | 48 std::unique_ptr<ImageDecoder> decoder = createDecoder(); |
| 49 decoder->setData(data, true); | 49 decoder->setData(data, true); |
| 50 size_t frameCount = decoder->frameCount(); | 50 size_t frameCount = decoder->frameCount(); |
| 51 for (size_t i = 0; i < frameCount; ++i) { | 51 for (size_t i = 0; i < frameCount; ++i) { |
| 52 ImageFrame* frame = decoder->frameBufferAtIndex(i); | 52 ImageFrame* frame = decoder->frameBufferAtIndex(i); |
| 53 baselineHashes->append(hashBitmap(frame->bitmap())); | 53 baselineHashes->push_back(hashBitmap(frame->bitmap())); |
| 54 } | 54 } |
| 55 } | 55 } |
| 56 | 56 |
| 57 static void testByteByByteDecode(DecoderCreator createDecoder, | 57 static void testByteByByteDecode(DecoderCreator createDecoder, |
| 58 SharedBuffer* data, | 58 SharedBuffer* data, |
| 59 size_t expectedFrameCount, | 59 size_t expectedFrameCount, |
| 60 int expectedRepetitionCount) { | 60 int expectedRepetitionCount) { |
| 61 ASSERT_TRUE(data->data()); | 61 ASSERT_TRUE(data->data()); |
| 62 | 62 |
| 63 Vector<unsigned> baselineHashes; | 63 Vector<unsigned> baselineHashes; |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 Vector<unsigned> truncatedHashes; | 257 Vector<unsigned> truncatedHashes; |
| 258 Vector<unsigned> progressiveHashes; | 258 Vector<unsigned> progressiveHashes; |
| 259 | 259 |
| 260 // Compute hashes when the file is truncated. | 260 // Compute hashes when the file is truncated. |
| 261 for (size_t i = 1; i <= fullLength; i += increment) { | 261 for (size_t i = 1; i <= fullLength; i += increment) { |
| 262 decoder = createDecoder(); | 262 decoder = createDecoder(); |
| 263 RefPtr<SharedBuffer> data = SharedBuffer::create(fullData->data(), i); | 263 RefPtr<SharedBuffer> data = SharedBuffer::create(fullData->data(), i); |
| 264 decoder->setData(data.get(), i == fullLength); | 264 decoder->setData(data.get(), i == fullLength); |
| 265 ImageFrame* frame = decoder->frameBufferAtIndex(0); | 265 ImageFrame* frame = decoder->frameBufferAtIndex(0); |
| 266 if (!frame) { | 266 if (!frame) { |
| 267 truncatedHashes.append(0); | 267 truncatedHashes.push_back(0); |
| 268 continue; | 268 continue; |
| 269 } | 269 } |
| 270 truncatedHashes.append(hashBitmap(frame->bitmap())); | 270 truncatedHashes.push_back(hashBitmap(frame->bitmap())); |
| 271 } | 271 } |
| 272 | 272 |
| 273 // Compute hashes when the file is progressively decoded. | 273 // Compute hashes when the file is progressively decoded. |
| 274 decoder = createDecoder(); | 274 decoder = createDecoder(); |
| 275 for (size_t i = 1; i <= fullLength; i += increment) { | 275 for (size_t i = 1; i <= fullLength; i += increment) { |
| 276 RefPtr<SharedBuffer> data = SharedBuffer::create(fullData->data(), i); | 276 RefPtr<SharedBuffer> data = SharedBuffer::create(fullData->data(), i); |
| 277 decoder->setData(data.get(), i == fullLength); | 277 decoder->setData(data.get(), i == fullLength); |
| 278 ImageFrame* frame = decoder->frameBufferAtIndex(0); | 278 ImageFrame* frame = decoder->frameBufferAtIndex(0); |
| 279 if (!frame) { | 279 if (!frame) { |
| 280 progressiveHashes.append(0); | 280 progressiveHashes.push_back(0); |
| 281 continue; | 281 continue; |
| 282 } | 282 } |
| 283 progressiveHashes.append(hashBitmap(frame->bitmap())); | 283 progressiveHashes.push_back(hashBitmap(frame->bitmap())); |
| 284 } | 284 } |
| 285 | 285 |
| 286 for (size_t i = 0; i < truncatedHashes.size(); ++i) | 286 for (size_t i = 0; i < truncatedHashes.size(); ++i) |
| 287 ASSERT_EQ(truncatedHashes[i], progressiveHashes[i]); | 287 ASSERT_EQ(truncatedHashes[i], progressiveHashes[i]); |
| 288 } | 288 } |
| 289 | 289 |
| 290 void testUpdateRequiredPreviousFrameAfterFirstDecode( | 290 void testUpdateRequiredPreviousFrameAfterFirstDecode( |
| 291 DecoderCreator createDecoder, | 291 DecoderCreator createDecoder, |
| 292 SharedBuffer* fullData) { | 292 SharedBuffer* fullData) { |
| 293 std::unique_ptr<ImageDecoder> decoder = createDecoder(); | 293 std::unique_ptr<ImageDecoder> decoder = createDecoder(); |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 size_t frameCount = decoderA->frameCount(); | 569 size_t frameCount = decoderA->frameCount(); |
| 570 ASSERT_EQ(frameCount, decoderB->frameCount()); | 570 ASSERT_EQ(frameCount, decoderB->frameCount()); |
| 571 | 571 |
| 572 for (size_t i = 0; i < frameCount; ++i) { | 572 for (size_t i = 0; i < frameCount; ++i) { |
| 573 verifyFramesMatch(file, decoderA->frameBufferAtIndex(i), | 573 verifyFramesMatch(file, decoderA->frameBufferAtIndex(i), |
| 574 decoderB->frameBufferAtIndex(i)); | 574 decoderB->frameBufferAtIndex(i)); |
| 575 } | 575 } |
| 576 } | 576 } |
| 577 | 577 |
| 578 } // namespace blink | 578 } // namespace blink |
| OLD | NEW |