Chromium Code Reviews| Index: src/codec/SkJpegCodec.cpp |
| diff --git a/src/codec/SkJpegCodec.cpp b/src/codec/SkJpegCodec.cpp |
| index e920de1956f4db76f75b66b5a087058d0ec25a03..3f1d0a893a12e48e5977d49c1a5e70cf33acea52 100644 |
| --- a/src/codec/SkJpegCodec.cpp |
| +++ b/src/codec/SkJpegCodec.cpp |
| @@ -211,17 +211,20 @@ bool SkJpegCodec::ReadHeader(SkStream* stream, SkCodec** codecOut, |
| } |
| if (codecOut) { |
| - // Recommend the color type to decode to |
| - const SkColorType colorType = decoderMgr->getColorType(); |
| + // Get the encoded color type |
| + SkEncodedInfo::Color color; |
| + if (!decoderMgr->getEncodedColor(&color)) { |
|
scroggo
2016/03/24 20:51:03
Alternatively, this could return kUnknown on failu
msarett
2016/03/24 22:42:07
You're right, I like that better.
|
| + return false; |
| + } |
| // Create image info object and the codec |
| - const SkImageInfo& imageInfo = SkImageInfo::Make(decoderMgr->dinfo()->image_width, |
| - decoderMgr->dinfo()->image_height, colorType, kOpaque_SkAlphaType); |
| + SkEncodedInfo info = SkEncodedInfo::Make(decoderMgr->dinfo()->image_width, |
| + decoderMgr->dinfo()->image_height, color, SkEncodedInfo::kOpaque_Alpha, 8); |
| Origin orientation = get_exif_orientation(decoderMgr->dinfo()); |
| sk_sp<SkColorSpace> colorSpace = get_icc_profile(decoderMgr->dinfo()); |
| - *codecOut = new SkJpegCodec(imageInfo, stream, decoderMgr.release(), colorSpace, |
| + *codecOut = new SkJpegCodec(info, stream, decoderMgr.release(), colorSpace, |
| orientation); |
| } else { |
| SkASSERT(nullptr != decoderMgrOut); |
| @@ -242,9 +245,9 @@ SkCodec* SkJpegCodec::NewFromStream(SkStream* stream) { |
| return nullptr; |
| } |
| -SkJpegCodec::SkJpegCodec(const SkImageInfo& srcInfo, SkStream* stream, |
| +SkJpegCodec::SkJpegCodec(const SkEncodedInfo& info, SkStream* stream, |
| JpegDecoderMgr* decoderMgr, sk_sp<SkColorSpace> colorSpace, Origin origin) |
| - : INHERITED(srcInfo, stream, colorSpace, origin) |
| + : INHERITED(info, stream, colorSpace, origin) |
| , fDecoderMgr(decoderMgr) |
| , fReadyState(decoderMgr->dinfo()->global_state) |
| , fSwizzlerSubset(SkIRect::MakeEmpty()) |