提交 f56911bb authored 作者: Steve Underwood's avatar Steve Underwood

More steps towards colour FAX

上级 83fc8ddf
...@@ -323,19 +323,6 @@ enum ...@@ -323,19 +323,6 @@ enum
T30_MODEM_DONE T30_MODEM_DONE
}; };
enum
{
T30_FRONT_END_SEND_STEP_COMPLETE = 0,
/*! The current receive has completed. This is only needed to report an
unexpected end of the receive operation, as might happen with T.38
dying. */
T30_FRONT_END_RECEIVE_COMPLETE,
T30_FRONT_END_SIGNAL_PRESENT,
T30_FRONT_END_SIGNAL_ABSENT,
T30_FRONT_END_CED_PRESENT,
T30_FRONT_END_CNG_PRESENT
};
enum enum
{ {
/*! Support the V.27ter modem (2400, and 4800bps) for image transfer. */ /*! Support the V.27ter modem (2400, and 4800bps) for image transfer. */
...@@ -352,90 +339,15 @@ enum ...@@ -352,90 +339,15 @@ enum
enum enum
{ {
/*! No compression */ T30_FRONT_END_SEND_STEP_COMPLETE = 0,
T30_SUPPORT_COMPRESSION_NONE = 0x01, /*! The current receive has completed. This is only needed to report an
/*! T.1 1D compression */ unexpected end of the receive operation, as might happen with T.38
T30_SUPPORT_COMPRESSION_T4_1D = 0x02, dying. */
/*! T.4 2D compression */ T30_FRONT_END_RECEIVE_COMPLETE,
T30_SUPPORT_COMPRESSION_T4_2D = 0x04, T30_FRONT_END_SIGNAL_PRESENT,
/*! T.6 2D compression */ T30_FRONT_END_SIGNAL_ABSENT,
T30_SUPPORT_COMPRESSION_T6 = 0x08, T30_FRONT_END_CED_PRESENT,
/*! T.85 monochrome JBIG compression, with fixed L0 */ T30_FRONT_END_CNG_PRESENT
T30_SUPPORT_COMPRESSION_T85 = 0x10,
/*! T.85 monochrome JBIG compression, with variable L0 */
T30_SUPPORT_COMPRESSION_T85_L0 = 0x20,
/*! T.43 colour JBIG compression */
T30_SUPPORT_COMPRESSION_T43 = 0x40,
/*! T.45 run length colour compression */
T30_SUPPORT_COMPRESSION_T45 = 0x80,
/*! T.81 + T.30 Annex E colour JPEG compression */
T30_SUPPORT_COMPRESSION_T42_T81 = 0x100,
/*! T.81 + T.30 Annex K colour sYCC-JPEG compression */
T30_SUPPORT_COMPRESSION_SYCC_T81 = 0x200,
/*! T.88 monochrome JBIG2 compression */
T30_SUPPORT_COMPRESSION_T88 = 0x400,
/*! Gray-scale support by multi-level codecs */
T30_SUPPORT_COMPRESSION_GRAYSCALE = 0x1000000,
/*! Colour support by multi-level codecs */
T30_SUPPORT_COMPRESSION_COLOUR = 0x2000000,
/*! 12 bit mode for gray scale and colour */
T30_SUPPORT_COMPRESSION_12BIT = 0x4000000,
/*! Convert a colour image to a gray-scale one */
T30_SUPPORT_COMPRESSION_COLOUR_TO_GRAY = 0x8000000,
/*! Dither a gray scale image down a simple bilevel image, with rescaling to fit a FAX page */
T30_SUPPORT_GRAY_TO_BILEVEL = 0x10000000,
/*! Dither a colour image down a simple bilevel image, with rescaling to fit a FAX page */
T30_SUPPORT_COLOUR_TO_BILEVEL = 0x20000000,
/*! Rescale an image (except a bi-level image) to fit a permitted FAX width when necessary */
T30_SUPPORT_COMPRESSION_RESCALING = 0x40000000
};
enum
{
/*! Standard FAX resolution 204dpi x 98dpi - bi-level only */
T30_SUPPORT_RESOLUTION_R8_STANDARD = 0x1,
/*! Fine FAX resolution 204dpi x 196dpi - bi-level only */
T30_SUPPORT_RESOLUTION_R8_FINE = 0x2,
/*! Super-fine FAX resolution 204dpi x 391dpi - bi-level only */
T30_SUPPORT_RESOLUTION_R8_SUPERFINE = 0x4,
/*! Double FAX resolution 408dpi x 391dpi - bi-level only */
T30_SUPPORT_RESOLUTION_R16_SUPERFINE = 0x8,
/*! 100dpi x 100 dpi - gray scale and colour only */
T30_SUPPORT_RESOLUTION_100_100 = 0x10,
/*! 200dpi x 100 dpi - bi-level only */
T30_SUPPORT_RESOLUTION_200_100 = 0x20,
/*! 200dpi x 200 dpi */
T30_SUPPORT_RESOLUTION_200_200 = 0x40,
/*! 200dpi x 400 dpi - bi-level only */
T30_SUPPORT_RESOLUTION_200_400 = 0x80,
/*! 300dpi x 300 dpi */
T30_SUPPORT_RESOLUTION_300_300 = 0x100,
/*! 300dpi x 600 dpi - bi-level only */
T30_SUPPORT_RESOLUTION_300_600 = 0x200,
/*! 400dpi x 400 dpi */
T30_SUPPORT_RESOLUTION_400_400 = 0x400,
/*! 400dpi x 800 dpi - bi-level only */
T30_SUPPORT_RESOLUTION_400_800 = 0x800,
/*! 600dpi x 600 dpi */
T30_SUPPORT_RESOLUTION_600_600 = 0x1000,
/*! 600dpi x 1200 dpi - bi-level only */
T30_SUPPORT_RESOLUTION_600_1200 = 0x2000,
/*! 1200dpi x 1200 dpi */
T30_SUPPORT_RESOLUTION_1200_1200 = 0x4000
};
enum
{
T30_SUPPORT_215MM_WIDTH = 0x01,
T30_SUPPORT_255MM_WIDTH = 0x02,
T30_SUPPORT_303MM_WIDTH = 0x04,
T30_SUPPORT_UNLIMITED_LENGTH = 0x10000,
T30_SUPPORT_A4_LENGTH = 0x20000,
T30_SUPPORT_B4_LENGTH = 0x40000,
T30_SUPPORT_US_LETTER_LENGTH = 0x80000,
T30_SUPPORT_US_LEGAL_LENGTH = 0x100000
}; };
enum enum
......
...@@ -60,7 +60,7 @@ typedef enum ...@@ -60,7 +60,7 @@ typedef enum
T4_COMPRESSION_T85 = 4, T4_COMPRESSION_T85 = 4,
/*! T.85 monochrome JBIG coding with L0 variable. */ /*! T.85 monochrome JBIG coding with L0 variable. */
T4_COMPRESSION_T85_L0 = 5, T4_COMPRESSION_T85_L0 = 5,
/*! T.43 colour JBIG coding */ /*! T.43 gray-scale/colour JBIG coding */
T4_COMPRESSION_T43 = 6, T4_COMPRESSION_T43 = 6,
/*! T.45 run length colour compression */ /*! T.45 run length colour compression */
T4_COMPRESSION_T45 = 7, T4_COMPRESSION_T45 = 7,
...@@ -70,15 +70,67 @@ typedef enum ...@@ -70,15 +70,67 @@ typedef enum
T4_COMPRESSION_SYCC_T81 = 9 T4_COMPRESSION_SYCC_T81 = 9
} t4_image_compression_t; } t4_image_compression_t;
enum
{
/*! No compression */
T30_SUPPORT_COMPRESSION_NONE = 0x01,
/*! T.1 1D compression */
T30_SUPPORT_COMPRESSION_T4_1D = 0x02,
/*! T.4 2D compression */
T30_SUPPORT_COMPRESSION_T4_2D = 0x04,
/*! T.6 2D compression */
T30_SUPPORT_COMPRESSION_T6 = 0x08,
/*! T.85 monochrome JBIG compression, with fixed L0 */
T30_SUPPORT_COMPRESSION_T85 = 0x10,
/*! T.85 monochrome JBIG compression, with variable L0 */
T30_SUPPORT_COMPRESSION_T85_L0 = 0x20,
/*! T.43 colour JBIG compression */
T30_SUPPORT_COMPRESSION_T43 = 0x40,
/*! T.45 run length colour compression */
T30_SUPPORT_COMPRESSION_T45 = 0x80,
/*! T.81 + T.30 Annex E colour JPEG compression */
T30_SUPPORT_COMPRESSION_T42_T81 = 0x100,
/*! T.81 + T.30 Annex K colour sYCC-JPEG compression */
T30_SUPPORT_COMPRESSION_SYCC_T81 = 0x200,
/*! T.88 monochrome JBIG2 compression */
T30_SUPPORT_COMPRESSION_T88 = 0x400,
/*! Gray-scale support by multi-level codecs */
T30_SUPPORT_COMPRESSION_GRAYSCALE = 0x1000000,
/*! Colour support by multi-level codecs */
T30_SUPPORT_COMPRESSION_COLOUR = 0x2000000,
/*! 12 bit mode for gray scale and colour */
T30_SUPPORT_COMPRESSION_12BIT = 0x4000000,
/*! Convert a colour image to a gray-scale one */
T30_SUPPORT_COMPRESSION_COLOUR_TO_GRAY = 0x8000000,
/*! Dither a gray scale image down a simple bilevel image, with rescaling to fit a FAX page */
T30_SUPPORT_GRAY_TO_BILEVEL = 0x10000000,
/*! Dither a colour image down a simple bilevel image, with rescaling to fit a FAX page */
T30_SUPPORT_COLOUR_TO_BILEVEL = 0x20000000,
/*! Rescale an image (except a bi-level image) to fit a permitted FAX width when necessary */
T30_SUPPORT_COMPRESSION_RESCALING = 0x40000000
};
/*! Image type */ /*! Image type */
typedef enum typedef enum
{ {
/* Traditional black and white FAX */
T4_IMAGE_TYPE_BILEVEL = 0, T4_IMAGE_TYPE_BILEVEL = 0,
/* RGB or CMY image */
T4_IMAGE_TYPE_COLOUR_BILEVEL = 1, T4_IMAGE_TYPE_COLOUR_BILEVEL = 1,
T4_IMAGE_TYPE_GRAY_8BIT = 2, /* CMYK image */
T4_IMAGE_TYPE_GRAY_12BIT = 3, T4_IMAGE_TYPE_4COLOUR_BILEVEL = 2,
T4_IMAGE_TYPE_COLOUR_8BIT = 4, /* 2 to 8 bits per pixel gray-scale image */
T4_IMAGE_TYPE_COLOUR_12BIT = 5 T4_IMAGE_TYPE_GRAY_8BIT = 3,
/* 9 to 12 bits per pixel gray-scale image */
T4_IMAGE_TYPE_GRAY_12BIT = 4,
/* 2 to 8 bits per pixel RGB or CMY colour image */
T4_IMAGE_TYPE_COLOUR_8BIT = 5,
/* 2 to 8 bits per pixel CMYK colour image */
T4_IMAGE_TYPE_4COLOUR_8BIT = 6,
/* 9 to 12 bits per pixel RGB or CMY colour image */
T4_IMAGE_TYPE_COLOUR_12BIT = 7,
/* 9 to 12 bits per pixel CMYK colour image */
T4_IMAGE_TYPE_4COLOUR_12BIT = 8
} t4_image_types_t; } t4_image_types_t;
/*! Supported X resolutions, in pixels per metre. */ /*! Supported X resolutions, in pixels per metre. */
...@@ -113,39 +165,74 @@ typedef enum ...@@ -113,39 +165,74 @@ typedef enum
/* Only the symmetric resolutions are valid for gray-scale and colour use. The asymmetric /* Only the symmetric resolutions are valid for gray-scale and colour use. The asymmetric
ones are bi-level only. */ ones are bi-level only. */
enum
{
/*! Standard FAX resolution 204dpi x 98dpi - bi-level only */
T4_RESOLUTION_R8_STANDARD = 1,
/*! Fine FAX resolution 204dpi x 196dpi - bi-level only */
T4_RESOLUTION_R8_FINE = 2,
/*! Super-fine FAX resolution 204dpi x 391dpi - bi-level only */
T4_RESOLUTION_R8_SUPERFINE = 3,
/*! Double FAX resolution 408dpi x 391dpi - bi-level only */
T4_RESOLUTION_R16_SUPERFINE = 4,
/*! 100dpi x 100 dpi - gray-scale and colour only */
T4_RESOLUTION_100_100 = 5,
/*! 200dpi x 100 dpi - bi-level only */
T4_RESOLUTION_200_100 = 6,
/*! 200dpi x 200 dpi */
T4_RESOLUTION_200_200 = 7,
/*! 200dpi x 400 dpi - bi-level only */
T4_RESOLUTION_200_400 = 8,
/*! 300dpi x 300 dpi */
T4_RESOLUTION_300_300 = 9,
/*! 300dpi x 600 dpi - bi-level only */
T4_RESOLUTION_300_600 = 10,
/*! 400dpi x 400 dpi */
T4_RESOLUTION_400_400 = 11,
/*! 400dpi x 800 dpi - bi-level only */
T4_RESOLUTION_400_800 = 12,
/*! 600dpi x 600 dpi */
T4_RESOLUTION_600_600 = 13,
/*! 600dpi x 1200 dpi - bi-level only */
T4_RESOLUTION_600_1200 = 14,
/*! 1200dpi x 1200 dpi */
T4_RESOLUTION_1200_1200 = 15
};
enum enum
{ {
/*! Support standard FAX resolution 204dpi x 98dpi - bi-level only */ /*! Support standard FAX resolution 204dpi x 98dpi - bi-level only */
T4_RESOLUTION_R8_STANDARD = 0x1, T4_SUPPORT_RESOLUTION_R8_STANDARD = 0x1,
/*! Support fine FAX resolution 204dpi x 196dpi - bi-level only */ /*! Support fine FAX resolution 204dpi x 196dpi - bi-level only */
T4_RESOLUTION_R8_FINE = 0x2, T4_SUPPORT_RESOLUTION_R8_FINE = 0x2,
/*! Support superfine FAX resolution 204dpi x 392dpi - bi-level only */ /*! Support super-fine FAX resolution 204dpi x 391dpi - bi-level only */
T4_RESOLUTION_R8_SUPERFINE = 0x4, T4_SUPPORT_RESOLUTION_R8_SUPERFINE = 0x4,
/*! Support double FAX resolution 408dpi x 392dpi - bi-level only */ /*! Support double FAX resolution 408dpi x 391dpi - bi-level only */
T4_RESOLUTION_R16_SUPERFINE = 0x8, T4_SUPPORT_RESOLUTION_R16_SUPERFINE = 0x8,
/*! Support 100dpi x 100 dpi */ /*! Support 100dpi x 100 dpi - gray scale and colour only */
T4_RESOLUTION_100_100 = 0x10, T4_SUPPORT_RESOLUTION_100_100 = 0x10,
/*! Support 200dpi x 100 dpi - bi-level only */ /*! Support 200dpi x 100 dpi - bi-level only */
T4_RESOLUTION_200_100 = 0x20, T4_SUPPORT_RESOLUTION_200_100 = 0x20,
/*! Support 200dpi x 200 dpi */ /*! Support 200dpi x 200 dpi */
T4_RESOLUTION_200_200 = 0x40, T4_SUPPORT_RESOLUTION_200_200 = 0x40,
/*! Support 200dpi x 400 dpi - bi-level only */ /*! Support 200dpi x 400 dpi - bi-level only */
T4_RESOLUTION_200_400 = 0x80, T4_SUPPORT_RESOLUTION_200_400 = 0x80,
/*! Support 300dpi x 300 dpi */ /*! Support 300dpi x 300 dpi */
T4_RESOLUTION_300_300 = 0x100, T4_SUPPORT_RESOLUTION_300_300 = 0x100,
/*! Support 300dpi x 600 dpi - bi-level only */ /*! Support 300dpi x 600 dpi - bi-level only */
T4_RESOLUTION_300_600 = 0x200, T4_SUPPORT_RESOLUTION_300_600 = 0x200,
/*! Support 400dpi x 400 dpi */ /*! Support 400dpi x 400 dpi */
T4_RESOLUTION_400_400 = 0x400, T4_SUPPORT_RESOLUTION_400_400 = 0x400,
/*! Support 400dpi x 800 dpi - bi-level only */ /*! Support 400dpi x 800 dpi - bi-level only */
T4_RESOLUTION_400_800 = 0x800, T4_SUPPORT_RESOLUTION_400_800 = 0x800,
/*! Support 600dpi x 600 dpi */ /*! Support 600dpi x 600 dpi */
T4_RESOLUTION_600_600 = 0x1000, T4_SUPPORT_RESOLUTION_600_600 = 0x1000,
/*! Support 600dpi x 1200 dpi - bi-level only */ /*! Support 600dpi x 1200 dpi - bi-level only */
T4_RESOLUTION_600_1200 = 0x2000, T4_SUPPORT_RESOLUTION_600_1200 = 0x2000,
/*! Support 1200dpi x 1200 dpi */ /*! Support 1200dpi x 1200 dpi */
T4_RESOLUTION_1200_1200 = 0x4000 T4_SUPPORT_RESOLUTION_1200_1200 = 0x4000
}; };
/*! /*!
...@@ -286,6 +373,19 @@ typedef enum ...@@ -286,6 +373,19 @@ typedef enum
T4_LENGTH_1200_US_LEGAL = 16800 T4_LENGTH_1200_US_LEGAL = 16800
} t4_image_length_t; } t4_image_length_t;
enum
{
T4_SUPPORT_WIDTH_215MM = 0x01,
T4_SUPPORT_WIDTH_255MM = 0x02,
T4_SUPPORT_WIDTH_303MM = 0x04,
T4_SUPPORT_LENGTH_UNLIMITED = 0x10000,
T4_SUPPORT_LENGTH_A4 = 0x20000,
T4_SUPPORT_LENGTH_B4 = 0x40000,
T4_SUPPORT_LENGTH_US_LETTER = 0x80000,
T4_SUPPORT_LENGTH_US_LEGAL = 0x100000
};
/*! Return values from the T.85 decoder */ /*! Return values from the T.85 decoder */
typedef enum typedef enum
{ {
......
差异被折叠。
...@@ -712,23 +712,23 @@ SPAN_DECLARE(int) t30_set_supported_compressions(t30_state_t *s, int supported_c ...@@ -712,23 +712,23 @@ SPAN_DECLARE(int) t30_set_supported_compressions(t30_state_t *s, int supported_c
SPAN_DECLARE(int) t30_set_supported_bilevel_resolutions(t30_state_t *s, int supported_resolutions) SPAN_DECLARE(int) t30_set_supported_bilevel_resolutions(t30_state_t *s, int supported_resolutions)
{ {
supported_resolutions &= T4_RESOLUTION_R8_STANDARD supported_resolutions &= T4_SUPPORT_RESOLUTION_R8_STANDARD
| T4_RESOLUTION_R8_FINE | T4_SUPPORT_RESOLUTION_R8_FINE
| T4_RESOLUTION_R8_SUPERFINE | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
| T4_RESOLUTION_R16_SUPERFINE | T4_SUPPORT_RESOLUTION_R16_SUPERFINE
| T4_RESOLUTION_200_100 | T4_SUPPORT_RESOLUTION_200_100
| T4_RESOLUTION_200_200 | T4_SUPPORT_RESOLUTION_200_200
| T4_RESOLUTION_200_400 | T4_SUPPORT_RESOLUTION_200_400
| T4_RESOLUTION_300_300 | T4_SUPPORT_RESOLUTION_300_300
| T4_RESOLUTION_300_600 | T4_SUPPORT_RESOLUTION_300_600
| T4_RESOLUTION_400_400 | T4_SUPPORT_RESOLUTION_400_400
| T4_RESOLUTION_400_800 | T4_SUPPORT_RESOLUTION_400_800
| T4_RESOLUTION_600_600 | T4_SUPPORT_RESOLUTION_600_600
| T4_RESOLUTION_600_1200 | T4_SUPPORT_RESOLUTION_600_1200
| T4_RESOLUTION_1200_1200; | T4_SUPPORT_RESOLUTION_1200_1200;
/* Make sure anything needed for colour is enabled as a bi-level image, as that is a /* Make sure anything needed for colour is enabled as a bi-level image, as that is a
rule from T.30. 100x100 is an exception, as it doesn't exist as a bi-level resolution. */ rule from T.30. 100x100 is an exception, as it doesn't exist as a bi-level resolution. */
supported_resolutions |= (s->supported_colour_resolutions & ~T4_RESOLUTION_100_100); supported_resolutions |= (s->supported_colour_resolutions & ~T4_SUPPORT_RESOLUTION_100_100);
s->supported_bilevel_resolutions = supported_resolutions; s->supported_bilevel_resolutions = supported_resolutions;
t30_build_dis_or_dtc(s); t30_build_dis_or_dtc(s);
return 0; return 0;
...@@ -737,16 +737,16 @@ SPAN_DECLARE(int) t30_set_supported_bilevel_resolutions(t30_state_t *s, int supp ...@@ -737,16 +737,16 @@ SPAN_DECLARE(int) t30_set_supported_bilevel_resolutions(t30_state_t *s, int supp
SPAN_DECLARE(int) t30_set_supported_colour_resolutions(t30_state_t *s, int supported_resolutions) SPAN_DECLARE(int) t30_set_supported_colour_resolutions(t30_state_t *s, int supported_resolutions)
{ {
supported_resolutions &= T4_RESOLUTION_100_100 supported_resolutions &= T4_SUPPORT_RESOLUTION_100_100
| T4_RESOLUTION_200_200 | T4_SUPPORT_RESOLUTION_200_200
| T4_RESOLUTION_300_300 | T4_SUPPORT_RESOLUTION_300_300
| T4_RESOLUTION_400_400 | T4_SUPPORT_RESOLUTION_400_400
| T4_RESOLUTION_600_600 | T4_SUPPORT_RESOLUTION_600_600
| T4_RESOLUTION_1200_1200; | T4_SUPPORT_RESOLUTION_1200_1200;
s->supported_colour_resolutions = supported_resolutions; s->supported_colour_resolutions = supported_resolutions;
/* Make sure anything needed for colour is enabled as a bi-level image, as that is a /* Make sure anything needed for colour is enabled as a bi-level image, as that is a
rule from T.30. 100x100 is an exception, as it doesn't exist as a bi-level resolution. */ rule from T.30. 100x100 is an exception, as it doesn't exist as a bi-level resolution. */
s->supported_bilevel_resolutions |= (s->supported_colour_resolutions & ~T4_RESOLUTION_100_100); s->supported_bilevel_resolutions |= (s->supported_colour_resolutions & ~T4_SUPPORT_RESOLUTION_100_100);
t30_build_dis_or_dtc(s); t30_build_dis_or_dtc(s);
return 0; return 0;
} }
......
...@@ -263,6 +263,7 @@ static int get_tiff_directory_info(t4_tx_state_t *s) ...@@ -263,6 +263,7 @@ static int get_tiff_directory_info(t4_tx_state_t *s)
}; };
char *u; char *u;
char uu[10]; char uu[10];
uint64_t diroff;
uint8_t parm8; uint8_t parm8;
uint16_t parm16; uint16_t parm16;
#endif #endif
...@@ -372,6 +373,38 @@ static int get_tiff_directory_info(t4_tx_state_t *s) ...@@ -372,6 +373,38 @@ static int get_tiff_directory_info(t4_tx_state_t *s)
} }
if (TIFFGetField(t->tiff_file, TIFFTAG_MODENUMBER, &parm8)) if (TIFFGetField(t->tiff_file, TIFFTAG_MODENUMBER, &parm8))
span_log(&s->logging, SPAN_LOG_FLOW, "Mode number %u\n", parm8); span_log(&s->logging, SPAN_LOG_FLOW, "Mode number %u\n", parm8);
/* If global parameters are present they should only be on the first page of the file.
However, as we scan the file we might as well look for them on any page. */
if (TIFFGetField(t->tiff_file, TIFFTAG_GLOBALPARAMETERSIFD, &diroff))
{
span_log(&s->logging, SPAN_LOG_FLOW, "Global parameters IFD at %" PRIu64 "\n", diroff);
if (!TIFFReadCustomDirectory(t->tiff_file, diroff, &tiff_fx_field_array))
{
span_log(&s->logging, SPAN_LOG_FLOW, "Global parameter read failed\n");
}
else
{
span_log(&s->logging, SPAN_LOG_FLOW, "Global parameters\n");
if (TIFFGetField(t->tiff_file, TIFFTAG_PROFILETYPE, &parm32))
span_log(&s->logging, SPAN_LOG_FLOW, " Profile type %u\n", parm32);
if (TIFFGetField(t->tiff_file, TIFFTAG_FAXPROFILE, &parm8))
span_log(&s->logging, SPAN_LOG_FLOW, " FAX profile %s (%u)\n", tiff_fx_fax_profiles[parm8], parm8);
if (TIFFGetField(t->tiff_file, TIFFTAG_CODINGMETHODS, &parm32))
span_log(&s->logging, SPAN_LOG_FLOW, " Coding methods 0x%x\n", parm32);
if (TIFFGetField(t->tiff_file, TIFFTAG_VERSIONYEAR, &u))
{
memcpy(uu, u, 4);
uu[4] = '\0';
span_log(&s->logging, SPAN_LOG_FLOW, " Version year \"%s\"\n", uu);
}
if (TIFFGetField(t->tiff_file, TIFFTAG_MODENUMBER, &parm8))
span_log(&s->logging, SPAN_LOG_FLOW, " Mode number %u\n", parm8);
if (!TIFFSetDirectory(t->tiff_file, (tdir_t) s->current_page))
span_log(&s->logging, SPAN_LOG_FLOW, "Failed to set directory to page %d\n", s->current_page);
}
}
#endif #endif
return 0; return 0;
} }
......
...@@ -839,27 +839,27 @@ int main(int argc, char *argv[]) ...@@ -839,27 +839,27 @@ int main(int argc, char *argv[])
| T30_SUPPORT_SELECTIVE_POLLING | T30_SUPPORT_SELECTIVE_POLLING
| T30_SUPPORT_SUB_ADDRESSING); | T30_SUPPORT_SUB_ADDRESSING);
t30_set_supported_image_sizes(t30_state[i], t30_set_supported_image_sizes(t30_state[i],
T30_SUPPORT_US_LETTER_LENGTH T4_SUPPORT_WIDTH_215MM
| T30_SUPPORT_US_LEGAL_LENGTH | T4_SUPPORT_WIDTH_255MM
| T30_SUPPORT_UNLIMITED_LENGTH | T4_SUPPORT_WIDTH_303MM
| T30_SUPPORT_215MM_WIDTH | T4_SUPPORT_LENGTH_US_LETTER
| T30_SUPPORT_255MM_WIDTH | T4_SUPPORT_LENGTH_US_LEGAL
| T30_SUPPORT_303MM_WIDTH); | T4_SUPPORT_LENGTH_UNLIMITED);
t30_set_supported_bilevel_resolutions(t30_state[i], t30_set_supported_bilevel_resolutions(t30_state[i],
T30_SUPPORT_RESOLUTION_R8_STANDARD T4_SUPPORT_RESOLUTION_R8_STANDARD
| T30_SUPPORT_RESOLUTION_R8_FINE | T4_SUPPORT_RESOLUTION_R8_FINE
| T30_SUPPORT_RESOLUTION_R8_SUPERFINE | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
| T30_SUPPORT_RESOLUTION_R16_SUPERFINE | T4_SUPPORT_RESOLUTION_R16_SUPERFINE
| T30_SUPPORT_RESOLUTION_200_100 | T4_SUPPORT_RESOLUTION_200_100
| T30_SUPPORT_RESOLUTION_200_200 | T4_SUPPORT_RESOLUTION_200_200
| T30_SUPPORT_RESOLUTION_200_400 | T4_SUPPORT_RESOLUTION_200_400
| T30_SUPPORT_RESOLUTION_300_300 | T4_SUPPORT_RESOLUTION_300_300
| T30_SUPPORT_RESOLUTION_300_600 | T4_SUPPORT_RESOLUTION_300_600
| T30_SUPPORT_RESOLUTION_400_400 | T4_SUPPORT_RESOLUTION_400_400
| T30_SUPPORT_RESOLUTION_400_800 | T4_SUPPORT_RESOLUTION_400_800
| T30_SUPPORT_RESOLUTION_600_600 | T4_SUPPORT_RESOLUTION_600_600
| T30_SUPPORT_RESOLUTION_600_1200 | T4_SUPPORT_RESOLUTION_600_1200
| T30_SUPPORT_RESOLUTION_1200_1200); | T4_SUPPORT_RESOLUTION_1200_1200);
t30_set_supported_colour_resolutions(t30_state[i], 0); t30_set_supported_colour_resolutions(t30_state[i], 0);
//t30_set_rx_encoding(t30_state[i], T4_COMPRESSION_T85); //t30_set_rx_encoding(t30_state[i], T4_COMPRESSION_T85);
t30_set_ecm_capability(t30_state[i], use_ecm); t30_set_ecm_capability(t30_state[i], use_ecm);
......
...@@ -386,27 +386,27 @@ static void fax_prepare(void) ...@@ -386,27 +386,27 @@ static void fax_prepare(void)
| T30_SUPPORT_SELECTIVE_POLLING | T30_SUPPORT_SELECTIVE_POLLING
| T30_SUPPORT_SUB_ADDRESSING); | T30_SUPPORT_SUB_ADDRESSING);
t30_set_supported_image_sizes(t30, t30_set_supported_image_sizes(t30,
T30_SUPPORT_US_LETTER_LENGTH T4_SUPPORT_WIDTH_215MM
| T30_SUPPORT_US_LEGAL_LENGTH | T4_SUPPORT_WIDTH_255MM
| T30_SUPPORT_UNLIMITED_LENGTH | T4_SUPPORT_WIDTH_303MM
| T30_SUPPORT_215MM_WIDTH | T4_SUPPORT_LENGTH_US_LETTER
| T30_SUPPORT_255MM_WIDTH | T4_SUPPORT_LENGTH_US_LEGAL
| T30_SUPPORT_303MM_WIDTH); | T4_SUPPORT_LENGTH_UNLIMITED);
t30_set_supported_bilevel_resolutions(t30, t30_set_supported_bilevel_resolutions(t30,
T30_SUPPORT_RESOLUTION_R8_STANDARD T4_SUPPORT_RESOLUTION_R8_STANDARD
| T30_SUPPORT_RESOLUTION_R8_FINE | T4_SUPPORT_RESOLUTION_R8_FINE
| T30_SUPPORT_RESOLUTION_R8_SUPERFINE | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
| T30_SUPPORT_RESOLUTION_R16_SUPERFINE | T4_SUPPORT_RESOLUTION_R16_SUPERFINE
| T30_SUPPORT_RESOLUTION_200_100 | T4_SUPPORT_RESOLUTION_200_100
| T30_SUPPORT_RESOLUTION_200_200 | T4_SUPPORT_RESOLUTION_200_200
| T30_SUPPORT_RESOLUTION_200_400 | T4_SUPPORT_RESOLUTION_200_400
| T30_SUPPORT_RESOLUTION_300_300 | T4_SUPPORT_RESOLUTION_300_300
| T30_SUPPORT_RESOLUTION_300_600 | T4_SUPPORT_RESOLUTION_300_600
| T30_SUPPORT_RESOLUTION_400_400 | T4_SUPPORT_RESOLUTION_400_400
| T30_SUPPORT_RESOLUTION_400_800 | T4_SUPPORT_RESOLUTION_400_800
| T30_SUPPORT_RESOLUTION_600_600 | T4_SUPPORT_RESOLUTION_600_600
| T30_SUPPORT_RESOLUTION_600_1200 | T4_SUPPORT_RESOLUTION_600_1200
| T30_SUPPORT_RESOLUTION_1200_1200); | T4_SUPPORT_RESOLUTION_1200_1200);
t30_set_supported_colour_resolutions(t30, 0); t30_set_supported_colour_resolutions(t30, 0);
t30_set_supported_modems(t30, T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17); t30_set_supported_modems(t30, T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17);
t30_set_supported_compressions(t30, T30_SUPPORT_COMPRESSION_T4_1D | T30_SUPPORT_COMPRESSION_T4_2D | T30_SUPPORT_COMPRESSION_T6); t30_set_supported_compressions(t30, T30_SUPPORT_COMPRESSION_T4_1D | T30_SUPPORT_COMPRESSION_T4_2D | T30_SUPPORT_COMPRESSION_T6);
......
...@@ -193,7 +193,7 @@ tiffFields[] = { ...@@ -193,7 +193,7 @@ tiffFields[] = {
/* end DNG tags */ /* end DNG tags */
/* begin TIFF/FX tags */ /* begin TIFF/FX tags */
{ TIFFTAG_INDEXED, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "Indexed" }, { 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_GLOBALPARAMETERSIFD, 1, 1, TIFF_IFD8, 0, TIFF_SETGET_IFD8, 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_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_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_CODINGMETHODS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "CodingMethods", NULL },
......
...@@ -839,7 +839,6 @@ static switch_status_t spanfax_init(pvt_t *pvt, transport_mode_t trans_mode) ...@@ -839,7 +839,6 @@ static switch_status_t spanfax_init(pvt_t *pvt, transport_mode_t trans_mode)
t38_gateway_set_ecm_capability(pvt->t38_gateway_state, TRUE); t38_gateway_set_ecm_capability(pvt->t38_gateway_state, TRUE);
} }
span_log_set_message_handler(t38_gateway_get_logging_state(pvt->t38_gateway_state), spanfax_log_message, pvt); span_log_set_message_handler(t38_gateway_get_logging_state(pvt->t38_gateway_state), spanfax_log_message, pvt);
span_log_set_message_handler(t38_core_get_logging_state(pvt->t38_core), spanfax_log_message, pvt); span_log_set_message_handler(t38_core_get_logging_state(pvt->t38_core), spanfax_log_message, pvt);
...@@ -873,13 +872,13 @@ static switch_status_t spanfax_init(pvt_t *pvt, transport_mode_t trans_mode) ...@@ -873,13 +872,13 @@ static switch_status_t spanfax_init(pvt_t *pvt, transport_mode_t trans_mode)
t30_set_phase_b_handler(t30, phase_b_handler, pvt); t30_set_phase_b_handler(t30, phase_b_handler, pvt);
t30_set_supported_image_sizes(t30, t30_set_supported_image_sizes(t30,
T30_SUPPORT_US_LETTER_LENGTH | T30_SUPPORT_US_LEGAL_LENGTH | T30_SUPPORT_UNLIMITED_LENGTH T4_SUPPORT_LENGTH_US_LETTER | T4_SUPPORT_LENGTH_US_LEGAL | T4_SUPPORT_LENGTH_UNLIMITED
| T30_SUPPORT_215MM_WIDTH | T30_SUPPORT_255MM_WIDTH | T30_SUPPORT_303MM_WIDTH); | T4_SUPPORT_WIDTH_215MM | T4_SUPPORT_WIDTH_255MM | T4_SUPPORT_WIDTH_303MM);
t30_set_supported_bilevel_resolutions(t30, t30_set_supported_bilevel_resolutions(t30,
T30_SUPPORT_RESOLUTION_R8_STANDARD T4_SUPPORT_RESOLUTION_R8_STANDARD
| T30_SUPPORT_RESOLUTION_R8_FINE | T4_SUPPORT_RESOLUTION_R8_FINE
| T30_SUPPORT_RESOLUTION_R8_SUPERFINE | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
| T30_SUPPORT_RESOLUTION_R16_SUPERFINE); | T4_SUPPORT_RESOLUTION_R16_SUPERFINE);
t30_set_supported_colour_resolutions(t30, 0); t30_set_supported_colour_resolutions(t30, 0);
if (pvt->disable_v17) { if (pvt->disable_v17) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论