spandsp
1.99.0
|
Go to the source code of this file.
Typedefs | |
typedef struct t85_encode_state_s | t85_encode_state_t |
typedef struct t85_decode_state_s | t85_decode_state_t |
Enumerations | |
enum | { T85_TPBON = 0x08, T85_VLENGTH = 0x20, T85_LRLTWO = 0x40 } |
Functions | |
bool | t85_analyse_header (uint32_t *width, uint32_t *length, const uint8_t data[], size_t len) |
int | t85_encode_image_complete (t85_encode_state_t *s) |
Check if we are at the end of the current document page. More... | |
int | t85_encode_get (t85_encode_state_t *s, uint8_t buf[], size_t max_len) |
Get the next chunk of the current document page. The document will be padded for the current minimum scan line time. More... | |
int | t85_encode_set_row_read_handler (t85_encode_state_t *s, t4_row_read_handler_t handler, void *user_data) |
Set the row read handler for a T.85 encode context. More... | |
logging_state_t * | t85_encode_get_logging_state (t85_encode_state_t *s) |
Get the logging context associated with a T.85 encode context. More... | |
void | t85_encode_set_options (t85_encode_state_t *s, uint32_t l0, int mx, int options) |
Set the T.85 options. More... | |
void | t85_encode_comment (t85_encode_state_t *s, const uint8_t comment[], size_t len) |
Insert a comment in the encoded file. More... | |
int | t85_encode_set_image_width (t85_encode_state_t *s, uint32_t image_width) |
Set the image width. More... | |
int | t85_encode_set_image_length (t85_encode_state_t *s, uint32_t image_length) |
Alter the length of a T.85 encoded image. The new length cannot be greater than the originally specified length. If the new length is less than the current length it will be silently adjusted to the current length. Therefore, adjust the length to 1 will make the currently encoded length the final length. More... | |
uint32_t | t85_encode_get_image_width (t85_encode_state_t *s) |
Get the width of the image. More... | |
uint32_t | t85_encode_get_image_length (t85_encode_state_t *s) |
Get the length of the image. More... | |
int | t85_encode_get_compressed_image_size (t85_encode_state_t *s) |
Get the size of the compressed image, in bits. More... | |
void | t85_encode_abort (t85_encode_state_t *s) |
Stop image encoding prematurely. More... | |
int | t85_encode_restart (t85_encode_state_t *s, uint32_t image_width, uint32_t image_length) |
Restart a T.85 encode context. More... | |
t85_encode_state_t * | t85_encode_init (t85_encode_state_t *s, uint32_t image_width, uint32_t image_length, t4_row_read_handler_t handler, void *user_data) |
Prepare to encode an image in T.85 format. More... | |
int | t85_encode_release (t85_encode_state_t *s) |
Release a T.85 encode context. More... | |
int | t85_encode_free (t85_encode_state_t *s) |
Free a T.85 encode context. More... | |
logging_state_t * | t85_decode_get_logging_state (t85_decode_state_t *s) |
Get the logging context associated with a T.85 decode context. More... | |
uint32_t | t85_decode_get_image_width (t85_decode_state_t *s) |
Get the width of the image. More... | |
uint32_t | t85_decode_get_image_length (t85_decode_state_t *s) |
Get the length of the image. More... | |
int | t85_decode_get_compressed_image_size (t85_decode_state_t *s) |
Get the size of the compressed image, in bits. More... | |
int | t85_decode_new_plane (t85_decode_state_t *s) |
int | t85_decode_set_row_write_handler (t85_decode_state_t *s, t4_row_write_handler_t handler, void *user_data) |
Set the row handler routine. More... | |
int | t85_decode_set_comment_handler (t85_decode_state_t *s, uint32_t max_comment_len, t4_row_write_handler_t handler, void *user_data) |
Set the comment handler routine. More... | |
int | t85_decode_set_image_size_constraints (t85_decode_state_t *s, uint32_t max_xd, uint32_t max_yd) |
Set constraints on the received image size. More... | |
void | t85_decode_rx_status (t85_decode_state_t *s, int status) |
Inform the T.85 decode engine of a status change in the signal source (end of tx, rx signal change, etc.). More... | |
int | t85_decode_put (t85_decode_state_t *s, const uint8_t data[], size_t len) |
Decode a chunk of T.85 data. More... | |
int | t85_decode_restart (t85_decode_state_t *s) |
t85_decode_state_t * | t85_decode_init (t85_decode_state_t *s, t4_row_write_handler_t handler, void *user_data) |
Prepare to decode an image in T.85 format. More... | |
int | t85_decode_release (t85_decode_state_t *s) |
Release a T.85 decode context. More... | |
int | t85_decode_free (t85_decode_state_t *s) |
Free a T.85 decode context. More... | |
typedef struct t85_decode_state_s t85_decode_state_t |
State of a working instance of the T.85 decoder
typedef struct t85_encode_state_s t85_encode_state_t |
State of a working instance of the T.85 encoder
anonymous enum |
int t85_decode_free | ( | t85_decode_state_t * | s | ) |
Free a T.85 decode context.
s | The T.85 decode context. |
References t85_decode_release().
Referenced by t43_decode_free().
int t85_decode_get_compressed_image_size | ( | t85_decode_state_t * | s | ) |
Get the size of the compressed image, in bits.
s | The T.85 context. |
References t85_decode_state_s::compressed_image_size.
uint32_t t85_decode_get_image_length | ( | t85_decode_state_t * | s | ) |
Get the length of the image.
s | The T.85 context. |
References t85_decode_state_s::yd.
Referenced by t43_decode_get_image_length().
uint32_t t85_decode_get_image_width | ( | t85_decode_state_t * | s | ) |
Get the width of the image.
s | The T.85 context. |
References t85_decode_state_s::xd.
Referenced by t43_decode_get_image_width().
logging_state_t* t85_decode_get_logging_state | ( | t85_decode_state_t * | s | ) |
Get the logging context associated with a T.85 decode context.
Get the logging context associated with a T.85 decode context.
s | The T.85 decode context. |
References t85_decode_state_s::logging.
t85_decode_state_t* t85_decode_init | ( | t85_decode_state_t * | s, |
t4_row_write_handler_t | handler, | ||
void * | user_data | ||
) |
Prepare to decode an image in T.85 format.
s | The T.85 context. |
handler | A callback routine to handle decoded image rows. |
user_data | An opaque pointer passed to handler. |
int t85_decode_put | ( | t85_decode_state_t * | s, |
const uint8_t | data[], | ||
size_t | len | ||
) |
Decode a chunk of T.85 data.
s | The T.85 context. |
data | The data to be decoded. |
len | The length of the data to be decoded. |
References t85_decode_state_s::y.
int t85_decode_release | ( | t85_decode_state_t * | s | ) |
Release a T.85 decode context.
s | The T.85 decode context. |
References t85_decode_state_s::row_buf.
Referenced by t43_decode_release(), and t85_decode_free().
void t85_decode_rx_status | ( | t85_decode_state_t * | s, |
int | status | ||
) |
Inform the T.85 decode engine of a status change in the signal source (end of tx, rx signal change, etc.).
After the final BIE byte has been delivered to t85_decode_put_xx(), it may still return T85_MORE_DATA when the T85_VLENGTH option was used, and no NEWLEN marker section has appeared yet. This is because such a BIE is not self-terminating (i.e. there could still be a NEWLEN followed by an SDNORM or SDRST at the very end of the final stripe, which needs to be processed before the final row is output. See ITU-T Recommendation T.85, Appendix I). Therefore, after the last byte has been delivered, call this routine to signal the end of the BIE. This is necessary to allow the routine to finish processing BIEs with option T85_VLENGTH that do not actually contain any NEWLEN marker section.
s | The T.85 context. |
status | The type of status change which occured. |
References t85_decode_state_s::logging, and span_log().
int t85_decode_set_comment_handler | ( | t85_decode_state_t * | s, |
uint32_t | max_comment_len, | ||
t4_row_write_handler_t | handler, | ||
void * | user_data | ||
) |
Set the comment handler routine.
s | The T.85 context. |
max_comment_len | The maximum length of comment to be passed to the handler. |
handler | A callback routine to handle decoded comment. |
user_data | An opaque pointer passed to handler. |
References t85_decode_state_s::comment_handler, t85_decode_state_s::comment_user_data, and t85_decode_state_s::max_comment_len.
Referenced by t43_decode_set_comment_handler().
int t85_decode_set_image_size_constraints | ( | t85_decode_state_t * | s, |
uint32_t | max_xd, | ||
uint32_t | max_yd | ||
) |
Set constraints on the received image size.
A maliciously constructed T.85 image could consume too much memory, and constitute a denial of service attack on the system. This function allows constraints to be applied.
s | The T.85 context. |
max_xd | The maximum permitted width of the full image, in pixels |
max_yd | The maximum permitted height of the full image, in pixels |
References t85_decode_state_s::max_xd, and t85_decode_state_s::max_yd.
int t85_decode_set_row_write_handler | ( | t85_decode_state_t * | s, |
t4_row_write_handler_t | handler, | ||
void * | user_data | ||
) |
Set the row handler routine.
s | The T.85 context. |
handler | A callback routine to handle decoded image rows. |
user_data | An opaque pointer passed to handler. |
References t85_decode_state_s::row_write_handler, and t85_decode_state_s::row_write_user_data.
Referenced by t4_rx_set_row_write_handler().
void t85_encode_abort | ( | t85_encode_state_t * | s | ) |
Stop image encoding prematurely.
s | The T.85 context. |
void t85_encode_comment | ( | t85_encode_state_t * | s, |
const uint8_t | comment[], | ||
size_t | len | ||
) |
Insert a comment in the encoded file.
s | The T.85 context. |
comment | The comment. Note that this is not a C string, and may contain any bytes. |
len | The length of the comment. |
References t85_encode_state_s::comment, t85_decode_state_s::comment, and t85_encode_state_s::comment_len.
int t85_encode_free | ( | t85_encode_state_t * | s | ) |
Free a T.85 encode context.
s | The T.85 encode context. |
References t85_encode_release().
int t85_encode_get | ( | t85_encode_state_t * | s, |
uint8_t | buf[], | ||
size_t | max_len | ||
) |
Get the next chunk of the current document page. The document will be padded for the current minimum scan line time.
s | The T.85 context. |
buf | The buffer into which the chunk is to written. |
max_len | The maximum length of the chunk. |
int t85_encode_get_compressed_image_size | ( | t85_encode_state_t * | s | ) |
Get the size of the compressed image, in bits.
s | The T.85 context. |
References t85_encode_state_s::compressed_image_size.
Referenced by t4_tx_get_transfer_statistics().
uint32_t t85_encode_get_image_length | ( | t85_encode_state_t * | s | ) |
Get the length of the image.
s | The T.85 context. |
References t85_encode_state_s::yd.
Referenced by t4_tx_get_transfer_statistics().
uint32_t t85_encode_get_image_width | ( | t85_encode_state_t * | s | ) |
Get the width of the image.
s | The T.85 context. |
References t85_encode_state_s::xd.
Referenced by t4_tx_get_transfer_statistics().
logging_state_t* t85_encode_get_logging_state | ( | t85_encode_state_t * | s | ) |
Get the logging context associated with a T.85 encode context.
Get the logging context associated with a T.85 encode context.
s | The T.85 encode context. |
References t85_encode_state_s::logging.
int t85_encode_image_complete | ( | t85_encode_state_t * | s | ) |
Check if we are at the end of the current document page.
s | The T.85 context. |
References SIG_STATUS_END_OF_DATA, t85_encode_state_s::y, and t85_encode_state_s::yd.
Referenced by t4_tx_image_complete().
t85_encode_state_t* t85_encode_init | ( | t85_encode_state_t * | s, |
uint32_t | image_width, | ||
uint32_t | image_length, | ||
t4_row_read_handler_t | handler, | ||
void * | user_data | ||
) |
Prepare to encode an image in T.85 format.
s | The T.85 context. |
image_width | The image width, in pixels. |
image_length | The image length, in pixels. |
handler | A callback routine to handle encoded image rows. |
user_data | An opaque pointer passed to handler. |
int t85_encode_release | ( | t85_encode_state_t * | s | ) |
Release a T.85 encode context.
s | The T.85 encode context. |
References t85_encode_state_s::row_buf.
Referenced by t43_encode_free(), t43_encode_release(), and t85_encode_free().
int t85_encode_restart | ( | t85_encode_state_t * | s, |
uint32_t | image_width, | ||
uint32_t | image_length | ||
) |
Restart a T.85 encode context.
s | The T.85 context. |
image_width | The image width, in pixels. |
image_length | The image length, in pixels. |
References t85_decode_state_s::bytes_per_row, t85_encode_state_s::comment, t85_encode_state_s::row_buf, t85_encode_set_image_width(), t85_encode_state_s::xd, and t85_encode_state_s::yd.
int t85_encode_set_image_length | ( | t85_encode_state_t * | s, |
uint32_t | image_length | ||
) |
Alter the length of a T.85 encoded image. The new length cannot be greater than the originally specified length. If the new length is less than the current length it will be silently adjusted to the current length. Therefore, adjust the length to 1 will make the currently encoded length the final length.
s | The T.85 context. |
image_length | The new image length, in pixels. |
References t85_encode_state_s::newlen, t85_encode_state_s::options, and T85_VLENGTH.
int t85_encode_set_image_width | ( | t85_encode_state_t * | s, |
uint32_t | image_width | ||
) |
Set the image width.
s | The T.85 context. |
image_width | The width of the image. |
References t85_decode_state_s::bytes_per_row, t85_encode_state_s::xd, and t85_encode_state_s::y.
Referenced by t85_encode_restart().
void t85_encode_set_options | ( | t85_encode_state_t * | s, |
uint32_t | l0, | ||
int | mx, | ||
int | options | ||
) |
Set the T.85 options.
s | The T.85 context. l0 ??? mx ??? options ???. |
References t85_encode_state_s::l0, t85_decode_state_s::l0, t85_encode_state_s::mx, t85_decode_state_s::mx, t85_encode_state_s::options, T85_LRLTWO, T85_TPBON, T85_VLENGTH, t85_encode_state_s::y, and t85_decode_state_s::yd.
int t85_encode_set_row_read_handler | ( | t85_encode_state_t * | s, |
t4_row_read_handler_t | handler, | ||
void * | user_data | ||
) |
Set the row read handler for a T.85 encode context.
s | The T.85 context. |
handler | A pointer to the handler routine. |
user_data | An opaque pointer passed to the handler routine. |
References t85_encode_state_s::row_read_handler, and t85_encode_state_s::row_read_user_data.