Author: post
Date: 2012-02-18 17:17:41 +0100 (Sat, 18 Feb 2012)
New Revision: 4148
Modified:
trunk/configure.in
trunk/plugins/colorspace-transform/Makefile.am
trunk/plugins/colorspace-transform/rs-cmm.c
trunk/plugins/load-dcraw/Makefile.am
trunk/plugins/load-dcraw/dcraw.cc
trunk/plugins/load-gdk/load-gdk.c
Log:
Support both lcms v1 and v2 - automatically determined at configure.
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2012-02-18 11:22:50 UTC (rev 4147)
+++ trunk/configure.in 2012-02-18 16:17:41 UTC (rev 4148)
@@ -100,9 +100,14 @@
AC_SUBST(LENSFUN_CFLAGS)
AC_SUBST(LENSFUN_LIBS)
-PKG_CHECK_MODULES(LCMS2, [lcms2])
-AC_SUBST(LCMS2_CFLAGS)
-AC_SUBST(LCMS2_LIBS)
+PKG_CHECK_MODULES([LCMS], [lcms2],
+ [AC_DEFINE([HAVE_LCMS2], [1], [Use LCMS2])],
+ [PKG_CHECK_MODULES([LCMS], [lcms],
+ [AC_DEFINE([HAVE_LCMS], [1], [Use LCMS])
+ ], AC_MSG_ERROR([*** liblcms or liblcms2 not found!]))
+])
+AC_SUBST(LCMS_CFLAGS)
+AC_SUBST(LCMS_LIBS)
PKG_CHECK_MODULES(LIBGPHOTO2, [libgphoto2])
AC_SUBST(LIBGPHOTO2_CFLAGS)
Modified: trunk/plugins/colorspace-transform/Makefile.am
===================================================================
--- trunk/plugins/colorspace-transform/Makefile.am 2012-02-18 11:22:50 UTC
(rev 4147)
+++ trunk/plugins/colorspace-transform/Makefile.am 2012-02-18 16:17:41 UTC
(rev 4148)
@@ -9,7 +9,7 @@
INCLUDES = \
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
- @PACKAGE_CFLAGS@ @LCMS2_CFLAGS@ \
+ @PACKAGE_CFLAGS@ @LCMS_CFLAGS@ \
-I$(top_srcdir)/librawstudio/ \
-I$(top_srcdir)/
@@ -17,7 +17,7 @@
libdir = $(datadir)/rawstudio/plugins/
-colorspace_transform_la_LIBADD = @PACKAGE_LIBS@ @LCMS2_LIBS@
colorspace_transform_avx.lo colorspace_transform_sse2.lo rs-cmm.lo
colorspace_transform-c.lo
+colorspace_transform_la_LIBADD = @PACKAGE_LIBS@ @LCMS_LIBS@
colorspace_transform_avx.lo colorspace_transform_sse2.lo rs-cmm.lo
colorspace_transform-c.lo
colorspace_transform_la_LDFLAGS = -module -avoid-version
colorspace_transform_la_SOURCES =
Modified: trunk/plugins/colorspace-transform/rs-cmm.c
===================================================================
--- trunk/plugins/colorspace-transform/rs-cmm.c 2012-02-18 11:22:50 UTC (rev
4147)
+++ trunk/plugins/colorspace-transform/rs-cmm.c 2012-02-18 16:17:41 UTC (rev
4148)
@@ -17,7 +17,16 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA.
*/
+#include <config.h>
+
+#if defined(HAVE_LCMS2)
#include <lcms2.h>
+#elif defined(HAVE_LCMS)
+#include <lcms.h>
+#else
+#error "LCMS v1 or LCMS v2 required"
+#endif
+
#include <math.h>
#include <stdlib.h>
#include "rs-cmm.h"
@@ -403,11 +412,18 @@
{0.115, 0.826, 0.724938},
{0.157, 0.018, 0.016875}};
cmsCIExyY D65;
+
+#if defined(HAVE_LCMS2)
+ gint context = 1337;
cmsToneCurve* gamma[3];
- gint context = 1337;
-
cmsWhitePointFromTemp(&D65, 6504);
gamma[0] = gamma[1] = gamma[2] = cmsBuildGamma(&context,1.0);
+#else
+ LPGAMMATABLE gamma[3];
+ cmsWhitePointFromTemp(6504, &D65);
+ gamma[0] = gamma[1] = gamma[2] = cmsBuildGamma(2,1.0);
+#endif
+
linear = cmsCreateRGBProfile(&D65, &srgb_primaries, gamma);
}
g_mutex_unlock(is_profile_gamma_22_corrected_linear_lock);
@@ -443,8 +459,11 @@
cmm->lcms_transform16 = cmsCreateTransform(
cmm->lcms_input_profile, TYPE_RGBA_16,
cmm->lcms_output_profile, TYPE_RGBA_16,
+#if defined(HAVE_LCMS2)
INTENT_PERCEPTUAL, cmsFLAGS_NOCACHE);
-
+#else
+ INTENT_PERCEPTUAL, 0);
+#endif
g_warn_if_fail(cmm->lcms_transform16 != NULL);
/* Enable packing/unpacking for pixelsize==4 */
Modified: trunk/plugins/load-dcraw/Makefile.am
===================================================================
--- trunk/plugins/load-dcraw/Makefile.am 2012-02-18 11:22:50 UTC (rev
4147)
+++ trunk/plugins/load-dcraw/Makefile.am 2012-02-18 16:17:41 UTC (rev
4148)
@@ -12,7 +12,7 @@
INCLUDES = \
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
- @PACKAGE_CFLAGS@ @LCMS2_CFLAGS@\
+ @PACKAGE_CFLAGS@ @LCMS_CFLAGS@\
-I$(top_srcdir)/librawstudio/ \
-I$(top_srcdir)/
@@ -20,6 +20,6 @@
libdir = $(datadir)/rawstudio/plugins/
-load_dcraw_la_LIBADD = @PACKAGE_LIBS@ @LCMS2_LIBS@
+load_dcraw_la_LIBADD = @PACKAGE_LIBS@ @LCMS_LIBS@
load_dcraw_la_LDFLAGS = -module -avoid-version
load_dcraw_la_SOURCES = dcrawloader.c dcraw.cc dcraw.h dcraw_api.cc
dcraw_api.h mmap-hack.c mmap-hack.h
Modified: trunk/plugins/load-dcraw/dcraw.cc
===================================================================
--- trunk/plugins/load-dcraw/dcraw.cc 2012-02-18 11:22:50 UTC (rev 4147)
+++ trunk/plugins/load-dcraw/dcraw.cc 2012-02-18 16:17:41 UTC (rev 4148)
@@ -62,8 +62,16 @@
NO_LCMS disables the "-p" option.
*/
#ifndef NO_LCMS
+#include <config.h>
+#if defined(HAVE_LCMS2)
#include <lcms2.h>
+#elif defined(HAVE_LCMS)
+#include <lcms.h>
+#else
+#error "LCMS v1 or LCMS v2 required"
#endif
+#endif
+
#ifdef HAVE_LIBJPEG
extern "C" {
#include <jpeglib.h> /* Decode compressed Kodak DC120 photos */
Modified: trunk/plugins/load-gdk/load-gdk.c
===================================================================
--- trunk/plugins/load-gdk/load-gdk.c 2012-02-18 11:22:50 UTC (rev 4147)
+++ trunk/plugins/load-gdk/load-gdk.c 2012-02-18 16:17:41 UTC (rev 4148)
@@ -20,7 +20,14 @@
#include <rawstudio.h>
#include <math.h> /* pow() */
#include "exiv2-colorspace.h"
+#include <config.h>
+#if defined(HAVE_LCMS2)
#include <lcms2.h>
+#elif defined(HAVE_LCMS)
+#include <lcms.h>
+#else
+#error "LCMS v1 or LCMS v2 required"
+#endif
/**
@@ -56,6 +63,7 @@
cmsHPROFILE *lcms_target = cmsOpenProfileFromMem(data,
length);
if (lcms_target)
{
+#if defined(HAVE_LCMS2)
cmsToneCurve *curve = NULL;
if (cmsIsTag(lcms_target, cmsSigGrayTRCTag))
curve = cmsReadTag(lcms_target,
cmsSigGrayTRCTag);
@@ -68,6 +76,21 @@
if (gamma>0.0)
gamma_guess = gamma;
}
+#else
+ LPGAMMATABLE curve = NULL;
+ if (cmsIsTag(lcms_target, icSigGrayTRCTag))
+ curve = cmsReadICCGamma(lcms_target,
icSigGrayTRCTag);
+
+ if (NULL== curve && cmsIsTag(lcms_target,
icSigRedTRCTag))
+ curve = cmsReadICCGamma(lcms_target,
icSigRedTRCTag);
+
+ if (curve)
+ {
+ double gamma = cmsEstimateGamma(curve);
+ if (gamma>0.0)
+ gamma_guess = gamma;
+ }
+#endif
}
}
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit