Index: src/codec/SkJpegCodec.cpp |
diff --git a/src/codec/SkJpegCodec.cpp b/src/codec/SkJpegCodec.cpp |
index d0d11b1a08bd5a7ecc16bc8cbadbd78ce2d7be92..f25d7de9f07a7c2c99c68ac9e9faf425e6aaba27 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) |
scroggo
2015/10/14 20:41:33
Instead, should this be based on whether JCS_RGB56
|
+ int colorBytes = dinfo->out_color_components; |
+#else |
int colorBytes = (dinfo->out_color_space == JCS_RGB565) ? 2 : dinfo->out_color_components; |
+#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 |
scroggo
2015/10/14 20:41:33
nit: I think this comment goes inside the #else st
|
// current platform |
-#if defined(SK_PMCOLOR_IS_RGBA) |
- fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; |
+#if defined(GOOGLE3) |
+ return false; |
scroggo
2015/10/14 20:41:33
So in GOOGLE3 we can only do CMYK to N32? That see
|
#else |
+ #if defined(SK_PMCOLOR_IS_RGBA) |
+ fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; |
+ #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(); |
scroggo
2015/10/14 20:41:33
Why this difference?
|
+#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"); |
} |
- return count == jpeg_skip_scanlines(fDecoderMgr->dinfo(), count); |
+#ifndef TURBO_HAS_SKIP |
+ jpeg_skip_scanlines(fDecoderMgr->dinfo(), count); |
+ return true; |
+#else |
+ return (uint32_t) count == jpeg_skip_scanlines(fDecoderMgr->dinfo(), count); |
+#endif |
} |