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

Unified Diff: src/codec/SkJpegCodec.cpp

Issue 1820073002: Add SkEncodedInfo to report properties of encoded image data (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Response to comments Created 4 years, 9 months 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: 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())
« no previous file with comments | « src/codec/SkJpegCodec.h ('k') | src/codec/SkJpegDecoderMgr.h » ('j') | src/codec/SkWebpCodec.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698