]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Patched the new libtiff-4.0.2 code to support TIFF/FX tags and the extra
authorSteve Underwood <steveu@coppice.org>
Sat, 1 Sep 2012 13:50:47 +0000 (21:50 +0800)
committerSteve Underwood <steveu@coppice.org>
Sat, 1 Sep 2012 13:50:47 +0000 (21:50 +0800)
compression and colour profile codes that go with them.

libs/tiff-4.0.2/libtiff/tif_dirinfo.c
libs/tiff-4.0.2/libtiff/tif_print.c
libs/tiff-4.0.2/libtiff/tiff.h
src/mod/applications/mod_spandsp/Makefile.am
src/mod/applications/mod_spandsp/mod_spandsp.2008.vcproj
src/mod/applications/mod_spandsp/mod_spandsp.2010.vcxproj

index 06b5a5a00f00f1ee7c32c4e22da676adab9e06cc..d4c441c8fa9cb1fad121385e9afd868ffc5a5f34 100644 (file)
@@ -37,7 +37,7 @@
  *
  * NOTE: The second field (field_readcount) and third field (field_writecount)
  *       sometimes use the values TIFF_VARIABLE (-1), TIFF_VARIABLE2 (-3)
- *       and TIFFTAG_SPP (-2). The macros should be used but would throw off
+ *       and TIFF_SPP (-2). The macros should be used but would throw off
  *       the formatting of the code, so please interprete the -1, -2 and -3
  *       values accordingly.
  */
@@ -191,6 +191,20 @@ tiffFields[] = {
        { TIFFTAG_CURRENTICCPROFILE, -1, -1, TIFF_UNDEFINED, 0, TIFF_SETGET_C16_UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "CurrentICCProfile", NULL },
        { TIFFTAG_CURRENTPREPROFILEMATRIX, -1, -1, TIFF_SRATIONAL, 0, TIFF_SETGET_C16_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "CurrentPreProfileMatrix", NULL },
        /* end DNG tags */
+       /* begin TIFF/FX tags */
+    { TIFFTAG_INDEXED, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "Indexed" },
+    { TIFFTAG_GLOBALPARAMETERSIFD, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "GlobalParametersIFD", NULL },
+    { TIFFTAG_PROFILETYPE, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "ProfileType", NULL },
+    { TIFFTAG_FAXPROFILE, 1, 1, TIFF_BYTE, 0, TIFF_SETGET_UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "FaxProfile", NULL },
+    { TIFFTAG_CODINGMETHODS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "CodingMethods", NULL },
+    { TIFFTAG_VERSIONYEAR, 4, 4, TIFF_BYTE, 0, TIFF_SETGET_C0_UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "VersionYear", NULL },
+    { TIFFTAG_MODENUMBER, 1, 1, TIFF_BYTE, 0, TIFF_SETGET_UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "ModeNumber", NULL },
+    { TIFFTAG_DECODE, -1, -1, TIFF_SRATIONAL, 0, TIFF_SETGET_C16_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "Decode", NULL },
+    { TIFFTAG_IMAGEBASECOLOR, -1, -1, TIFF_SHORT, 0, TIFF_SETGET_C16_UINT16, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "ImageBaseColor", NULL },
+    { TIFFTAG_T82OPTIONS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "T82Options", NULL },
+    { TIFFTAG_STRIPROWCOUNTS, -1, -1, TIFF_LONG, 0, TIFF_SETGET_C16_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "StripRowCounts", NULL },
+    { TIFFTAG_IMAGELAYER, 2, 2, TIFF_LONG, 0, TIFF_SETGET_C0_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "ImageLayer", NULL },
+       /* end TIFF/FX tags */
        /* begin pseudo tags */
        { TIFFTAG_PERSAMPLE, 0, 0, TIFF_SHORT, 0, TIFF_SETGET_UNDEFINED, TIFF_SETGET_UNDEFINED, FIELD_PSEUDO, TRUE, FALSE, "PerSample", NULL},
 };
index 5ae2df048fb5f311dfad1dde06e727dfc9c02e6c..385622be0e96ac1e9302f8720f23d8b1390e2b68 100644 (file)
@@ -47,6 +47,8 @@ static const char *photoNames[] = {
     "YCbCr",                                   /* PHOTOMETRIC_YCBCR */
     "7 (0x7)",
     "CIE L*a*b*",                              /* PHOTOMETRIC_CIELAB */
+    "ICC L*a*b*",                              /* PHOTOMETRIC_ICCLAB */
+    "ITU L*a*b*"                               /* PHOTOMETRIC_ITULAB */
 };
 #define        NPHOTONAMES     (sizeof (photoNames) / sizeof (photoNames[0]))
 
@@ -580,7 +582,7 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags)
                                continue;
 
                        if(fip->field_passcount) {
-                               if (fip->field_readcount == TIFF_VARIABLE2 ) {
+                               if (fip->field_readcount == TIFF_VARIABLE ) {
                                        if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1)
                                                continue;
                                } else if (fip->field_readcount == TIFF_VARIABLE2 ) {
index 5c32d3ae98db7cdc6528de6b77f7876c446eeef0..5882a7cff79d347afb6523b233e11c255a600d2e 100644 (file)
@@ -166,6 +166,8 @@ typedef enum {
 #define            COMPRESSION_LZW             5       /* Lempel-Ziv  & Welch */
 #define            COMPRESSION_OJPEG           6       /* !6.0 JPEG */
 #define            COMPRESSION_JPEG            7       /* %JPEG DCT compression */
+#define     COMPRESSION_T85                    9       /* !TIFF/FX T.85 JBIG compression */
+#define     COMPRESSION_T43                    10      /* !TIFF/FX T.43 colour by layered JBIG compression */
 #define            COMPRESSION_NEXT            32766   /* NeXT 2-bit RLE */
 #define            COMPRESSION_CCITTRLEW       32771   /* #1 w/ word alignment */
 #define            COMPRESSION_PACKBITS        32773   /* Macintosh RLE */
@@ -319,6 +321,30 @@ typedef enum {
                                                   [Adobe TIFF Technote 3] */
 #define        TIFFTAG_JPEGTABLES              347     /* %JPEG table stream */
 #define        TIFFTAG_OPIPROXY                351     /* %OPI Proxy [Adobe TIFF technote] */
+/* Tags 400-435 are from the TIFF/FX spec */
+#define TIFFTAG_GLOBALPARAMETERSIFD    400     /* ! */
+#define TIFFTAG_PROFILETYPE                    401     /* ! */
+#define     PROFILETYPE_UNSPECIFIED    0       /* ! */
+#define     PROFILETYPE_G3_FAX         1       /* ! */
+#define TIFFTAG_FAXPROFILE                     402     /* ! */
+#define     FAXPROFILE_S                       1       /* !TIFF/FX FAX profile S */
+#define     FAXPROFILE_F                       2       /* !TIFF/FX FAX profile F */
+#define     FAXPROFILE_J                       3       /* !TIFF/FX FAX profile J */
+#define     FAXPROFILE_C                       4       /* !TIFF/FX FAX profile C */
+#define     FAXPROFILE_L                       5       /* !TIFF/FX FAX profile L */
+#define     FAXPROFILE_M                       6       /* !TIFF/FX FAX profile LM */
+#define TIFFTAG_CODINGMETHODS          403     /* !TIFF/FX coding methods */
+#define     CODINGMETHODS_T4_1D                (1 << 1)        /* !T.4 1D */
+#define     CODINGMETHODS_T4_2D                (1 << 2)        /* !T.4 2D */
+#define     CODINGMETHODS_T6           (1 << 3)        /* !T.6 */
+#define     CODINGMETHODS_T85          (1 << 4)        /* !T.85 JBIG */
+#define     CODINGMETHODS_T42          (1 << 5)        /* !T.42 JPEG */
+#define     CODINGMETHODS_T43          (1 << 6)        /* !T.43 colour by layered JBIG */
+#define TIFFTAG_VERSIONYEAR                    404     /* !TIFF/FX version year */
+#define TIFFTAG_MODENUMBER                     405     /* !TIFF/FX mode number */
+#define TIFFTAG_DECODE                         433     /* !TIFF/FX decode */
+#define TIFFTAG_IMAGEBASECOLOR         434     /* !TIFF/FX image base colour */
+#define TIFFTAG_T82OPTIONS                     435     /* !TIFF/FX T.82 options */
 /*
  * Tags 512-521 are obsoleted by Technical Note #2 which specifies a
  * revised JPEG-in-TIFF scheme.
@@ -340,6 +366,7 @@ typedef enum {
 #define            YCBCRPOSITION_CENTERED      1       /* !as in PostScript Level 2 */
 #define            YCBCRPOSITION_COSITED       2       /* !as in CCIR 601-1 */
 #define        TIFFTAG_REFERENCEBLACKWHITE     532     /* !colorimetry info */
+#define TIFFTAG_STRIPROWCOUNTS         559 /* !TIFF/FX strip row counts */
 #define        TIFFTAG_XMLPACKET               700     /* %XML packet
                                                   [Adobe XMP Specification,
                                                   January 2004 */
@@ -406,6 +433,7 @@ typedef enum {
 #define TIFFTAG_EXIFIFD                        34665   /* Pointer to EXIF private directory */
 /* tag 34750 is a private tag registered to Adobe? */
 #define TIFFTAG_ICCPROFILE             34675   /* ICC profile data */
+#define TIFFTAG_IMAGELAYER             34732   /* !TIFF/FX image layer information */
 /* tag 34750 is a private tag registered to Pixel Magic */
 #define        TIFFTAG_JBIGOPTIONS             34750   /* JBIG options */
 #define TIFFTAG_GPSIFD                 34853   /* Pointer to GPS private directory */
index 2a63c423161552a3ab6d2b3db4be6256f87eb2df..023903f4ad56e51ac969bb20be1feb7c0e2aacb5 100644 (file)
@@ -1,8 +1,8 @@
 include $(top_srcdir)/build/modmake.rulesam
 MODNAME=mod_spandsp
 
-TIFF_DIR=$(switch_srcdir)/libs/tiff-3.8.2
-TIFF_BUILDDIR=$(switch_builddir)/libs/tiff-3.8.2
+TIFF_DIR=$(switch_srcdir)/libs/tiff-4.0.2
+TIFF_BUILDDIR=$(switch_builddir)/libs/tiff-4.0.2
 TIFF_LA=$(TIFF_BUILDDIR)/libtiff/libtiff.la
 BUILD_CFLAGS=
 SPANDSP_DIR=$(switch_srcdir)/libs/spandsp
index 80b2a6a511ff9a5bf364841f95f90286fdcca926..7611d79f154aa0064750e87fb70b51a9a58cf291 100644 (file)
@@ -42,7 +42,7 @@
                        />\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-3.8.2\libtiff&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"\r
                                UsePrecompiledHeader="0"\r
                        />\r
                        <Tool\r
                        />\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-3.8.2\libtiff&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"\r
                                UsePrecompiledHeader="0"\r
                        />\r
                        <Tool\r
                        />\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-3.8.2\libtiff&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"\r
                                UsePrecompiledHeader="0"\r
                        />\r
                        <Tool\r
                        />\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-3.8.2\libtiff&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"\r
                                UsePrecompiledHeader="0"\r
                        />\r
                        <Tool\r
index f52a6c714082f4cd9b1117f4f7cb122bdb58f8b9..9ba48566d7f198e646832c853bea1fb3234792eb 100644 (file)
@@ -66,7 +66,7 @@
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-4.0.2\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
     </ClCompile>\r
@@ -82,7 +82,7 @@
       <TargetEnvironment>X64</TargetEnvironment>\r
     </Midl>\r
     <ClCompile>\r
-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-4.0.2\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
     </ClCompile>\r
@@ -96,7 +96,7 @@
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <ClCompile>\r
-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-4.0.2\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
     </ClCompile>\r
       <TargetEnvironment>X64</TargetEnvironment>\r
     </Midl>\r
     <ClCompile>\r
-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-4.0.2\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
     </ClCompile>\r