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) int x_resolution
The horizontal resolution of the exchanged page in pixels per metre.
Definition: t4_rx.h:386
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_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
int image_width
The number of horizontal pixels in the file page.
Definition: t4_rx.h:380
const char * t4_compression_to_str(int compression)
Get the short text name of an encoding format.
Definition: t4_rx.c:98
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
int pages_transferred
The number of pages transferred so far.
Definition: t4_rx.h:366
int line_image_size
The size of the image on the line, in bytes.
Definition: t4_rx.h:396
const char * t4_image_resolution_to_str(int resolution_code)
Get the short text name of an image resolution.
Definition: t4_rx.c:161
int type
The type of image in the exchanged page.
Definition: t4_rx.h:384
int image_x_resolution
The horizontal resolution of the file page in pixels per metre.
Definition: t4_rx.h:376
int compression
The type of compression used between the FAX machines.
Definition: t4_rx.h:394
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_get_transfer_statistics(t4_rx_state_t *s, t4_stats_t *t)
Get the current transfer statistics.
Definition: t4_rx.c:1124
int length
The number of vertical pixels in the exchanged page.
Definition: t4_rx.h:392
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
t4_image_y_resolution_t
Definition: t4_rx.h:135
int t4_rx_end_page(t4_rx_state_t *s)
Complete the reception of a page.
Definition: t4_rx.c:1267
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
int image_y_resolution
The vertical resolution of the file page in pixels per metre.
Definition: t4_rx.h:378
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
Definition: private/t4_rx.h:105
int bad_rows
The number of bad pixel rows in the most recent page.
Definition: t4_rx.h:370
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
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
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_rx_start_page(t4_rx_state_t *s)
Prepare to receive the next page of the current document.
Definition: t4_rx.c:1197
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_width_t
Definition: t4_rx.h:226
t4_image_compression_t
Definition: t4_rx.h:49
t4_decoder_status_t
Definition: t4_rx.h:338
int y_resolution
The vertical resolution of the exchanged page in pixels per metre.
Definition: t4_rx.h:388
t4_image_length_t
Definition: t4_rx.h:280
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
const char * t4_image_type_to_str(int type)
Get the short text name of an image format.
Definition: t4_rx.c:134
Definition: private/logging.h:33
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
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
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 pages_in_file
The number of pages in the file (<0 if unknown).
Definition: t4_rx.h:368
int image_length
The number of vertical pixels in the file page.
Definition: t4_rx.h:382
t4_image_x_resolution_t
Definition: t4_rx.h:121
int image_type
The type of image in the file page.
Definition: t4_rx.h:374
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 longest_bad_row_run
The largest number of bad pixel rows in a block in the most recent page.
Definition: t4_rx.h:372
t4_image_types_t
Definition: t4_rx.h:98
int(* t4_row_write_handler_t)(void *user_data, const uint8_t buf[], size_t len)
Definition: t4_rx.h:46