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

Unified Diff: third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp

Issue 2523943002: Explicitly specify target color space to ImageDecoder at creation (Closed)
Patch Set: Rebase Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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..2b665bb78554b60459ac5ee544b62fec45353f66 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;
@@ -366,9 +369,9 @@ bool ImageFrameGenerator::getYUVComponentSizes(SegmentReader* data,
if (m_yuvDecodingFailed)
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);
if (!decoder)
return false;

Powered by Google App Engine
This is Rietveld 408576698