| Index: third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp b/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp
|
| index d9aaeec4e14d273606a3237a7b04ef8b9037ec67..ab7b2d7a2de7e4ce7fd64f5a8e77ddee4de6009a 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp
|
| @@ -103,11 +103,14 @@ static bool updateYUVComponentSizes(ImageDecoder* decoder,
|
| return true;
|
| }
|
|
|
| -ImageFrameGenerator::ImageFrameGenerator(const SkISize& fullSize,
|
| - sk_sp<SkColorSpace> colorSpace,
|
| - bool isMultiFrame)
|
| +ImageFrameGenerator::ImageFrameGenerator(
|
| + const SkISize& fullSize,
|
| + bool isMultiFrame,
|
| + ImageDecoder::ColorSpaceOption decoderColorSpaceOption,
|
| + sk_sp<SkColorSpace> decoderTargetColorSpace)
|
| : m_fullSize(fullSize),
|
| - m_colorSpace(std::move(colorSpace)),
|
| + m_decoderColorSpaceOption(decoderColorSpaceOption),
|
| + m_decoderTargetColorSpace(std::move(decoderTargetColorSpace)),
|
| m_isMultiFrame(isMultiFrame),
|
| m_decodeFailed(false),
|
| m_yuvDecodingFailed(false),
|
| @@ -174,9 +177,9 @@ bool ImageFrameGenerator::decodeToYUV(SegmentReader* data,
|
| return false;
|
| }
|
|
|
| - std::unique_ptr<ImageDecoder> decoder =
|
| - ImageDecoder::create(data, true, ImageDecoder::AlphaPremultiplied,
|
| - ImageDecoder::ColorSpaceApplied);
|
| + std::unique_ptr<ImageDecoder> decoder = ImageDecoder::create(
|
| + data, true, ImageDecoder::AlphaPremultiplied, m_decoderColorSpaceOption,
|
| + m_decoderTargetColorSpace);
|
| // getYUVComponentSizes was already called and was successful, so
|
| // ImageDecoder::create must succeed.
|
| ASSERT(decoder);
|
| @@ -296,9 +299,9 @@ bool ImageFrameGenerator::decode(SegmentReader* data,
|
| *decoder = m_imageDecoderFactory->create().release();
|
|
|
| if (!*decoder) {
|
| - *decoder = ImageDecoder::create(data, allDataReceived,
|
| - ImageDecoder::AlphaPremultiplied,
|
| - ImageDecoder::ColorSpaceApplied)
|
| + *decoder = ImageDecoder::create(
|
| + data, allDataReceived, ImageDecoder::AlphaPremultiplied,
|
| + m_decoderColorSpaceOption, m_decoderTargetColorSpace)
|
| .release();
|
| // The newly created decoder just grabbed the data. No need to reset it.
|
| shouldCallSetData = false;
|
| @@ -368,7 +371,8 @@ bool ImageFrameGenerator::getYUVComponentSizes(SegmentReader* data,
|
|
|
| std::unique_ptr<ImageDecoder> decoder =
|
| ImageDecoder::create(data, true, ImageDecoder::AlphaPremultiplied,
|
| - ImageDecoder::ColorSpaceApplied);
|
| + ImageDecoder::ColorSpaceTransformed,
|
| + ImageDecoder::globalTargetColorSpace());
|
| if (!decoder)
|
| return false;
|
|
|
|
|