diff options
author | 2016-06-01 09:16:04 -0700 | |
---|---|---|
committer | 2016-06-01 09:16:04 -0700 | |
commit | 4a603fc591dcd36b3cb47344c244ecbbbaf179f4 (patch) | |
tree | 3d580f4b47ff8ac6b9843803d1ac60538d09bc4f /src/codec/SkJpegCodec.cpp | |
parent | c4b091543b4082fd1a2f356ef3b478073c5f9418 (diff) |
Revert of Create SkColorSpaceXform to handle color conversions (patchset #10 id:260001 of https://codereview.chromium.org/1952063002/ )
Reason for revert:
Google3 can't find qcms
Original issue's description:
> Create SkColorSpaceXform to handle color conversions
>
> Also adds testing of qcms color correction, so we can compare
> SkColorSpaceXform outputs to qcms outputs.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1952063002
>
> Committed: https://skia.googlesource.com/skia/+/740cc88ee3d63c75e52d31238f2a32600cc57a8c
TBR=reed@google.com,scroggo@google.com,mtklein@google.com,herb@google.com,brianosman@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2023093004
Diffstat (limited to 'src/codec/SkJpegCodec.cpp')
-rw-r--r-- | src/codec/SkJpegCodec.cpp | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/src/codec/SkJpegCodec.cpp b/src/codec/SkJpegCodec.cpp index 0413f79a3c..85de356118 100644 --- a/src/codec/SkJpegCodec.cpp +++ b/src/codec/SkJpegCodec.cpp @@ -120,7 +120,7 @@ static bool is_icc_marker(jpeg_marker_struct* marker) { * (1) Discover all ICC profile markers and verify that they are numbered properly. * (2) Copy the data from each marker into a contiguous ICC profile. */ -static sk_sp<SkData> get_icc_profile(jpeg_decompress_struct* dinfo) { +static sk_sp<SkColorSpace> get_icc_profile(jpeg_decompress_struct* dinfo) { // Note that 256 will be enough storage space since each markerIndex is stored in 8-bits. jpeg_marker_struct* markerSequence[256]; memset(markerSequence, 0, sizeof(markerSequence)); @@ -165,8 +165,8 @@ static sk_sp<SkData> get_icc_profile(jpeg_decompress_struct* dinfo) { } // Combine the ICC marker data into a contiguous profile. - sk_sp<SkData> iccData = SkData::MakeUninitialized(totalBytes); - void* dst = iccData->writable_data(); + SkAutoMalloc iccData(totalBytes); + void* dst = iccData.get(); for (uint32_t i = 1; i <= numMarkers; i++) { jpeg_marker_struct* marker = markerSequence[i]; if (!marker) { @@ -180,7 +180,7 @@ static sk_sp<SkData> get_icc_profile(jpeg_decompress_struct* dinfo) { dst = SkTAddOffset<void>(dst, bytes); } - return iccData; + return SkColorSpace::NewICC(iccData.get(), totalBytes); } bool SkJpegCodec::ReadHeader(SkStream* stream, SkCodec** codecOut, @@ -221,14 +221,7 @@ bool SkJpegCodec::ReadHeader(SkStream* stream, SkCodec** codecOut, SkEncodedInfo info = SkEncodedInfo::Make(color, SkEncodedInfo::kOpaque_Alpha, 8); Origin orientation = get_exif_orientation(decoderMgr->dinfo()); - sk_sp<SkData> iccData = get_icc_profile(decoderMgr->dinfo()); - sk_sp<SkColorSpace> colorSpace = nullptr; - if (iccData) { - colorSpace = SkColorSpace::NewICC(iccData->data(), iccData->size()); - if (!colorSpace) { - SkCodecPrintf("Could not create SkColorSpace from ICC data.\n"); - } - } + sk_sp<SkColorSpace> colorSpace = get_icc_profile(decoderMgr->dinfo()); if (!colorSpace) { // Treat unmarked jpegs as sRGB. colorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); @@ -237,7 +230,7 @@ bool SkJpegCodec::ReadHeader(SkStream* stream, SkCodec** codecOut, const int width = decoderMgr->dinfo()->image_width; const int height = decoderMgr->dinfo()->image_height; *codecOut = new SkJpegCodec(width, height, info, stream, decoderMgr.release(), - std::move(colorSpace), orientation, std::move(iccData)); + std::move(colorSpace), orientation); } else { SkASSERT(nullptr != decoderMgrOut); *decoderMgrOut = decoderMgr.release(); @@ -258,13 +251,11 @@ SkCodec* SkJpegCodec::NewFromStream(SkStream* stream) { } SkJpegCodec::SkJpegCodec(int width, int height, const SkEncodedInfo& info, SkStream* stream, - JpegDecoderMgr* decoderMgr, sk_sp<SkColorSpace> colorSpace, Origin origin, - sk_sp<SkData> iccData) + JpegDecoderMgr* decoderMgr, sk_sp<SkColorSpace> colorSpace, Origin origin) : INHERITED(width, height, info, stream, std::move(colorSpace), origin) , fDecoderMgr(decoderMgr) , fReadyState(decoderMgr->dinfo()->global_state) , fSwizzlerSubset(SkIRect::MakeEmpty()) - , fICCData(std::move(iccData)) {} /* |