28#if !defined(_SPANDSP_T4_RX_H_)
29#define _SPANDSP_T4_RX_H_
101 T4_IMAGE_TYPE_BILEVEL = 0,
103 T4_IMAGE_TYPE_COLOUR_BILEVEL = 1,
105 T4_IMAGE_TYPE_4COLOUR_BILEVEL = 2,
107 T4_IMAGE_TYPE_GRAY_8BIT = 3,
109 T4_IMAGE_TYPE_GRAY_12BIT = 4,
111 T4_IMAGE_TYPE_COLOUR_8BIT = 5,
113 T4_IMAGE_TYPE_4COLOUR_8BIT = 6,
115 T4_IMAGE_TYPE_COLOUR_12BIT = 7,
117 T4_IMAGE_TYPE_4COLOUR_12BIT = 8
123 T4_X_RESOLUTION_100 = 3937,
124 T4_X_RESOLUTION_R4 = 4020,
125 T4_X_RESOLUTION_200 = 7874,
126 T4_X_RESOLUTION_R8 = 8040,
127 T4_X_RESOLUTION_300 = 11811,
128 T4_X_RESOLUTION_400 = 15748,
129 T4_X_RESOLUTION_R16 = 16080,
130 T4_X_RESOLUTION_600 = 23622,
131 T4_X_RESOLUTION_1200 = 47244
137 T4_Y_RESOLUTION_STANDARD = 3850,
138 T4_Y_RESOLUTION_100 = 3937,
139 T4_Y_RESOLUTION_FINE = 7700,
140 T4_Y_RESOLUTION_200 = 7874,
141 T4_Y_RESOLUTION_300 = 11811,
142 T4_Y_RESOLUTION_SUPERFINE = 15400,
143 T4_Y_RESOLUTION_400 = 15748,
144 T4_Y_RESOLUTION_600 = 23622,
145 T4_Y_RESOLUTION_800 = 31496,
146 T4_Y_RESOLUTION_1200 = 47244
228 T4_WIDTH_100_A4 = 864,
229 T4_WIDTH_100_B4 = 1024,
230 T4_WIDTH_100_A3 = 1216,
231 T4_WIDTH_200_A4 = 1728,
232 T4_WIDTH_200_B4 = 2048,
233 T4_WIDTH_200_A3 = 2432,
234 T4_WIDTH_300_A4 = 2592,
235 T4_WIDTH_300_B4 = 3072,
236 T4_WIDTH_300_A3 = 3648,
237 T4_WIDTH_400_A4 = 3456,
238 T4_WIDTH_400_B4 = 4096,
239 T4_WIDTH_400_A3 = 4864,
240 T4_WIDTH_600_A4 = 5184,
241 T4_WIDTH_600_B4 = 6144,
242 T4_WIDTH_600_A3 = 7296,
243 T4_WIDTH_1200_A4 = 10368,
244 T4_WIDTH_1200_B4 = 12288,
245 T4_WIDTH_1200_A3 = 14592
248#define T4_WIDTH_R4_A4 T4_WIDTH_100_A4
249#define T4_WIDTH_R4_B4 T4_WIDTH_100_B4
250#define T4_WIDTH_R4_A3 T4_WIDTH_100_A3
252#define T4_WIDTH_R8_A4 T4_WIDTH_200_A4
253#define T4_WIDTH_R8_B4 T4_WIDTH_200_B4
254#define T4_WIDTH_R8_A3 T4_WIDTH_200_A3
256#define T4_WIDTH_R16_A4 T4_WIDTH_400_A4
257#define T4_WIDTH_R16_B4 T4_WIDTH_400_B4
258#define T4_WIDTH_R16_A3 T4_WIDTH_400_A3
283 T4_LENGTH_STANDARD_A4 = 1143,
284 T4_LENGTH_FINE_A4 = 2286,
285 T4_LENGTH_300_A4 = 4665,
286 T4_LENGTH_SUPERFINE_A4 = 4573,
287 T4_LENGTH_600_A4 = 6998,
288 T4_LENGTH_800_A4 = 9330,
289 T4_LENGTH_1200_A4 = 13996,
291 T4_LENGTH_STANDARD_B4 = 1359,
292 T4_LENGTH_FINE_B4 = 2718,
293 T4_LENGTH_300_B4 = 4169,
294 T4_LENGTH_SUPERFINE_B4 = 5436,
295 T4_LENGTH_600_B4 = 8338,
296 T4_LENGTH_800_B4 = 11118,
297 T4_LENGTH_1200_B4 = 16677,
299 T4_LENGTH_STANDARD_A3 = 1617,
300 T4_LENGTH_FINE_A3 = 3234,
301 T4_LENGTH_300_A3 = 4960,
302 T4_LENGTH_SUPERFINE_A3 = 6468,
303 T4_LENGTH_600_A3 = 9921,
304 T4_LENGTH_800_A3 = 13228,
305 T4_LENGTH_1200_A3 = 19842,
307 T4_LENGTH_STANDARD_US_LETTER = 1075,
308 T4_LENGTH_FINE_US_LETTER = 2151,
309 T4_LENGTH_300_US_LETTER = 3300,
310 T4_LENGTH_SUPERFINE_US_LETTER = 4302,
311 T4_LENGTH_600_US_LETTER = 6700,
312 T4_LENGTH_800_US_LETTER = 8800,
313 T4_LENGTH_1200_US_LETTER = 13200,
315 T4_LENGTH_STANDARD_US_LEGAL = 1369,
316 T4_LENGTH_FINE_US_LEGAL = 2738,
317 T4_LENGTH_300_US_LEGAL = 4200,
318 T4_LENGTH_SUPERFINE_US_LEGAL = 5476,
319 T4_LENGTH_600_US_LEGAL = 8400,
320 T4_LENGTH_800_US_LEGAL = 11200,
321 T4_LENGTH_1200_US_LEGAL = 16800
326 T4_SUPPORT_WIDTH_215MM = 0x01,
327 T4_SUPPORT_WIDTH_255MM = 0x02,
328 T4_SUPPORT_WIDTH_303MM = 0x04,
330 T4_SUPPORT_LENGTH_UNLIMITED = 0x10000,
331 T4_SUPPORT_LENGTH_A4 = 0x20000,
332 T4_SUPPORT_LENGTH_B4 = 0x40000,
333 T4_SUPPORT_LENGTH_US_LETTER = 0x80000,
334 T4_SUPPORT_LENGTH_US_LEGAL = 0x100000
399#if defined(__cplusplus)
529#if defined(__cplusplus)
struct logging_state_s logging_state_t
Definition logging.h:72
Definition private/t4_rx.h:106
int pages_transferred
The number of pages transferred so far.
Definition t4_rx.h:366
int type
The type of image in the exchanged page.
Definition t4_rx.h:384
int compression
The type of compression used between the FAX machines.
Definition t4_rx.h:394
int image_y_resolution
The vertical resolution of the file page in pixels per metre.
Definition t4_rx.h:378
int length
The number of vertical pixels in the exchanged page.
Definition t4_rx.h:392
int pages_in_file
The number of pages in the file (<0 if unknown).
Definition t4_rx.h:368
int y_resolution
The vertical resolution of the exchanged page in pixels per metre.
Definition t4_rx.h:388
int bad_rows
The number of bad pixel rows in the most recent page.
Definition t4_rx.h:370
int image_type
The type of image in the file page.
Definition t4_rx.h:374
int image_width
The number of horizontal pixels in the file page.
Definition t4_rx.h:380
int image_x_resolution
The horizontal resolution of the file page in pixels per metre.
Definition t4_rx.h:376
int x_resolution
The horizontal resolution of the exchanged page in pixels per metre.
Definition t4_rx.h:386
int image_length
The number of vertical pixels in the file page.
Definition t4_rx.h:382
int longest_bad_row_run
The largest number of bad pixel rows in a block in the most recent page.
Definition t4_rx.h:372
int line_image_size
The size of the image on the line, in bytes.
Definition t4_rx.h:396
int width
The number of horizontal pixels in the exchanged page.
Definition t4_rx.h:390
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.
Definition t4_rx.c:847
t4_image_compression_t
Definition t4_rx.h:50
@ T4_COMPRESSION_T4_1D
Definition t4_rx.h:54
@ T4_COMPRESSION_GRAY_TO_BILEVEL
Definition t4_rx.h:90
@ T4_COMPRESSION_T85
Definition t4_rx.h:60
@ T4_COMPRESSION_T42_T81
Definition t4_rx.h:68
@ T4_COMPRESSION_COLOUR
Definition t4_rx.h:84
@ T4_COMPRESSION_GRAYSCALE
Definition t4_rx.h:82
@ T4_COMPRESSION_NONE
Definition t4_rx.h:52
@ T4_COMPRESSION_JPEG
Definition t4_rx.h:78
@ T4_COMPRESSION_12BIT
Definition t4_rx.h:86
@ T4_COMPRESSION_NO_SUBSAMPLING
Definition t4_rx.h:80
@ T4_COMPRESSION_T85_L0
Definition t4_rx.h:62
@ T4_COMPRESSION_T88
Definition t4_rx.h:72
@ T4_COMPRESSION_SYCC_T81
Definition t4_rx.h:70
@ T4_COMPRESSION_COLOUR_TO_BILEVEL
Definition t4_rx.h:92
@ T4_COMPRESSION_RESCALING
Definition t4_rx.h:94
@ T4_COMPRESSION_T45
Definition t4_rx.h:66
@ T4_COMPRESSION_COLOUR_TO_GRAY
Definition t4_rx.h:88
@ T4_COMPRESSION_T6
Definition t4_rx.h:58
@ T4_COMPRESSION_T4_2D
Definition t4_rx.h:56
@ T4_COMPRESSION_T43
Definition t4_rx.h:64
@ T4_COMPRESSION_UNCOMPRESSED
Definition t4_rx.h:75
t4_rx_state_t * t4_rx_init(t4_rx_state_t *s, const char *file, int supported_output_compressions)
Prepare for reception of a document.
Definition t4_rx.c:1332
int t4_rx_set_rx_encoding(t4_rx_state_t *s, int encoding)
Set the encoding for the received data.
Definition t4_rx.c:943
int t4_rx_start_page(t4_rx_state_t *s)
Prepare to receive the next page of the current document.
Definition t4_rx.c:1197
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.
Definition t4_rx.c:1097
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.
Definition t4_rx.c:853
t4_image_x_resolution_t
Definition t4_rx.h:122
t4_image_width_t
Definition t4_rx.h:227
t4_image_types_t
Definition t4_rx.h:99
int t4_rx_put(t4_rx_state_t *s, const uint8_t buf[], size_t len)
Put a byte of the current document page.
Definition t4_rx.c:818
@ T4_RESOLUTION_R8_FINE
Definition t4_rx.h:156
@ T4_RESOLUTION_400_400
Definition t4_rx.h:175
@ T4_RESOLUTION_300_600
Definition t4_rx.h:173
@ T4_RESOLUTION_200_400
Definition t4_rx.h:169
@ T4_RESOLUTION_1200_1200
Definition t4_rx.h:183
@ T4_RESOLUTION_100_100
Definition t4_rx.h:163
@ T4_RESOLUTION_R16_SUPERFINE
Definition t4_rx.h:160
@ T4_RESOLUTION_200_200
Definition t4_rx.h:167
@ T4_RESOLUTION_600_1200
Definition t4_rx.h:181
@ T4_RESOLUTION_R8_SUPERFINE
Definition t4_rx.h:158
@ T4_RESOLUTION_600_600
Definition t4_rx.h:179
@ T4_RESOLUTION_R8_STANDARD
Definition t4_rx.h:154
@ T4_RESOLUTION_200_100
Definition t4_rx.h:165
@ T4_RESOLUTION_400_800
Definition t4_rx.h:177
@ T4_RESOLUTION_300_300
Definition t4_rx.h:171
t4_decoder_status_t
Definition t4_rx.h:339
@ T4_DECODE_NOMEM
Definition t4_rx.h:349
@ T4_DECODE_MORE_DATA
Definition t4_rx.h:341
@ T4_DECODE_OK
Definition t4_rx.h:343
@ T4_DECODE_INVALID_DATA
Definition t4_rx.h:351
@ T4_DECODE_ABORTED
Definition t4_rx.h:347
@ T4_DECODE_INTERRUPT
Definition t4_rx.h:345
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.
Definition t4_rx.c:835
logging_state_t * t4_rx_get_logging_state(t4_rx_state_t *s)
Get the logging context associated with a T.4 receive context.
Definition t4_rx.c:1326
const char * t4_compression_to_str(int compression)
Get the short text name of an encoding format.
Definition t4_rx.c:98
struct t4_rx_state_s t4_rx_state_t
Definition t4_rx.h:358
const char * t4_image_resolution_to_str(int resolution_code)
Get the short text name of an image resolution.
Definition t4_rx.c:161
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.
Definition t4_rx.c:865
const char * t4_image_type_to_str(int type)
Get the short text name of an image format.
Definition t4_rx.c:134
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...
Definition t4_rx.c:1399
t4_image_length_t
Definition t4_rx.h:281
void t4_rx_set_image_width(t4_rx_state_t *s, int width)
Set the expected width of the received image, in pixel columns.
Definition t4_rx.c:1091
void t4_rx_get_transfer_statistics(t4_rx_state_t *s, t4_stats_t *t)
Get the current transfer statistics.
Definition t4_rx.c:1124
t4_image_y_resolution_t
Definition t4_rx.h:136
int t4_rx_put_bit(t4_rx_state_t *s, int bit)
Put a bit of the current document page.
Definition t4_rx.c:763
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....
Definition t4_rx.c:1390
int(* t4_row_write_handler_t)(void *user_data, const uint8_t buf[], size_t len)
Definition t4_rx.h:46
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.
Definition t4_rx.c:859
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.
Definition t4_rx.c:841
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.
Definition t4_rx.c:829
int t4_rx_end_page(t4_rx_state_t *s)
Complete the reception of a page.
Definition t4_rx.c:1267