| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 bool decoded = m_frameGenerator->decodeToYUV(m_data.get(), m_frameIndex, siz
eInfo.fSizes, planes, sizeInfo.fWidthBytes); | 115 bool decoded = m_frameGenerator->decodeToYUV(m_data.get(), m_frameIndex, siz
eInfo.fSizes, planes, sizeInfo.fWidthBytes); |
| 116 PlatformInstrumentation::didDecodeLazyPixelRef(); | 116 PlatformInstrumentation::didDecodeLazyPixelRef(); |
| 117 | 117 |
| 118 return decoded; | 118 return decoded; |
| 119 } | 119 } |
| 120 | 120 |
| 121 SkImageGenerator* DecodingImageGenerator::create(SkData* data) | 121 SkImageGenerator* DecodingImageGenerator::create(SkData* data) |
| 122 { | 122 { |
| 123 // We just need the size of the image, so we have to temporarily create an I
mageDecoder. Since | 123 // We just need the size of the image, so we have to temporarily create an I
mageDecoder. Since |
| 124 // we only need the size, it doesn't really matter about premul or not, or g
amma settings. | 124 // we only need the size, it doesn't really matter about premul or not, or g
amma settings. |
| 125 std::unique_ptr<ImageDecoder> decoder = ImageDecoder::create(static_cast<con
st char*>(data->data()), data->size(), | 125 std::unique_ptr<ImageDecoder> decoder = ImageDecoder::create(ImageDecoder::d
etermineImageType(static_cast<const char*>(data->data()), data->size()), |
| 126 ImageDecoder::AlphaPremultiplied, ImageDecoder::GammaAndColorProfileAppl
ied); | 126 ImageDecoder::AlphaPremultiplied, ImageDecoder::GammaAndColorProfileAppl
ied); |
| 127 if (!decoder) | 127 if (!decoder) |
| 128 return 0; | 128 return 0; |
| 129 | 129 |
| 130 // Blink does not know Skia has already adopted |data|. | 130 // Blink does not know Skia has already adopted |data|. |
| 131 WTF::adopted(data); | 131 WTF::adopted(data); |
| 132 RefPtr<SegmentReader> segmentReader = SegmentReader::createFromSkData(data); | 132 RefPtr<SegmentReader> segmentReader = SegmentReader::createFromSkData(data); |
| 133 decoder->setData(segmentReader.get(), true); | 133 decoder->setData(segmentReader.get(), true); |
| 134 if (!decoder->isSizeAvailable()) | 134 if (!decoder->isSizeAvailable()) |
| 135 return 0; | 135 return 0; |
| 136 | 136 |
| 137 const IntSize size = decoder->size(); | 137 const IntSize size = decoder->size(); |
| 138 const SkImageInfo info = SkImageInfo::MakeN32Premul(size.width(), size.heigh
t()); | 138 const SkImageInfo info = SkImageInfo::MakeN32Premul(size.width(), size.heigh
t()); |
| 139 | 139 |
| 140 RefPtr<ImageFrameGenerator> frame = ImageFrameGenerator::create(SkISize::Mak
e(size.width(), size.height()), false); | 140 RefPtr<ImageFrameGenerator> frame = ImageFrameGenerator::create(SkISize::Mak
e(size.width(), size.height()), false); |
| 141 if (!frame) | 141 if (!frame) |
| 142 return 0; | 142 return 0; |
| 143 | 143 |
| 144 return new DecodingImageGenerator(frame, info, segmentReader.release(), true
, 0); | 144 return new DecodingImageGenerator(frame, info, segmentReader.release(), true
, 0); |
| 145 } | 145 } |
| 146 | 146 |
| 147 } // namespace blink | 147 } // namespace blink |
| OLD | NEW |