Handle the TIFF/FX better now we have tiff-4.0.2 in the repo.
This commit is contained in:
parent
69fc6e8ffe
commit
6cd47a92da
|
@ -238,10 +238,8 @@ AC_CHECK_HEADERS([FL/Fl.H])
|
||||||
AC_CHECK_HEADERS([FL/Fl_Overlay_Window.H])
|
AC_CHECK_HEADERS([FL/Fl_Overlay_Window.H])
|
||||||
AC_CHECK_HEADERS([FL/Fl_Light_Button.H])
|
AC_CHECK_HEADERS([FL/Fl_Light_Button.H])
|
||||||
AC_CHECK_HEADERS([FL/fl_draw.H])
|
AC_CHECK_HEADERS([FL/fl_draw.H])
|
||||||
AC_CHECK_HEADERS([FL/Fl_Cartesian.H], [], [], [],[[#include <FL/Fl.H>
|
AC_CHECK_HEADERS([FL/Fl_Cartesian.H])
|
||||||
]])
|
AC_CHECK_HEADERS([FL/Fl_Audio_Meter.H])
|
||||||
AC_CHECK_HEADERS([FL/Fl_Audio_Meter.H], [], [], [],[[#include <FL/Fl.H>
|
|
||||||
]])
|
|
||||||
|
|
||||||
AC_LANG([C])
|
AC_LANG([C])
|
||||||
|
|
||||||
|
@ -520,6 +518,8 @@ if test "$enable_builtin_tiff" = "yes" ; then
|
||||||
save_CFLAGS=$CFLAGS
|
save_CFLAGS=$CFLAGS
|
||||||
CFLAGS="$CFLAGS -I$abs_tiffdir/libtiff"
|
CFLAGS="$CFLAGS -I$abs_tiffdir/libtiff"
|
||||||
AC_CHECK_HEADERS([tiffio.h])
|
AC_CHECK_HEADERS([tiffio.h])
|
||||||
|
AC_CHECK_HEADERS([tif_dir.h], [], [], [#include <tiffio.h>
|
||||||
|
])
|
||||||
CFLAGS="$save_CFLAGS"
|
CFLAGS="$save_CFLAGS"
|
||||||
COMP_VENDOR_CFLAGS="-I$abs_tiffdir/libtiff $COMP_VENDOR_CFLAGS"
|
COMP_VENDOR_CFLAGS="-I$abs_tiffdir/libtiff $COMP_VENDOR_CFLAGS"
|
||||||
COMP_VENDOR_LDFLAGS="-L$abs_tiffdir/libtiff $COMP_VENDOR_LDFLAGS"
|
COMP_VENDOR_LDFLAGS="-L$abs_tiffdir/libtiff $COMP_VENDOR_LDFLAGS"
|
||||||
|
@ -527,8 +527,18 @@ if test "$enable_builtin_tiff" = "yes" ; then
|
||||||
AC_DEFINE([HAVE_LIBTIFF], [1], [Define to 1 if you have the `tiff' library (-ltiff).])
|
AC_DEFINE([HAVE_LIBTIFF], [1], [Define to 1 if you have the `tiff' library (-ltiff).])
|
||||||
else
|
else
|
||||||
AC_CHECK_HEADERS([tiffio.h])
|
AC_CHECK_HEADERS([tiffio.h])
|
||||||
|
AC_CHECK_HEADERS([tif_dir.h], [], [], [#include <tiffio.h>
|
||||||
|
])
|
||||||
AC_CHECK_LIB([tiff], [TIFFOpen], [TIFF_LIBS="-ltiff"], AC_MSG_ERROR("Cannot build without libtiff (does your system require a libtiff-devel package?)"), -lm)
|
AC_CHECK_LIB([tiff], [TIFFOpen], [TIFF_LIBS="-ltiff"], AC_MSG_ERROR("Cannot build without libtiff (does your system require a libtiff-devel package?)"), -lm)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$ac_cv_header_tif_dir_h" = "yes" ; then
|
||||||
|
AC_DEFINE([SPANDSP_SUPPORT_TIFF_FX], [1], [Support TIFF/FX in TIFF file handling])
|
||||||
|
SPANDSP_SUPPORT_TIFF_FX="#define SPANDSP_SUPPORT_TIFF_FX"
|
||||||
|
else
|
||||||
|
SPANDSP_SUPPORT_TIFF_FX="#undef SPANDSP_SUPPORT_TIFF_FX"
|
||||||
|
fi
|
||||||
|
|
||||||
AC_CHECK_HEADERS([jpeglib.h])
|
AC_CHECK_HEADERS([jpeglib.h])
|
||||||
AC_CHECK_LIB([jpeg], [jpeg_start_compress], [JPEG_LIBS="-ljpeg"])
|
AC_CHECK_LIB([jpeg], [jpeg_start_compress], [JPEG_LIBS="-ljpeg"])
|
||||||
|
|
||||||
|
@ -551,6 +561,7 @@ AC_SUBST(SPANDSP_USE_EXPORT_CAPABILITY)
|
||||||
AC_SUBST(SPANDSP_SUPPORT_T42)
|
AC_SUBST(SPANDSP_SUPPORT_T42)
|
||||||
AC_SUBST(SPANDSP_SUPPORT_T43)
|
AC_SUBST(SPANDSP_SUPPORT_T43)
|
||||||
AC_SUBST(SPANDSP_SUPPORT_V34)
|
AC_SUBST(SPANDSP_SUPPORT_V34)
|
||||||
|
AC_SUBST(SPANDSP_SUPPORT_TIFF_FX)
|
||||||
AC_SUBST(INSERT_INTTYPES_HEADER)
|
AC_SUBST(INSERT_INTTYPES_HEADER)
|
||||||
AC_SUBST(INSERT_STDINT_HEADER)
|
AC_SUBST(INSERT_STDINT_HEADER)
|
||||||
AC_SUBST(INSERT_TGMATH_HEADER)
|
AC_SUBST(INSERT_TGMATH_HEADER)
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
@SPANDSP_SUPPORT_T42@
|
@SPANDSP_SUPPORT_T42@
|
||||||
@SPANDSP_SUPPORT_T43@
|
@SPANDSP_SUPPORT_T43@
|
||||||
@SPANDSP_SUPPORT_V34@
|
@SPANDSP_SUPPORT_V34@
|
||||||
|
@SPANDSP_SUPPORT_TIFF_FX@
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@INSERT_INTTYPES_HEADER@
|
@INSERT_INTTYPES_HEADER@
|
||||||
|
|
|
@ -28,8 +28,6 @@
|
||||||
#if !defined(_SPANDSP_T4_TX_H_)
|
#if !defined(_SPANDSP_T4_TX_H_)
|
||||||
#define _SPANDSP_T4_TX_H_
|
#define _SPANDSP_T4_TX_H_
|
||||||
|
|
||||||
#define SPANDSP_SUPPORT_TIFF_FX
|
|
||||||
|
|
||||||
/*! This function is a callback from the image decoders, to read the unencoded bi-level image,
|
/*! This function is a callback from the image decoders, to read the unencoded bi-level image,
|
||||||
row by row. It is called for each row, with len set to the number of bytes per row expected.
|
row by row. It is called for each row, with len set to the number of bytes per row expected.
|
||||||
\return len for OK, or zero to indicate the end of the image data. */
|
\return len for OK, or zero to indicate the end of the image data. */
|
||||||
|
@ -41,8 +39,7 @@ typedef int (*t4_row_read_handler_t)(void *user_data, uint8_t buf[], size_t len)
|
||||||
*/
|
*/
|
||||||
typedef struct t4_tx_state_s t4_tx_state_t;
|
typedef struct t4_tx_state_s t4_tx_state_t;
|
||||||
|
|
||||||
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
/* TIFF-FX related extensions to the TIFF tag set */
|
||||||
/* TIFF-FX related extensions to the tag set supported by libtiff */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Indexed(346) = 0, 1. SHORT
|
Indexed(346) = 0, 1. SHORT
|
||||||
|
@ -55,7 +52,7 @@ Indexed(346) = 0, 1. SHORT
|
||||||
profile supports palette-color images with the ITULAB encoding.
|
profile supports palette-color images with the ITULAB encoding.
|
||||||
The SamplesPerPixel value must be 1.
|
The SamplesPerPixel value must be 1.
|
||||||
|
|
||||||
GlobalParametersIFD (400) IFD
|
GlobalParametersIFD (400) IFD/LONG
|
||||||
An IFD containing global parameters. It is recommended that a TIFF
|
An IFD containing global parameters. It is recommended that a TIFF
|
||||||
writer place this field in the first IFD, where a TIFF reader would
|
writer place this field in the first IFD, where a TIFF reader would
|
||||||
find it quickly.
|
find it quickly.
|
||||||
|
@ -177,6 +174,9 @@ ImageLayer(34732) LONG
|
||||||
3: ...
|
3: ...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Define the TIFF/FX tags to extend libtiff, when using a version of libtiff where this
|
||||||
|
stuff has not been merged. */
|
||||||
|
#if defined(SPANDSP_SUPPORT_TIFF_FX) && !defined(TIFFTAG_FAXPROFILE)
|
||||||
#define TIFFTAG_INDEXED 346
|
#define TIFFTAG_INDEXED 346
|
||||||
#define TIFFTAG_GLOBALPARAMETERSIFD 400
|
#define TIFFTAG_GLOBALPARAMETERSIFD 400
|
||||||
#define TIFFTAG_PROFILETYPE 401
|
#define TIFFTAG_PROFILETYPE 401
|
||||||
|
|
|
@ -79,15 +79,15 @@
|
||||||
|
|
||||||
#include "faxfont.h"
|
#include "faxfont.h"
|
||||||
|
|
||||||
#if 0
|
|
||||||
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||||
#include <tif_dir.h>
|
#include <tif_dir.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/*! The number of centimetres in one inch */
|
/*! The number of centimetres in one inch */
|
||||||
#define CM_PER_INCH 2.54f
|
#define CM_PER_INCH 2.54f
|
||||||
|
|
||||||
|
static void t4_tx_set_image_length(t4_tx_state_t *s, int image_length);
|
||||||
|
|
||||||
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||||
/* TIFF-FX related extensions to the tag set supported by libtiff */
|
/* TIFF-FX related extensions to the tag set supported by libtiff */
|
||||||
static const TIFFFieldInfo tiff_fx_tiff_field_info[] =
|
static const TIFFFieldInfo tiff_fx_tiff_field_info[] =
|
||||||
|
@ -126,8 +126,6 @@ static TIFFField tiff_fx_tiff_fields[] =
|
||||||
TIFFFieldArray tiff_fx_field_array = { tfiatOther, 0, 12, tiff_fx_tiff_fields };
|
TIFFFieldArray tiff_fx_field_array = { tfiatOther, 0, 12, tiff_fx_tiff_fields };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void t4_tx_set_image_length(t4_tx_state_t *s, int image_length);
|
|
||||||
|
|
||||||
static TIFFExtendProc _ParentExtender = NULL;
|
static TIFFExtendProc _ParentExtender = NULL;
|
||||||
|
|
||||||
static void TIFFFXDefaultDirectory(TIFF *tif)
|
static void TIFFFXDefaultDirectory(TIFF *tif)
|
||||||
|
@ -164,6 +162,7 @@ static int test_resolution(int res_unit, float actual, float expected)
|
||||||
}
|
}
|
||||||
/*- End of function --------------------------------------------------------*/
|
/*- End of function --------------------------------------------------------*/
|
||||||
|
|
||||||
|
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||||
static int read_colour_map(t4_tx_state_t *s, int bits_per_sample)
|
static int read_colour_map(t4_tx_state_t *s, int bits_per_sample)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -187,7 +186,7 @@ static int read_colour_map(t4_tx_state_t *s, int bits_per_sample)
|
||||||
/* Sweep the colormap in the proper order */
|
/* Sweep the colormap in the proper order */
|
||||||
for (i = 0; i < (1 << bits_per_sample); i++)
|
for (i = 0; i < (1 << bits_per_sample); i++)
|
||||||
{
|
{
|
||||||
s->colour_map[3*i] = (map_L[i] >> 8) & 0xFF;
|
s->colour_map[3*i + 0] = (map_L[i] >> 8) & 0xFF;
|
||||||
s->colour_map[3*i + 1] = (map_a[i] >> 8) & 0xFF;
|
s->colour_map[3*i + 1] = (map_a[i] >> 8) & 0xFF;
|
||||||
s->colour_map[3*i + 2] = (map_b[i] >> 8) & 0xFF;
|
s->colour_map[3*i + 2] = (map_b[i] >> 8) & 0xFF;
|
||||||
span_log(&s->logging, SPAN_LOG_FLOW, "Map %3d - %5d %5d %5d\n", i, s->colour_map[3*i], s->colour_map[3*i + 1], s->colour_map[3*i + 2]);
|
span_log(&s->logging, SPAN_LOG_FLOW, "Map %3d - %5d %5d %5d\n", i, s->colour_map[3*i], s->colour_map[3*i + 1], s->colour_map[3*i + 2]);
|
||||||
|
@ -196,8 +195,8 @@ static int read_colour_map(t4_tx_state_t *s, int bits_per_sample)
|
||||||
/* Sweep the colormap in the order that seems to work for l04x_02x.tif */
|
/* Sweep the colormap in the order that seems to work for l04x_02x.tif */
|
||||||
for (i = 0; i < (1 << bits_per_sample); i++)
|
for (i = 0; i < (1 << bits_per_sample); i++)
|
||||||
{
|
{
|
||||||
s->colour_map[i] = (map_L[i] >> 8) & 0xFF;
|
s->colour_map[0*256 + i] = (map_L[i] >> 8) & 0xFF;
|
||||||
s->colour_map[256 + i] = (map_a[i] >> 8) & 0xFF;
|
s->colour_map[1*256 + i] = (map_a[i] >> 8) & 0xFF;
|
||||||
s->colour_map[2*256 + i] = (map_b[i] >> 8) & 0xFF;
|
s->colour_map[2*256 + i] = (map_b[i] >> 8) & 0xFF;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -207,6 +206,7 @@ static int read_colour_map(t4_tx_state_t *s, int bits_per_sample)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/*- End of function --------------------------------------------------------*/
|
/*- End of function --------------------------------------------------------*/
|
||||||
|
#endif
|
||||||
|
|
||||||
static int get_tiff_directory_info(t4_tx_state_t *s)
|
static int get_tiff_directory_info(t4_tx_state_t *s)
|
||||||
{
|
{
|
||||||
|
@ -240,6 +240,7 @@ static int get_tiff_directory_info(t4_tx_state_t *s)
|
||||||
{1200.0f/CM_PER_INCH, T4_Y_RESOLUTION_1200},
|
{1200.0f/CM_PER_INCH, T4_Y_RESOLUTION_1200},
|
||||||
{ -1.00f, -1}
|
{ -1.00f, -1}
|
||||||
};
|
};
|
||||||
|
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||||
static const char *tiff_fx_fax_profiles[] =
|
static const char *tiff_fx_fax_profiles[] =
|
||||||
{
|
{
|
||||||
"???",
|
"???",
|
||||||
|
@ -250,18 +251,19 @@ static int get_tiff_directory_info(t4_tx_state_t *s)
|
||||||
"profile L",
|
"profile L",
|
||||||
"profile M"
|
"profile M"
|
||||||
};
|
};
|
||||||
uint16_t res_unit;
|
|
||||||
uint8_t parm8;
|
|
||||||
uint16_t parm16;
|
|
||||||
uint32_t parm32;
|
|
||||||
char *u;
|
char *u;
|
||||||
char uu[10];
|
char uu[10];
|
||||||
|
uint8_t parm8;
|
||||||
|
uint16_t parm16;
|
||||||
|
#endif
|
||||||
|
uint32_t parm32;
|
||||||
float x_resolution;
|
float x_resolution;
|
||||||
float y_resolution;
|
float y_resolution;
|
||||||
int i;
|
int i;
|
||||||
t4_tx_tiff_state_t *t;
|
t4_tx_tiff_state_t *t;
|
||||||
uint16_t bits_per_sample;
|
uint16_t bits_per_sample;
|
||||||
uint16_t samples_per_pixel;
|
uint16_t samples_per_pixel;
|
||||||
|
uint16_t res_unit;
|
||||||
|
|
||||||
t = &s->tiff;
|
t = &s->tiff;
|
||||||
bits_per_sample = 1;
|
bits_per_sample = 1;
|
||||||
|
|
Loading…
Reference in New Issue