Some tweaks to spandsp tests. Make spandsp write TIFF files more like the
TIFF/FX spec says, even though no software seems to care.
This commit is contained in:
parent
35aaa693d0
commit
2ff6327c93
|
@ -1689,6 +1689,16 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||
}
|
||||
s->at_state.transmit = TRUE;
|
||||
break;
|
||||
case FAX_MODEM_V21_RX:
|
||||
if (s->t38_mode)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
t31_v21_rx(s);
|
||||
fax_modems_set_rx_handler(t, (span_rx_handler_t) &fsk_rx, &t->v21_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &t->v21_rx);
|
||||
}
|
||||
break;
|
||||
case FAX_MODEM_V21_TX:
|
||||
if (s->t38_mode)
|
||||
{
|
||||
|
@ -1712,15 +1722,16 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||
s->dled = FALSE;
|
||||
s->at_state.transmit = TRUE;
|
||||
break;
|
||||
case FAX_MODEM_V21_RX:
|
||||
if (s->t38_mode)
|
||||
{
|
||||
}
|
||||
else
|
||||
case FAX_MODEM_V17_RX:
|
||||
case FAX_MODEM_V27TER_RX:
|
||||
case FAX_MODEM_V29_RX:
|
||||
if (!s->t38_mode)
|
||||
{
|
||||
fax_modems_start_fast_modem(t, s->modem, s->bit_rate, s->short_train, use_hdlc);
|
||||
/* Allow for +FCERROR/+FRH:3 */
|
||||
t31_v21_rx(s);
|
||||
fax_modems_set_rx_handler(t, (span_rx_handler_t) &fsk_rx, &t->v21_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &t->v21_rx);
|
||||
}
|
||||
s->at_state.transmit = FALSE;
|
||||
break;
|
||||
case FAX_MODEM_V17_TX:
|
||||
if (s->t38_mode)
|
||||
|
@ -1755,17 +1766,6 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||
s->tx.data_started = FALSE;
|
||||
s->at_state.transmit = TRUE;
|
||||
break;
|
||||
case FAX_MODEM_V17_RX:
|
||||
case FAX_MODEM_V27TER_RX:
|
||||
case FAX_MODEM_V29_RX:
|
||||
if (!s->t38_mode)
|
||||
{
|
||||
fax_modems_start_fast_modem(t, s->modem, s->bit_rate, s->short_train, use_hdlc);
|
||||
/* Allow for +FCERROR/+FRH:3 */
|
||||
t31_v21_rx(s);
|
||||
}
|
||||
s->at_state.transmit = FALSE;
|
||||
break;
|
||||
case FAX_MODEM_V27TER_TX:
|
||||
if (s->t38_mode)
|
||||
{
|
||||
|
|
|
@ -172,7 +172,7 @@ static int set_tiff_directory_info(t4_rx_state_t *s)
|
|||
}
|
||||
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_PROFILETYPE, PROFILETYPE_G3_FAX);
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_FAXPROFILE, FAXPROFILE_S);
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_FAXPROFILE, FAXPROFILE_F);
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_CODINGMETHODS, CODINGMETHODS_T4_1D | CODINGMETHODS_T4_2D | CODINGMETHODS_T6);
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_VERSIONYEAR, "1998");
|
||||
/* TIFFSetField(t->tiff_file, TIFFTAG_MODENUMBER, 0); */
|
||||
|
@ -304,10 +304,14 @@ static int write_tiff_image(t4_rx_state_t *s)
|
|||
return -1;
|
||||
/* Set up the TIFF directory info... */
|
||||
set_tiff_directory_info(s);
|
||||
/* ...and then write the image... */
|
||||
/* ...Put the directory in the file before the image data, to get them in the order specified
|
||||
for TIFF/F files... */
|
||||
if (!TIFFCheckpointDirectory(t->tiff_file))
|
||||
span_log(&s->logging, SPAN_LOG_WARNING, "%s: Failed to checkpoint directory for page %d.\n", t->file, s->current_page);
|
||||
/* ...and write out the image... */
|
||||
if (TIFFWriteEncodedStrip(t->tiff_file, 0, t->image_buffer, t->image_size) < 0)
|
||||
span_log(&s->logging, SPAN_LOG_WARNING, "%s: Error writing TIFF strip.\n", t->file);
|
||||
/* ...then the directory entry, and libtiff is happy. */
|
||||
/* ...then finalise the directory entry, and libtiff is happy. */
|
||||
if (!TIFFWriteDirectory(t->tiff_file))
|
||||
span_log(&s->logging, SPAN_LOG_WARNING, "%s: Failed to write directory for page %d.\n", t->file, s->current_page);
|
||||
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||
|
@ -316,7 +320,7 @@ static int write_tiff_image(t4_rx_state_t *s)
|
|||
if (!TIFFCreateCustomDirectory(t->tiff_file, &tiff_fx_field_array))
|
||||
{
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_FAXPROFILE, PROFILETYPE_G3_FAX);
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_PROFILETYPE, FAXPROFILE_S);
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_PROFILETYPE, FAXPROFILE_F);
|
||||
TIFFSetField(t->tiff_file, TIFFTAG_VERSIONYEAR, "1998");
|
||||
|
||||
offset = 0;
|
||||
|
|
|
@ -623,6 +623,10 @@ int main(int argc, char *argv[])
|
|||
tm->tm_sec);
|
||||
TIFFSetField(tiff_file, TIFFTAG_DATETIME, buf);
|
||||
image_length = sequence[i].length;
|
||||
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
||||
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
||||
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
|
||||
TIFFCheckpointDirectory(tiff_file);
|
||||
|
||||
/* Write the image first.... */
|
||||
switch (sequence[i].type)
|
||||
|
@ -662,8 +666,6 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
/* ....then the directory entry, and libtiff is happy. */
|
||||
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
|
||||
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
||||
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
||||
|
||||
TIFFWriteDirectory(tiff_file);
|
||||
}
|
||||
|
|
|
@ -137,6 +137,7 @@ int main(int argc, char *argv[])
|
|||
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
||||
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
||||
TIFFSetField(tiff_file, TIFFTAG_IMAGEWIDTH, image_width);
|
||||
TIFFCheckpointDirectory(tiff_file);
|
||||
|
||||
/* Write the image first.... */
|
||||
for (row = 0; row < image_length; row++)
|
||||
|
|
|
@ -367,6 +367,7 @@ int main(int argc, char *argv[])
|
|||
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
||||
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
||||
TIFFSetField(tiff_file, TIFFTAG_IMAGEWIDTH, sequence[i].width);
|
||||
TIFFCheckpointDirectory(tiff_file);
|
||||
|
||||
/* Write the image first.... */
|
||||
for (row = 0; row < sequence[i].length; row++)
|
||||
|
|
|
@ -103,6 +103,7 @@ int main(int argc, char *argv[])
|
|||
TIFFSetField(tiff_file, TIFFTAG_IMAGEWIDTH, IMAGE_WIDTH);
|
||||
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, IMAGE_LENGTH);
|
||||
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
||||
TIFFCheckpointDirectory(tiff_file);
|
||||
|
||||
image_size = IMAGE_WIDTH*ROWS_PER_STRIPE/8;
|
||||
memset(image_buffer, 0x18, image_size);
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
#include "spandsp.h"
|
||||
|
||||
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||
//#include <tif_dir.h>
|
||||
#include <tif_dir.h>
|
||||
#endif
|
||||
|
||||
//#define IN_FILE_NAME "../test-data/itu/t24/F21_200.TIF"
|
||||
|
@ -156,7 +156,9 @@ int main(int argc, char *argv[])
|
|||
|
||||
logging = span_log_init(NULL, SPAN_LOG_FLOW, "T.42");
|
||||
|
||||
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||
TIFF_FX_init();
|
||||
#endif
|
||||
|
||||
set_lab_illuminant(&lab_param, 0.9638f, 1.0f, 0.8245f);
|
||||
set_lab_gamut(&lab_param, 0, 100, -85, 85, -75, 125, FALSE);
|
||||
|
@ -189,7 +191,7 @@ int main(int argc, char *argv[])
|
|||
YCbCrSubsampleHoriz = 0;
|
||||
YCbCrSubsampleVert = 0;
|
||||
TIFFGetField(tif, TIFFTAG_YCBCRSUBSAMPLING, &YCbCrSubsampleHoriz, &YCbCrSubsampleVert);
|
||||
planar_config = 0;
|
||||
planar_config = PLANARCONFIG_CONTIG;
|
||||
TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &planar_config);
|
||||
off = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue