mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 12:40:17 +00:00
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
4cb0e2e5bd
commit
cc73cb6544
@ -1689,6 +1689,16 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||||||
}
|
}
|
||||||
s->at_state.transmit = TRUE;
|
s->at_state.transmit = TRUE;
|
||||||
break;
|
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:
|
case FAX_MODEM_V21_TX:
|
||||||
if (s->t38_mode)
|
if (s->t38_mode)
|
||||||
{
|
{
|
||||||
@ -1712,15 +1722,16 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||||||
s->dled = FALSE;
|
s->dled = FALSE;
|
||||||
s->at_state.transmit = TRUE;
|
s->at_state.transmit = TRUE;
|
||||||
break;
|
break;
|
||||||
case FAX_MODEM_V21_RX:
|
case FAX_MODEM_V17_RX:
|
||||||
if (s->t38_mode)
|
case FAX_MODEM_V27TER_RX:
|
||||||
{
|
case FAX_MODEM_V29_RX:
|
||||||
}
|
if (!s->t38_mode)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
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);
|
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;
|
break;
|
||||||
case FAX_MODEM_V17_TX:
|
case FAX_MODEM_V17_TX:
|
||||||
if (s->t38_mode)
|
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->tx.data_started = FALSE;
|
||||||
s->at_state.transmit = TRUE;
|
s->at_state.transmit = TRUE;
|
||||||
break;
|
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:
|
case FAX_MODEM_V27TER_TX:
|
||||||
if (s->t38_mode)
|
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)
|
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||||
TIFFSetField(t->tiff_file, TIFFTAG_PROFILETYPE, PROFILETYPE_G3_FAX);
|
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_CODINGMETHODS, CODINGMETHODS_T4_1D | CODINGMETHODS_T4_2D | CODINGMETHODS_T6);
|
||||||
TIFFSetField(t->tiff_file, TIFFTAG_VERSIONYEAR, "1998");
|
TIFFSetField(t->tiff_file, TIFFTAG_VERSIONYEAR, "1998");
|
||||||
/* TIFFSetField(t->tiff_file, TIFFTAG_MODENUMBER, 0); */
|
/* TIFFSetField(t->tiff_file, TIFFTAG_MODENUMBER, 0); */
|
||||||
@ -304,10 +304,14 @@ static int write_tiff_image(t4_rx_state_t *s)
|
|||||||
return -1;
|
return -1;
|
||||||
/* Set up the TIFF directory info... */
|
/* Set up the TIFF directory info... */
|
||||||
set_tiff_directory_info(s);
|
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)
|
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);
|
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))
|
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);
|
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)
|
#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))
|
if (!TIFFCreateCustomDirectory(t->tiff_file, &tiff_fx_field_array))
|
||||||
{
|
{
|
||||||
TIFFSetField(t->tiff_file, TIFFTAG_FAXPROFILE, PROFILETYPE_G3_FAX);
|
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");
|
TIFFSetField(t->tiff_file, TIFFTAG_VERSIONYEAR, "1998");
|
||||||
|
|
||||||
offset = 0;
|
offset = 0;
|
||||||
|
@ -623,6 +623,10 @@ int main(int argc, char *argv[])
|
|||||||
tm->tm_sec);
|
tm->tm_sec);
|
||||||
TIFFSetField(tiff_file, TIFFTAG_DATETIME, buf);
|
TIFFSetField(tiff_file, TIFFTAG_DATETIME, buf);
|
||||||
image_length = sequence[i].length;
|
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.... */
|
/* Write the image first.... */
|
||||||
switch (sequence[i].type)
|
switch (sequence[i].type)
|
||||||
@ -662,8 +666,6 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
/* ....then the directory entry, and libtiff is happy. */
|
/* ....then the directory entry, and libtiff is happy. */
|
||||||
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
|
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
|
||||||
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
|
||||||
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
|
||||||
|
|
||||||
TIFFWriteDirectory(tiff_file);
|
TIFFWriteDirectory(tiff_file);
|
||||||
}
|
}
|
||||||
|
@ -137,6 +137,7 @@ int main(int argc, char *argv[])
|
|||||||
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
||||||
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
||||||
TIFFSetField(tiff_file, TIFFTAG_IMAGEWIDTH, image_width);
|
TIFFSetField(tiff_file, TIFFTAG_IMAGEWIDTH, image_width);
|
||||||
|
TIFFCheckpointDirectory(tiff_file);
|
||||||
|
|
||||||
/* Write the image first.... */
|
/* Write the image first.... */
|
||||||
for (row = 0; row < image_length; row++)
|
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_PAGENUMBER, 0, 1);
|
||||||
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
|
||||||
TIFFSetField(tiff_file, TIFFTAG_IMAGEWIDTH, sequence[i].width);
|
TIFFSetField(tiff_file, TIFFTAG_IMAGEWIDTH, sequence[i].width);
|
||||||
|
TIFFCheckpointDirectory(tiff_file);
|
||||||
|
|
||||||
/* Write the image first.... */
|
/* Write the image first.... */
|
||||||
for (row = 0; row < sequence[i].length; row++)
|
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_IMAGEWIDTH, IMAGE_WIDTH);
|
||||||
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, IMAGE_LENGTH);
|
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, IMAGE_LENGTH);
|
||||||
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
|
||||||
|
TIFFCheckpointDirectory(tiff_file);
|
||||||
|
|
||||||
image_size = IMAGE_WIDTH*ROWS_PER_STRIPE/8;
|
image_size = IMAGE_WIDTH*ROWS_PER_STRIPE/8;
|
||||||
memset(image_buffer, 0x18, image_size);
|
memset(image_buffer, 0x18, image_size);
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
#include "spandsp.h"
|
#include "spandsp.h"
|
||||||
|
|
||||||
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||||
//#include <tif_dir.h>
|
#include <tif_dir.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#define IN_FILE_NAME "../test-data/itu/t24/F21_200.TIF"
|
//#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");
|
logging = span_log_init(NULL, SPAN_LOG_FLOW, "T.42");
|
||||||
|
|
||||||
|
#if defined(SPANDSP_SUPPORT_TIFF_FX)
|
||||||
TIFF_FX_init();
|
TIFF_FX_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
set_lab_illuminant(&lab_param, 0.9638f, 1.0f, 0.8245f);
|
set_lab_illuminant(&lab_param, 0.9638f, 1.0f, 0.8245f);
|
||||||
set_lab_gamut(&lab_param, 0, 100, -85, 85, -75, 125, FALSE);
|
set_lab_gamut(&lab_param, 0, 100, -85, 85, -75, 125, FALSE);
|
||||||
@ -189,7 +191,7 @@ int main(int argc, char *argv[])
|
|||||||
YCbCrSubsampleHoriz = 0;
|
YCbCrSubsampleHoriz = 0;
|
||||||
YCbCrSubsampleVert = 0;
|
YCbCrSubsampleVert = 0;
|
||||||
TIFFGetField(tif, TIFFTAG_YCBCRSUBSAMPLING, &YCbCrSubsampleHoriz, &YCbCrSubsampleVert);
|
TIFFGetField(tif, TIFFTAG_YCBCRSUBSAMPLING, &YCbCrSubsampleHoriz, &YCbCrSubsampleVert);
|
||||||
planar_config = 0;
|
planar_config = PLANARCONFIG_CONTIG;
|
||||||
TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &planar_config);
|
TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &planar_config);
|
||||||
off = 0;
|
off = 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user