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 |
} |