Chromium Code Reviews| Index: src/codec/SkJpegCodec.cpp |
| diff --git a/src/codec/SkJpegCodec.cpp b/src/codec/SkJpegCodec.cpp |
| index d0d11b1a08bd5a7ecc16bc8cbadbd78ce2d7be92..ba39db78105c0fd43283a8a97c93ca1de87074b9 100644 |
| --- a/src/codec/SkJpegCodec.cpp |
| +++ b/src/codec/SkJpegCodec.cpp |
| @@ -151,7 +151,11 @@ SkJpegCodec::SkJpegCodec(const SkImageInfo& srcInfo, SkStream* stream, |
| * Return the row bytes of a particular image type and width |
| */ |
| static int get_row_bytes(const j_decompress_ptr dinfo) { |
| +#if defined (GOOGLE3) |
| + int colorBytes = dinfo->out_color_components; |
| +#else |
| int colorBytes = (dinfo->out_color_space == JCS_RGB565) ? 2 : dinfo->out_color_components; |
|
msarett
2015/10/14 19:58:25
RGB565 is relatively new to turbo.
I had to add t
dogben
2015/10/14 23:11:06
Acknowledged.
|
| +#endif |
| return dinfo->output_width * colorBytes; |
| } |
| @@ -247,10 +251,14 @@ bool SkJpegCodec::setOutputColorSpace(const SkImageInfo& dst) { |
| } else { |
| // Check the byte ordering of the RGBA color space for the |
| // current platform |
| -#if defined(SK_PMCOLOR_IS_RGBA) |
| - fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; |
| +#if defined(GOOGLE3) |
| + return false; |
| #else |
| + #if defined(SK_PMCOLOR_IS_RGBA) |
| + fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; |
|
msarett
2015/10/14 19:58:25
RGBA and BGRA aren't a part of libjpeg.
We will h
dogben
2015/10/14 23:11:05
It's libjpeg. I'll follow up with you about this.
|
| + #else |
| fDecoderMgr->dinfo()->out_color_space = JCS_EXT_BGRA; |
| + #endif |
| #endif |
| } |
| return true; |
| @@ -261,8 +269,12 @@ bool SkJpegCodec::setOutputColorSpace(const SkImageInfo& dst) { |
| // best to do this in SkSwizzler and also move convert_CMYK_to_RGBA into SkSwizzler. |
| return false; |
| } else { |
| +#if defined(GOOGLE3) |
| + return false; |
| +#else |
| fDecoderMgr->dinfo()->dither_mode = JDITHER_NONE; |
| fDecoderMgr->dinfo()->out_color_space = JCS_RGB565; |
| +#endif |
| } |
| return true; |
| case kGray_8_SkColorType: |
| @@ -397,7 +409,11 @@ void SkJpegCodec::initializeSwizzler(const SkImageInfo& dstInfo, const Options& |
| break; |
| default: |
| // This function should only be called if the colorType is supported by jpeg |
| +#if defined(GOOGLE3) |
| + SK_CRASH(); |
| +#else |
| SkASSERT(false); |
| +#endif |
| } |
| fSwizzler.reset(SkSwizzler::CreateSwizzler(srcConfig, nullptr, dstInfo, options)); |
| @@ -503,5 +519,10 @@ bool SkJpegCodec::onSkipScanlines(int count) { |
| return fDecoderMgr->returnFalse("setjmp"); |
| } |
| +#ifndef TURBO_HAS_SKIP |
| + jpeg_skip_scanlines(fDecoderMgr->dinfo(), count); |
|
msarett
2015/10/14 19:58:25
This works for now. I need to clean this up.
dogben
2015/10/14 23:11:05
Cool, thanks!
|
| + return true; |
| +#else |
| return count == jpeg_skip_scanlines(fDecoderMgr->dinfo(), count); |
| +#endif |
| } |