Compare commits

...

2 Commits

Author SHA1 Message Date
68e786b4e8
Fix build with JPEG-QS but without lcms2 2022-01-06 06:15:08 +01:00
9a1396b91f
Update comments 2022-01-05 12:07:05 +01:00

View File

@ -27,20 +27,22 @@
#include <webp/encode.h>
#include <webp/mux.h>
// Colour management must be handled before RGB conversions.
#ifdef HAVE_LCMS2
#include <lcms2.h>
#endif // HAVE_LCMS2
#ifdef HAVE_JPEG_QS
#include <jpeglib.h>
#include <setjmp.h>
#include <stdio.h>
#include <jpeglib.h>
// This library is tricky to build, simply make it work at all.
#define NO_SIMD
#include <jpeg-quantsmooth/quantsmooth.h>
#undef NO_SIMD
#endif // HAVE_JPEG_QS
// Colour management must be handled before RGB conversions.
#ifdef HAVE_LCMS2
#include <lcms2.h>
#endif // HAVE_LCMS2
#ifdef HAVE_LIBRAW
#include <libraw.h>
#endif // HAVE_LIBRAW
@ -265,6 +267,7 @@ static void
trivial_cmyk_to_host_byte_order_argb(unsigned char *p, int len)
{
// This CMYK handling has been seen in gdk-pixbuf/JPEG, GIMP/JPEG, skcms.
// It will typically produce horribly oversaturated results.
// Assume that all YCCK/CMYK JPEG files use inverted CMYK, as Photoshop
// does, see https://bugzilla.gnome.org/show_bug.cgi?id=618096
while (len--) {
@ -1055,6 +1058,10 @@ static cairo_surface_t *
open_libjpeg_turbo(
const gchar *data, gsize len, FivIoProfile profile, GError **error)
{
// Note that there doesn't seem to be much of a point in using this
// simplified API anymore, because JPEG-QS needs the original libjpeg API.
// It's just more or less duplicated code which won't compile with
// the slow version of the library.
tjhandle dec = tjInitDecompress();
if (!dec) {
set_error(error, tjGetErrorStr2(dec));
@ -2325,7 +2332,7 @@ fiv_io_open(
cairo_surface_t *surface =
fiv_io_open_from_data(data, len, uri, profile, enhance, error);
free(data);
g_free(data);
return surface;
}