A Dimarts, 28 de setembre de 2010, Albert Astals Cid va escriure:
> A Dissabte, 24 de juliol de 2010, Albert Astals Cid va escriure:
> > To the packagers reading the list, please pakcage littlecms2 it gives
> > poppler a free 10% speed increase in files using cms transformations.
>
> Following this up if noone disagrees i'll make poppler 0.15.1 depend on
> littlecms2 instead of littlecms1.
At the end i won't make this since when using the attached patch on
$ md5sum altona_technical_1v2_x3.pdf
c524ab2cd02240b12eab3ee9f8887a9f altona_technical_1v2_x3.pdf
The speed changes from 753 msecs to 7123 msecs
It seems we are doing some things wrong? Specially in the lineTransform
creation.
If anyone can have a look it would be cool since lcms2 is supposed to be much
faster than lcms1 (and i think it was last time i tried, but it is 10 times
slower now :-S)
Albert
>
> Albert
>
> > Thanks,
> >
> > Albert
> >
> > _______________________________________________
> > poppler mailing list
> > [email protected]
> > http://lists.freedesktop.org/mailman/listinfo/poppler
>
> _______________________________________________
> poppler mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/poppler
diff --git a/cmake/modules/FindLCMS.cmake b/cmake/modules/FindLCMS.cmake
index 9d162d2..07c6631 100644
--- a/cmake/modules/FindLCMS.cmake
+++ b/cmake/modules/FindLCMS.cmake
@@ -17,22 +17,22 @@
# in the FIND_PATH() and FIND_LIBRARY() calls
if(NOT WIN32)
find_package(PkgConfig)
- pkg_check_modules(PC_LCMS lcms)
+ pkg_check_modules(PC_LCMS lcms2)
set(LCMS_DEFINITIONS ${PC_LCMS_CFLAGS_OTHER})
endif(NOT WIN32)
-find_path(LCMS_INCLUDE_DIR lcms.h
+find_path(LCMS_INCLUDE_DIR lcms2.h
PATHS
${PC_LCMS_INCLUDEDIR}
${PC_LCMS_INCLUDE_DIRS}
- PATH_SUFFIXES lcms liblcms1
+ PATH_SUFFIXES lcms2 liblcms2
)
-find_library(LCMS_LIBRARIES NAMES lcms liblcms lcms-1 liblcms-1
+find_library(LCMS_LIBRARIES NAMES lcms2 liblcms2 lcms-2 liblcms-2
PATHS
${PC_LCMS_LIBDIR}
${PC_LCMS_LIBRARY_DIRS}
- PATH_SUFFIXES lcms
+ PATH_SUFFIXES lcms2
)
if(LCMS_INCLUDE_DIR AND LCMS_LIBRARIES)
@@ -43,7 +43,7 @@ endif(LCMS_INCLUDE_DIR AND LCMS_LIBRARIES)
if(LCMS_FOUND)
set(FIND_LCMS_VERSION_SOURCE
- "#include <lcms.h>\n int main()\n {\n return LCMS_VERSION;\n }\n")
+ "#include <lcms2.h>\n int main()\n {\n return LCMS_VERSION;\n }\n")
set(FIND_LCMS_VERSION_SOURCE_FILE ${CMAKE_BINARY_DIR}/CMakeTmp/FindLCMS.cxx)
file(WRITE "${FIND_LCMS_VERSION_SOURCE_FILE}" "${FIND_LCMS_VERSION_SOURCE}")
@@ -73,9 +73,9 @@ if(LCMS_FOUND)
else(LCMS_FOUND)
if(NOT LCMS_FIND_QUIETLY)
if(LCMS_FIND_REQUIRED)
- message(FATAL_ERROR "Required package lcms NOT found")
+ message(FATAL_ERROR "Required package lcms2 NOT found")
else(LCMS_FIND_REQUIRED)
- message(STATUS "lcms NOT found")
+ message(STATUS "lcms2 NOT found")
endif(LCMS_FIND_REQUIRED)
endif(NOT LCMS_FIND_QUIETLY)
endif(LCMS_FOUND)
diff --git a/configure.ac b/configure.ac
index 71b1537..90d0ce6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -586,9 +586,9 @@ AC_ARG_ENABLE(cms,
enable_cms=$enableval,
enable_cms="try")
if test x$enable_cms = xyes; then
- PKG_CHECK_MODULES(LCMS, lcms)
+ PKG_CHECK_MODULES(LCMS, lcms2)
elif test x$enable_cms = xtry; then
- PKG_CHECK_MODULES(LCMS, lcms, [enable_cms=yes], [enable_cms=no])
+ PKG_CHECK_MODULES(LCMS, lcms2, [enable_cms=yes], [enable_cms=no])
fi
if test "x$enable_cms" = "xyes"; then
diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc
index c750d2d..85a3fae 100644
--- a/poppler/GfxState.cc
+++ b/poppler/GfxState.cc
@@ -129,7 +129,7 @@ static char *gfxColorSpaceModeNames[] = {
#ifdef USE_CMS
-#include <lcms.h>
+#include <lcms2.h>
#define COLOR_PROFILE_DIR "/ColorProfiles/"
#define GLOBAL_COLOR_PROFILE_DIR POPPLER_DATADIR COLOR_PROFILE_DIR
@@ -163,8 +163,8 @@ static unsigned int displayPixelType = 0;
static GfxColorTransform *XYZ2DisplayTransform = NULL;
// convert color space signature to cmsColor type
-static unsigned int getCMSColorSpaceType(icColorSpaceSignature cs);
-static unsigned int getCMSNChannels(icColorSpaceSignature cs);
+static unsigned int getCMSColorSpaceType(cmsColorSpaceSignature cs);
+static unsigned int getCMSNChannels(cmsColorSpaceSignature cs);
static cmsHPROFILE loadColorProfile(const char *fileName);
void GfxColorSpace::setDisplayProfile(void *displayProfileA) {
@@ -303,10 +303,9 @@ cmsHPROFILE loadColorProfile(const char *fileName)
return hp;
}
-static int CMSError(int ecode, const char *msg)
+static void CMSError(cmsContext ContextID, cmsUInt32Number ErrorCode, const char *msg)
{
- error(-1, "%s", msg);
- return 1;
+ error(-1, "lcms errror %d %s", ErrorCode, msg);
}
int GfxColorSpace::setupColorProfiles()
@@ -320,7 +319,7 @@ int GfxColorSpace::setupColorProfiles()
initialized = gTrue;
// set error handlor
- cmsSetErrorHandler(CMSError);
+ cmsSetLogErrorHandler(CMSError);
if (displayProfile == NULL) {
// load display profile if it was not already loaded.
@@ -356,118 +355,118 @@ int GfxColorSpace::setupColorProfiles()
return 0;
}
-unsigned int getCMSColorSpaceType(icColorSpaceSignature cs)
+unsigned int getCMSColorSpaceType(cmsColorSpaceSignature cs)
{
switch (cs) {
- case icSigXYZData:
+ case cmsSigXYZData:
return PT_XYZ;
break;
- case icSigLabData:
+ case cmsSigLabData:
return PT_Lab;
break;
- case icSigLuvData:
+ case cmsSigLuvData:
return PT_YUV;
break;
- case icSigYCbCrData:
+ case cmsSigYCbCrData:
return PT_YCbCr;
break;
- case icSigYxyData:
+ case cmsSigYxyData:
return PT_Yxy;
break;
- case icSigRgbData:
+ case cmsSigRgbData:
return PT_RGB;
break;
- case icSigGrayData:
+ case cmsSigGrayData:
return PT_GRAY;
break;
- case icSigHsvData:
+ case cmsSigHsvData:
return PT_HSV;
break;
- case icSigHlsData:
+ case cmsSigHlsData:
return PT_HLS;
break;
- case icSigCmykData:
+ case cmsSigCmykData:
return PT_CMYK;
break;
- case icSigCmyData:
+ case cmsSigCmyData:
return PT_CMY;
break;
- case icSig2colorData:
- case icSig3colorData:
- case icSig4colorData:
- case icSig5colorData:
- case icSig6colorData:
- case icSig7colorData:
- case icSig8colorData:
- case icSig9colorData:
- case icSig10colorData:
- case icSig11colorData:
- case icSig12colorData:
- case icSig13colorData:
- case icSig14colorData:
- case icSig15colorData:
+ case cmsSig2colorData:
+ case cmsSig3colorData:
+ case cmsSig4colorData:
+ case cmsSig5colorData:
+ case cmsSig6colorData:
+ case cmsSig7colorData:
+ case cmsSig8colorData:
+ case cmsSig9colorData:
+ case cmsSig10colorData:
+ case cmsSig11colorData:
+ case cmsSig12colorData:
+ case cmsSig13colorData:
+ case cmsSig14colorData:
+ case cmsSig15colorData:
default:
break;
}
return PT_RGB;
}
-unsigned int getCMSNChannels(icColorSpaceSignature cs)
+unsigned int getCMSNChannels(cmsColorSpaceSignature cs)
{
switch (cs) {
- case icSigXYZData:
- case icSigLuvData:
- case icSigLabData:
- case icSigYCbCrData:
- case icSigYxyData:
- case icSigRgbData:
- case icSigHsvData:
- case icSigHlsData:
- case icSigCmyData:
- case icSig3colorData:
+ case cmsSigXYZData:
+ case cmsSigLuvData:
+ case cmsSigLabData:
+ case cmsSigYCbCrData:
+ case cmsSigYxyData:
+ case cmsSigRgbData:
+ case cmsSigHsvData:
+ case cmsSigHlsData:
+ case cmsSigCmyData:
+ case cmsSig3colorData:
return 3;
break;
- case icSigGrayData:
+ case cmsSigGrayData:
return 1;
break;
- case icSigCmykData:
- case icSig4colorData:
+ case cmsSigCmykData:
+ case cmsSig4colorData:
return 4;
break;
- case icSig2colorData:
+ case cmsSig2colorData:
return 2;
break;
- case icSig5colorData:
+ case cmsSig5colorData:
return 5;
break;
- case icSig6colorData:
+ case cmsSig6colorData:
return 6;
break;
- case icSig7colorData:
+ case cmsSig7colorData:
return 7;
break;
- case icSig8colorData:
+ case cmsSig8colorData:
return 8;
break;
- case icSig9colorData:
+ case cmsSig9colorData:
return 9;
break;
- case icSig10colorData:
+ case cmsSig10colorData:
return 10;
break;
- case icSig11colorData:
+ case cmsSig11colorData:
return 11;
break;
- case icSig12colorData:
+ case cmsSig12colorData:
return 12;
break;
- case icSig13colorData:
+ case cmsSig13colorData:
return 13;
break;
- case icSig14colorData:
+ case cmsSig14colorData:
return 14;
break;
- case icSig15colorData:
+ case cmsSig15colorData:
return 15;
default:
break;
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler