Files
MINGW-packages/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch
2014-08-07 00:20:02 +04:00

595 lines
24 KiB
Diff

diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
--- FreeImage/genfipsrclist.sh 2014-01-16 00:27:04.000000000 +0100
+++ FreeImage-new/genfipsrclist.sh 2014-01-16 00:49:42.334523250 +0100
@@ -1,6 +1,6 @@
#!/bin/sh
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
+DIRLIST=" Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
echo "VER_MAJOR = 3" > fipMakefile.srcs
diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
--- FreeImage/gensrclist.sh 2014-01-16 00:27:04.000000000 +0100
+++ FreeImage-new/gensrclist.sh 2014-01-16 00:49:42.335523267 +0100
@@ -1,6 +1,6 @@
#!/bin/sh
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
echo "VER_MAJOR = 3" > Makefile.srcs
echo "VER_MINOR = 16.0" >> Makefile.srcs
diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
--- FreeImage/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:49:42.335523267 +0100
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// --------------------------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
--- FreeImage/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:49:42.336523283 +0100
@@ -22,16 +22,16 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../OpenEXR/IlmImf/ImfIO.h"
-#include "../OpenEXR/Iex/Iex.h"
-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
-#include "../OpenEXR/IlmImf/ImfInputFile.h"
-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
-#include "../OpenEXR/IlmImf/ImfChannelList.h"
-#include "../OpenEXR/IlmImf/ImfRgba.h"
-#include "../OpenEXR/IlmImf/ImfArray.h"
-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/ImfIO.h>
+#include <OpenEXR/Iex.h>
+#include <OpenEXR/ImfOutputFile.h>
+#include <OpenEXR/ImfInputFile.h>
+#include <OpenEXR/ImfRgbaFile.h>
+#include <OpenEXR/ImfChannelList.h>
+#include <OpenEXR/ImfRgba.h>
+#include <OpenEXR/ImfArray.h>
+#include <OpenEXR/ImfPreviewImage.h>
+#include <OpenEXR/half.h>
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:49:42.336523283 +0100
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
--- FreeImage/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:49:42.336523283 +0100
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:49:42.336523283 +0100
@@ -35,9 +35,9 @@ extern "C" {
#undef FAR
#include <setjmp.h>
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
+#include <stdio.h>
+#include <jpeglib.h>
+#include <jerror.h>
}
#include "FreeImage.h"
diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
--- FreeImage/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:49:42.337523300 +0100
@@ -37,8 +37,8 @@
// ----------------------------------------------------------
-#include "../ZLib/zlib.h"
-#include "../LibPNG/png.h"
+#include <zlib.h>
+#include <png.h>
// ----------------------------------------------------------
@@ -106,7 +106,11 @@ ReadMetadata(png_structp png_ptr, png_in
tag = FreeImage_CreateTag();
if(!tag) return FALSE;
+#ifdef PNG_iTXt_SUPPORTED
DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length);
+#else
+ DWORD tag_length = text_ptr[i].text_length;
+#endif
FreeImage_SetTagLength(tag, tag_length);
FreeImage_SetTagCount(tag, tag_length);
@@ -153,10 +157,11 @@ WriteMetadata(png_structp png_ptr, png_i
text_metadata.key = (char*)FreeImage_GetTagKey(tag); // keyword, 1-79 character description of "text"
text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "")
text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
+#ifdef PNG_iTXt_SUPPORTED
text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer
text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
-
+#endif
// set the tag
png_set_text(png_ptr, info_ptr, &text_metadata, 1);
@@ -175,10 +180,11 @@ WriteMetadata(png_structp png_ptr, png_i
text_metadata.key = (char*)g_png_xmp_keyword; // keyword, 1-79 character description of "text"
text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "")
text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
+#ifdef PNG_iTXt_SUPPORTED
text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer
text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
-
+#endif
// set the tag
png_set_text(png_ptr, info_ptr, &text_metadata, 1);
bResult &= TRUE;
diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
--- FreeImage/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:55:13.692904877 +0100
@@ -19,7 +19,7 @@
// Use at your own risk!
// ==========================================================
-#include "../LibRawLite/libraw/libraw.h"
+#include <libraw/libraw.h>
#include "FreeImage.h"
#include "Utilities.h"
diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:49:42.337523300 +0100
@@ -37,9 +37,9 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffio.h>
#include "../Metadata/FreeImageTag.h"
-#include "../OpenEXR/Half/half.h"
+#include <half.h>
#include "FreeImageIO.h"
#include "PSDParser.h"
@@ -202,27 +202,9 @@ TIFFFdOpen(thandle_t handle, const char
_tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc,
_tiffSizeProc, _tiffMapProc, _tiffUnmapProc);
- // Warning: tif_fd is declared as 'int' currently (see libTIFF),
- // may result in incorrect file pointers inside libTIFF on
- // 64bit machines (sizeof(int) != sizeof(long)).
- // Needs to be fixed within libTIFF.
- if (tif) {
- tif->tif_fd = (long)handle;
- }
-
return tif;
}
-/**
-Open a TIFF file for reading or writing
-@param name
-@param mode
-*/
-TIFF*
-TIFFOpen(const char* name, const char* mode) {
- return 0;
-}
-
// ----------------------------------------------------------
// TIFF library FreeImage-specific routines.
// ----------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/PluginG3.cpp FreeImage-new/Source/FreeImage/PluginG3.cpp
--- FreeImage/Source/FreeImage/PluginG3.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginG3.cpp 2014-01-16 00:49:42.336523283 +0100
@@ -20,7 +20,7 @@
// Use at your own risk!
// ==========================================================
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffiop.h>
#include "FreeImage.h"
#include "Utilities.h"
diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
--- FreeImage/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:49:42.337523300 +0100
@@ -37,10 +37,10 @@
#include "../Metadata/FreeImageTag.h"
-#include "../LibWebP/src/webp/decode.h"
-#include "../LibWebP/src/webp/encode.h"
-#include "../LibWebP/src/enc/vp8enci.h"
-#include "../LibWebP/src/webp/mux.h"
+#include <webp/decode.h>
+#include <webp/encode.h>
+//#include "../LibWebP/src/enc/vp8enci.h"
+#include <webp/mux.h>
// ==========================================================
// Plugin Interface
diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:49:42.338523316 +0100
@@ -19,10 +19,9 @@
// Use at your own risk!
// ==========================================================
-#include "../ZLib/zlib.h"
+#include <zlib.h>
#include "FreeImage.h"
#include "Utilities.h"
-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
/**
Compresses a source buffer into a target buffer, using the ZLib library.
@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
return 0;
case Z_OK: {
// patch header, setup crc and length (stolen from mod_trace_output)
- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
crc = crc32(crc, source, source_size);
memcpy(target + 4 + dest_len, &crc, 4);
memcpy(target + 8 + dest_len, &source_size, 4);
diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
--- FreeImage/Source/Metadata/XTIFF.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2014-01-16 00:49:42.338523316 +0100
@@ -29,13 +29,22 @@
#pragma warning (disable : 4786) // identifier was truncated to 'number' characters
#endif
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffiop.h>
#include "FreeImage.h"
#include "Utilities.h"
#include "FreeImageTag.h"
#include "FIRational.h"
+/*
+ * Caveat emperor this is a private libtiff functions which we need,
+ * there is no better solution I'm afraid.
+ */
+extern "C"
+{
+ int _TIFFDataSize(TIFFDataType type);
+}
+
// ----------------------------------------------------------
// Extended TIFF Directory GEO Tag Support
// ----------------------------------------------------------
@@ -205,7 +214,7 @@ tiff_write_geotiff_profile(TIFF *tif, FI
Read a single exif tag
*/
static BOOL
-tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, TIFFDirectory *td, uint32 tag) {
+tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, uint32 tag) {
const TIFFField *fip;
uint32 value_count;
int mem_alloc = 0;
@@ -226,8 +235,8 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
return TRUE;
}
- if(fip->field_passcount) { //<- "passcount" means "returns count"
- if (fip->field_readcount != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count"
+ if(TIFFFieldPassCount(fip)) { //<- "passcount" means "returns count"
+ if (TIFFFieldReadCount(fip) != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count"
// assume TIFF_VARIABLE (uses SHORT count)
uint16 value_count16;
@@ -244,35 +253,37 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
// determine count
- if (fip->field_readcount == TIFF_VARIABLE || fip->field_readcount == TIFF_VARIABLE2) {
+ if (TIFFFieldReadCount(fip) == TIFF_VARIABLE || TIFFFieldReadCount(fip) == TIFF_VARIABLE2) {
value_count = 1;
- } else if (fip->field_readcount == TIFF_SPP) {
- value_count = td->td_samplesperpixel;
+ } else if (TIFFFieldReadCount(fip) == TIFF_SPP) {
+ uint16 spp;
+ TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &spp);
+ value_count = spp;
} else {
- value_count = fip->field_readcount;
+ value_count = TIFFFieldReadCount(fip);
}
// access fields as pointers to data
// (### determining this is NOT robust... and hardly can be. It is implemented looking the _TIFFVGetField code)
- if(fip->field_tag == TIFFTAG_TRANSFERFUNCTION) {
+ if(TIFFFieldTag(fip) == TIFFTAG_TRANSFERFUNCTION) {
// reading this tag cause a bug probably located somewhere inside libtiff
return TRUE;
}
- if ((fip->field_type == TIFF_ASCII
- || fip->field_readcount == TIFF_VARIABLE
- || fip->field_readcount == TIFF_VARIABLE2
- || fip->field_readcount == TIFF_SPP
+ if ((TIFFFieldDataType(fip) == TIFF_ASCII
+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE
+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE2
+ || TIFFFieldReadCount(fip) == TIFF_SPP
|| value_count > 1)
- && fip->field_tag != TIFFTAG_PAGENUMBER
- && fip->field_tag != TIFFTAG_HALFTONEHINTS
- && fip->field_tag != TIFFTAG_YCBCRSUBSAMPLING
- && fip->field_tag != TIFFTAG_DOTRANGE
+ && TIFFFieldTag(fip) != TIFFTAG_PAGENUMBER
+ && TIFFFieldTag(fip) != TIFFTAG_HALFTONEHINTS
+ && TIFFFieldTag(fip) != TIFFTAG_YCBCRSUBSAMPLING
+ && TIFFFieldTag(fip) != TIFFTAG_DOTRANGE
- && fip->field_tag != TIFFTAG_BITSPERSAMPLE //<- these two are tricky -
- && fip->field_tag != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value
+ && TIFFFieldTag(fip) != TIFFTAG_BITSPERSAMPLE //<- these two are tricky:
+ && TIFFFieldTag(fip) != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value
) {
if(TIFFGetField(tif, tag, &raw_data) != 1) {
return TRUE;
@@ -281,7 +292,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
// access fields as values
- const int value_size = _TIFFDataSize(fip->field_type);
+ const int value_size = _TIFFDataSize((TIFFFieldDataType(fip)));
raw_data = _TIFFmalloc(value_size * value_count);
mem_alloc = 1;
int ok = FALSE;
@@ -302,7 +313,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
break;
*/
default:
- FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", fip->field_name);
+ FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", TIFFFieldName(fip));
break;
}
if(ok != 1) {
@@ -325,59 +336,59 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
FreeImage_SetTagID(fitag, (WORD)tag);
FreeImage_SetTagKey(fitag, key);
- switch(fip->field_type) {
+ switch(TIFFFieldDataType(fip)) {
case TIFF_BYTE:
FreeImage_SetTagType(fitag, FIDT_BYTE);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_UNDEFINED:
FreeImage_SetTagType(fitag, FIDT_UNDEFINED);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_SBYTE:
FreeImage_SetTagType(fitag, FIDT_SBYTE);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_SHORT:
FreeImage_SetTagType(fitag, FIDT_SHORT);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_SSHORT:
FreeImage_SetTagType(fitag, FIDT_SSHORT);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_LONG:
FreeImage_SetTagType(fitag, FIDT_LONG);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_IFD:
FreeImage_SetTagType(fitag, FIDT_IFD);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_SLONG:
FreeImage_SetTagType(fitag, FIDT_SLONG);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
@@ -392,7 +403,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
rvalue[2*i+1] = rational.getDenominator();
}
FreeImage_SetTagType(fitag, FIDT_RATIONAL);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, rvalue);
free(rvalue);
@@ -409,7 +420,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
rvalue[2*i+1] = rational.getDenominator();
}
FreeImage_SetTagType(fitag, FIDT_RATIONAL);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, rvalue);
free(rvalue);
@@ -418,35 +429,35 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
case TIFF_FLOAT:
FreeImage_SetTagType(fitag, FIDT_FLOAT);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_DOUBLE:
FreeImage_SetTagType(fitag, FIDT_DOUBLE);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_LONG8: // BigTIFF 64-bit unsigned integer
FreeImage_SetTagType(fitag, FIDT_LONG8);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_IFD8: // BigTIFF 64-bit unsigned integer (offset)
FreeImage_SetTagType(fitag, FIDT_IFD8);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
case TIFF_SLONG8: // BigTIFF 64-bit signed integer
FreeImage_SetTagType(fitag, FIDT_SLONG8);
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
FreeImage_SetTagCount(fitag, value_count);
FreeImage_SetTagValue(fitag, raw_data);
break;
@@ -489,16 +500,16 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
TagLib& tagLib = TagLib::instance();
- TIFFDirectory *td = &tif->tif_dir;
-
count = (short) TIFFGetTagListCount(tif);
for(i = 0; i < count; i++) {
uint32 tag = TIFFGetTagListEntry(tif, i);
// read the tag
- if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, td, tag))
+ if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, tag))
return FALSE;
}
+/* Disabled for Fedora as it is using internal library structures. */
+#if 0
// we want to know values of standard tags too!!
// loop over all Core Directory Tags
@@ -533,13 +544,14 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
// process *all* other tags (some will be ignored)
- tiff_read_exif_tag(tif, md_model, dib, tagLib, td, fld->field_tag);
+ tiff_read_exif_tag(tif, md_model, dib, tagLib, fld->field_tag);
lastTag = fld->field_tag;
}
}
+#endif
return TRUE;
@@ -611,6 +623,10 @@ Write all known exif tags
*/
BOOL
tiff_write_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) {
+/* Disabled for Fedora as it is using internal library structures. Siberia
+ * winter on upstream developer! :-) */
+ return FALSE;
+#if 0
char defaultKey[16];
// only EXIF_MAIN so far
@@ -662,4 +678,5 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
}
return TRUE;
+#endif
}
diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:49:42.338523316 +0100
@@ -26,10 +26,10 @@
#undef FAR
#include <setjmp.h>
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
-#include "../LibJPEG/transupp.h"
+#include <jinclude.h>
+#include <jpeglib.h>
+#include <jerror.h>
+#include <transupp.h>
}
#include "FreeImage.h"
diff -rupN FreeImage/Source/LibJXR/image/sys/strcodec.c FreeImage-new/Source/LibJXR/image/sys/strcodec.c
--- FreeImage/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:27:03.000000000 +0100
+++ FreeImage-new/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:49:42.338523316 +0100
@@ -664,7 +664,7 @@
//================================================================
// Memory access functions
//================================================================
-#if (defined(WIN32) && !defined(UNDER_CE) && !defined(__MINGW32__)) || (defined(UNDER_CE) && defined(_ARM_))
+#if (defined(WIN32) && !defined(UNDER_CE)) || (defined(UNDER_CE) && defined(_ARM_))
// WinCE ARM and Desktop x86
#else
// other platform