#include <stdlib.h>#include <inttypes.h>#include <limits.h>#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <time.h>#include <memory.h>#include <string.h>#include <tgmath.h>#include <math.h>#include "floating_fudge.h"#include <tiffio.h>#include "spandsp/telephony.h"#include "spandsp/logging.h"#include "spandsp/bit_operations.h"#include "spandsp/async.h"#include "spandsp/timezone.h"#include "spandsp/t4_rx.h"#include "spandsp/t4_tx.h"#include "spandsp/image_translate.h"#include "spandsp/t81_t82_arith_coding.h"#include "spandsp/t85.h"#include "spandsp/t42.h"#include "spandsp/t4_t6_decode.h"#include "spandsp/t4_t6_encode.h"#include "spandsp/version.h"#include "spandsp/private/logging.h"#include "spandsp/private/t81_t82_arith_coding.h"#include "spandsp/private/t85.h"#include "spandsp/private/t42.h"#include "spandsp/private/t4_t6_decode.h"#include "spandsp/private/t4_t6_encode.h"#include "spandsp/private/image_translate.h"#include "spandsp/private/t4_rx.h"#include "spandsp/private/t4_tx.h"Defines | |
| #define | CM_PER_INCH 2.54f |
Functions | |
| const char * | t4_encoding_to_str (int encoding) |
| Get the short text name of an encoding format. | |
| int | t4_rx_put_bit (t4_rx_state_t *s, int bit) |
| Put a bit of the current document page. | |
| int | t4_rx_put (t4_rx_state_t *s, const uint8_t buf[], size_t len) |
| Put a byte of the current document page. | |
| void | t4_rx_set_y_resolution (t4_rx_state_t *s, int resolution) |
| Set the row-to-row (y) resolution to expect for a received image. | |
| void | t4_rx_set_x_resolution (t4_rx_state_t *s, int resolution) |
| Set the column-to-column (x) resolution to expect for a received image. | |
| void | t4_rx_set_dcs (t4_rx_state_t *s, const char *dcs) |
| Set the DCS information of the fax, for inclusion in the file. | |
| void | t4_rx_set_sub_address (t4_rx_state_t *s, const char *sub_address) |
| Set the sub-address of the fax, for inclusion in the file. | |
| void | t4_rx_set_far_ident (t4_rx_state_t *s, const char *ident) |
| Set the identity of the remote machine, for inclusion in the file. | |
| void | t4_rx_set_vendor (t4_rx_state_t *s, const char *vendor) |
| Set the vendor of the remote machine, for inclusion in the file. | |
| void | t4_rx_set_model (t4_rx_state_t *s, const char *model) |
| Set the model of the remote machine, for inclusion in the file. | |
| int | t4_rx_set_rx_encoding (t4_rx_state_t *s, int encoding) |
| Set the encoding for the received data. | |
| void | t4_rx_set_image_width (t4_rx_state_t *s, int width) |
| Set the expected width of the received image, in pixel columns. | |
| int | t4_rx_set_row_write_handler (t4_rx_state_t *s, t4_row_write_handler_t handler, void *user_data) |
| Set the row write handler for a T.4 receive context. | |
| void | t4_rx_get_transfer_statistics (t4_rx_state_t *s, t4_stats_t *t) |
| Get the current transfer statistics. | |
| int | t4_rx_start_page (t4_rx_state_t *s) |
| Prepare to receive the next page of the current document. | |
| int | t4_rx_end_page (t4_rx_state_t *s) |
| Complete the reception of a page. | |
| t4_rx_state_t * | t4_rx_init (t4_rx_state_t *s, const char *file, int output_encoding) |
| Prepare for reception of a document. | |
| int | t4_rx_release (t4_rx_state_t *s) |
| End reception of a document. Tidy up and close the file. This should be used to end T.4 reception started with t4_rx_init. | |
| int | t4_rx_free (t4_rx_state_t *s) |
| End reception of a document. Tidy up, close the file and free the context. This should be used to end T.4 reception started with t4_rx_init. | |
| #define CM_PER_INCH 2.54f |
The number of centimetres in one inch
| const char* t4_encoding_to_str | ( | int | encoding | ) |
Get the short text name of an encoding format.
Get the short text name of an encoding format.
| encoding | The encoding type. |
References T4_COMPRESSION_ITU_SYCC_T42, T4_COMPRESSION_ITU_T42, T4_COMPRESSION_ITU_T43, T4_COMPRESSION_ITU_T45, T4_COMPRESSION_ITU_T4_1D, T4_COMPRESSION_ITU_T4_2D, T4_COMPRESSION_ITU_T6, T4_COMPRESSION_ITU_T85, T4_COMPRESSION_ITU_T85_L0, and T4_COMPRESSION_NONE.
Referenced by t4_rx_start_page(), and t4_tx_start_page().
| int t4_rx_end_page | ( | t4_rx_state_t * | s | ) |
Complete the reception of a page.
| s | The T.4 receive context. |
References T4_COMPRESSION_ITU_T42, T4_COMPRESSION_ITU_T43, T4_COMPRESSION_ITU_T4_1D, T4_COMPRESSION_ITU_T4_2D, T4_COMPRESSION_ITU_T6, T4_COMPRESSION_ITU_T85, T4_COMPRESSION_ITU_T85_L0, t4_t6_decode_get_image_length(), t4_t6_decode_put(), t85_decode_get_image_length(), and t85_decode_put().
| int t4_rx_free | ( | t4_rx_state_t * | s | ) |
End reception of a document. Tidy up, close the file and free the context. This should be used to end T.4 reception started with t4_rx_init.
| s | The T.4 receive context. |
References t4_rx_release().
| void t4_rx_get_transfer_statistics | ( | t4_rx_state_t * | s, | |
| t4_stats_t * | t | |||
| ) |
Get the current transfer statistics.
Get the current image transfer statistics.
| s | The T.4 context. | |
| t | A pointer to a statistics structure. |
References T4_COMPRESSION_ITU_T42, T4_COMPRESSION_ITU_T43, T4_COMPRESSION_ITU_T4_1D, T4_COMPRESSION_ITU_T4_2D, T4_COMPRESSION_ITU_T6, T4_COMPRESSION_ITU_T85, T4_COMPRESSION_ITU_T85_L0, t4_t6_decode_get_compressed_image_size(), t4_t6_decode_get_image_length(), t4_t6_decode_get_image_width(), t85_decode_get_compressed_image_size(), t85_decode_get_image_length(), and t85_decode_get_image_width().
Referenced by t30_get_transfer_statistics().
| t4_rx_state_t* t4_rx_init | ( | t4_rx_state_t * | s, | |
| const char * | file, | |||
| int | output_encoding | |||
| ) |
Prepare for reception of a document.
| s | The T.4 context. | |
| file | The name of the file to be received. | |
| output_encoding | The output encoding. |
References span_log().
| int t4_rx_put | ( | t4_rx_state_t * | s, | |
| const uint8_t | buf[], | |||
| size_t | len | |||
| ) |
Put a byte of the current document page.
| s | The T.4 context. | |
| buf | The buffer containing the chunk. | |
| len | The length of the chunk. |
References T4_COMPRESSION_ITU_T42, T4_COMPRESSION_ITU_T43, T4_COMPRESSION_ITU_T4_1D, T4_COMPRESSION_ITU_T4_2D, T4_COMPRESSION_ITU_T6, T4_COMPRESSION_ITU_T85, T4_COMPRESSION_ITU_T85_L0, T4_DECODE_OK, t4_t6_decode_put(), and t85_decode_put().
Referenced by t30_non_ecm_put().
| int t4_rx_put_bit | ( | t4_rx_state_t * | s, | |
| int | bit | |||
| ) |
Put a bit of the current document page.
| s | The T.4 context. | |
| bit | The data bit. |
References t4_t6_decode_put_bit().
| int t4_rx_release | ( | t4_rx_state_t * | s | ) |
End reception of a document. Tidy up and close the file. This should be used to end T.4 reception started with t4_rx_init.
| s | The T.4 receive context. |
References T4_COMPRESSION_ITU_T42, T4_COMPRESSION_ITU_T43, T4_COMPRESSION_ITU_T4_1D, T4_COMPRESSION_ITU_T4_2D, T4_COMPRESSION_ITU_T6, T4_COMPRESSION_ITU_T85, and T4_COMPRESSION_ITU_T85_L0.
Referenced by t4_rx_free().
| void t4_rx_set_dcs | ( | t4_rx_state_t * | s, | |
| const char * | dcs | |||
| ) |
Set the DCS information of the fax, for inclusion in the file.
| s | The T.4 context. | |
| dcs | The DCS information, formatted as an ASCII string. |
| void t4_rx_set_far_ident | ( | t4_rx_state_t * | s, | |
| const char * | ident | |||
| ) |
Set the identity of the remote machine, for inclusion in the file.
| s | The T.4 context. | |
| ident | The identity string. |
| void t4_rx_set_image_width | ( | t4_rx_state_t * | s, | |
| int | width | |||
| ) |
Set the expected width of the received image, in pixel columns.
| s | The T.4 context. | |
| width | The number of pixels across the image. |
| void t4_rx_set_model | ( | t4_rx_state_t * | s, | |
| const char * | model | |||
| ) |
Set the model of the remote machine, for inclusion in the file.
| s | The T.4 context. | |
| model | The model string, or NULL. |
| int t4_rx_set_row_write_handler | ( | t4_rx_state_t * | s, | |
| t4_row_write_handler_t | handler, | |||
| void * | user_data | |||
| ) |
Set the row write handler for a T.4 receive context.
| s | The T.4 receive context. | |
| handler | A pointer to the handler routine. | |
| user_data | An opaque pointer passed to the handler routine. |
References T4_COMPRESSION_ITU_T42, T4_COMPRESSION_ITU_T43, T4_COMPRESSION_ITU_T4_1D, T4_COMPRESSION_ITU_T4_2D, T4_COMPRESSION_ITU_T6, T4_COMPRESSION_ITU_T85, T4_COMPRESSION_ITU_T85_L0, t4_t6_decode_set_row_write_handler(), and t85_decode_set_row_write_handler().
| int t4_rx_set_rx_encoding | ( | t4_rx_state_t * | s, | |
| int | encoding | |||
| ) |
Set the encoding for the received data.
| s | The T.4 context. | |
| encoding | The encoding. |
References T4_COMPRESSION_ITU_T42, T4_COMPRESSION_ITU_T43, T4_COMPRESSION_ITU_T4_1D, T4_COMPRESSION_ITU_T4_2D, T4_COMPRESSION_ITU_T6, T4_COMPRESSION_ITU_T85, T4_COMPRESSION_ITU_T85_L0, t4_t6_decode_init(), t4_t6_decode_set_encoding(), t85_decode_init(), and t85_decode_set_image_size_constraints().
| void t4_rx_set_sub_address | ( | t4_rx_state_t * | s, | |
| const char * | sub_address | |||
| ) |
Set the sub-address of the fax, for inclusion in the file.
| s | The T.4 context. | |
| sub_address | The sub-address string. |
| void t4_rx_set_vendor | ( | t4_rx_state_t * | s, | |
| const char * | vendor | |||
| ) |
Set the vendor of the remote machine, for inclusion in the file.
| s | The T.4 context. | |
| vendor | The vendor string, or NULL. |
| void t4_rx_set_x_resolution | ( | t4_rx_state_t * | s, | |
| int | resolution | |||
| ) |
Set the column-to-column (x) resolution to expect for a received image.
| s | The T.4 context. | |
| resolution | The resolution, in pixels per metre. |
| void t4_rx_set_y_resolution | ( | t4_rx_state_t * | s, | |
| int | resolution | |||
| ) |
Set the row-to-row (y) resolution to expect for a received image.
| s | The T.4 context. | |
| resolution | The resolution, in pixels per metre. |
| int t4_rx_start_page | ( | t4_rx_state_t * | s | ) |
Prepare to receive the next page of the current document.
| s | The T.4 context. |
References span_log(), T4_COMPRESSION_ITU_T42, T4_COMPRESSION_ITU_T43, T4_COMPRESSION_ITU_T4_1D, T4_COMPRESSION_ITU_T4_2D, T4_COMPRESSION_ITU_T6, T4_COMPRESSION_ITU_T85, T4_COMPRESSION_ITU_T85_L0, and t4_encoding_to_str().
1.6.1