Date: Sun, 06 May 2018 18:04:33 +0000 From: bugzilla-noreply@freebsd.org To: chromium@FreeBSD.org Subject: [Bug 227915] www/chromium: fails to build with graphics/jpeg Message-ID: <bug-227915-28929-f3RSIAlu9m@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-227915-28929@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227915 --- Comment #7 from gja822@narod.ru --- Comment on attachment 193108 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=193108 for compilation with graphics/jpeg >--- SkJpegCodec.cpp_o 2018-05-07 00:18:31.461277000 +0700 >+++ /usr/ports/www/chromium/work/chromium-65.0.3325.181/third_party/skia/src/codec/SkJpegCodec.cpp 2018-05-07 00:34:58.580849000 +0700 >@@ -305,10 +305,14 @@ SkJpegCodec::SkJpegCodec(int width, int > /* > * Return the row bytes of a particular image type and width > */ > static size_t get_row_bytes(const j_decompress_ptr dinfo) { >- const size_t colorBytes = (dinfo->out_color_space == JCS_RGB565) ? 2 : >+ const size_t colorBytes = >+#ifdef JCS_EXTENSIONS >+ (dinfo->out_color_space == JCS_RGB565) ? 2 : >+#endif > dinfo->out_color_components; >+ > return dinfo->output_width * colorBytes; > > } > >@@ -396,8 +400,9 @@ bool SkJpegCodec::setOutputColorSpace(co > > J_COLOR_SPACE encodedColorType = fDecoderMgr->dinfo()->jpeg_color_space; > > // Check for valid color types and set the output color space >+#ifdef JCS_EXTENSIONS > switch (dstInfo.colorType()) { > case kRGBA_8888_SkColorType: > fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; > break; >@@ -436,8 +441,39 @@ bool SkJpegCodec::setOutputColorSpace(co > break; > default: > return false; > } >+#else >+ if (dstInfo.colorType() == kGray_8_SkColorType) { >+ if (this->colorXform() || JCS_GRAYSCALE != encodedColorType) { >+ return false; >+ } >+ >+ fDecoderMgr->dinfo()->out_color_space = JCS_GRAYSCALE; >+ } >+ else >+ if ((dstInfo.colorType() == kGray_8_SkColorType) || >+ (dstInfo.colorType() == kBGRA_8888_SkColorType) || >+ (dstInfo.colorType() == kRGB_565_SkColorType) ) { >+ fDecoderMgr->dinfo()->out_color_space = JCS_RGB; >+ } >+ else >+ if (dstInfo.colorType() == kRGBA_F16_SkColorType) >+ { >+ SkASSERT(this->colorXform()); >+ >+ if (!dstInfo.colorSpace()->gammaIsLinear()) { >+ return false; >+ } >+ >+ fDecoderMgr->dinfo()->out_color_space = JCS_RGB; >+ } >+ else >+ { >+ return false; >+ } >+ } >+#endif > > // Check if we will decode to CMYK. libjpeg-turbo does not convert CMYK to RGBA, so > // we must do it ourselves. > if (JCS_CMYK == encodedColorType || JCS_YCCK == encodedColorType) { >@@ -711,9 +747,11 @@ SkCodec::Result SkJpegCodec::onStartScan > // block size. If this is the case, it will decrease the value of > // startX to the appropriate alignment and also increase the value > // of width so that the right edge of the requested subset remains > // the same. >+#ifdef JCS_EXTENSIONS > jpeg_crop_scanline(fDecoderMgr->dinfo(), &startX, &width); >+#endif > > SkASSERT(startX <= (uint32_t) options.fSubset->x()); > SkASSERT(width >= (uint32_t) options.fSubset->width()); > SkASSERT(startX + width >= (uint32_t) options.fSubset->right()); >@@ -762,13 +800,17 @@ int SkJpegCodec::onGetScanlines(void* ds > > bool SkJpegCodec::onSkipScanlines(int count) { > // Set the jump location for libjpeg errors > skjpeg_error_mgr::AutoPushJmpBuf jmp(fDecoderMgr->errorMgr()); >+#ifdef JCS_EXTENSIONS > if (setjmp(jmp)) { > return fDecoderMgr->returnFalse("onSkipScanlines"); > } > > return (uint32_t) count == jpeg_skip_scanlines(fDecoderMgr->dinfo(), count); >+#else >+ return fDecoderMgr->returnFalse("onSkipScanlines"); >+#endif > } > > static bool is_yuv_supported(jpeg_decompress_struct* dinfo) { > // Scaling is not supported in raw data mode. -- You are receiving this mail because: You are on the CC list for the bug.help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-227915-28929-f3RSIAlu9m>
