Go to the source code of this file.
Classes | |
| struct | t38_non_ecm_buffer_state_t |
| A flow controlled non-ECM image data buffer, for buffering T.38 to analogue modem data. More... | |
Defines | |
| #define | _SPANDSP_T38_NON_ECM_BUFFER_H_ |
| #define | T38_NON_ECM_TX_BUF_LEN 16384 |
Functions | |
| t38_non_ecm_buffer_state_t * | t38_non_ecm_buffer_init (t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits) |
| Initialise a T.38 rate adapting non-ECM buffer context. | |
| void | t38_non_ecm_buffer_set_mode (t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits) |
| Set the mode of a T.38 rate adapting non-ECM buffer context. | |
| void | t38_non_ecm_buffer_inject (t38_non_ecm_buffer_state_t *s, const uint8_t *buf, int len) |
| Inject data to T.38 rate adapting non-ECM buffer context. | |
| void | t38_non_ecm_buffer_push (t38_non_ecm_buffer_state_t *s) |
| Inform a T.38 rate adapting non-ECM buffer context that the incoming data has finished, and the contents of the buffer should be played out as quickly as possible. | |
| void | t38_non_ecm_buffer_report_input_status (t38_non_ecm_buffer_state_t *s, logging_state_t *logging) |
| Report the input status of a T.38 rate adapting non-ECM buffer context to the specified logging context. | |
| void | t38_non_ecm_buffer_report_output_status (t38_non_ecm_buffer_state_t *s, logging_state_t *logging) |
| Report the output status of a T.38 rate adapting non-ECM buffer context to the specified logging context. | |
| int | t38_non_ecm_buffer_get_bit (void *user_data) |
| Get the next bit of data from a T.38 rate adapting non-ECM buffer context. | |
| #define T38_NON_ECM_TX_BUF_LEN 16384 |
The buffer length much be a power of two. The chosen length is big enough for over 9s of data at the V.17 14,400bps rate.
Referenced by t38_non_ecm_buffer_get_bit(), and t38_non_ecm_buffer_inject().
| int t38_non_ecm_buffer_get_bit | ( | void * | user_data | ) |
Get the next bit of data from a T.38 rate adapting non-ECM buffer context.
| user_data | The buffer context, cast to a void pointer. |
References t38_non_ecm_buffer_state_t::bit_no, t38_non_ecm_buffer_state_t::data, t38_non_ecm_buffer_state_t::data_finished, t38_non_ecm_buffer_state_t::flow_control_fill_octet, t38_non_ecm_buffer_state_t::flow_control_fill_octets, t38_non_ecm_buffer_state_t::latest_eol_ptr, t38_non_ecm_buffer_state_t::octet, t38_non_ecm_buffer_state_t::out_octets, t38_non_ecm_buffer_state_t::out_ptr, SIG_STATUS_END_OF_DATA, and T38_NON_ECM_TX_BUF_LEN.
| t38_non_ecm_buffer_state_t* t38_non_ecm_buffer_init | ( | t38_non_ecm_buffer_state_t * | s, | |
| int | mode, | |||
| int | min_row_bits | |||
| ) |
Initialise a T.38 rate adapting non-ECM buffer context.
| s | The buffer context. | |
| mode | TRUE for image data mode, or FALSE for TCF mode. | |
| bits | The minimum number of bits per FAX image row. |
References t38_non_ecm_buffer_state_t::at_initial_all_ones, t38_non_ecm_buffer_state_t::bit_stream, t38_non_ecm_buffer_state_t::flow_control_fill_octet, t38_non_ecm_buffer_state_t::image_data_mode, t38_non_ecm_buffer_state_t::min_row_bits, and t38_non_ecm_buffer_state_t::octet.
Referenced by t38_gateway_init().
| void t38_non_ecm_buffer_inject | ( | t38_non_ecm_buffer_state_t * | s, | |
| const uint8_t * | buf, | |||
| int | len | |||
| ) |
Inject data to T.38 rate adapting non-ECM buffer context.
| s | The buffer context. | |
| buf | The data buffer to be injected. | |
| len | The length of the data to be injected. |
References t38_non_ecm_buffer_state_t::at_initial_all_ones, t38_non_ecm_buffer_state_t::bit_stream, t38_non_ecm_buffer_state_t::data, t38_non_ecm_buffer_state_t::flow_control_fill_octet, t38_non_ecm_buffer_state_t::image_data_mode, t38_non_ecm_buffer_state_t::in_octets, t38_non_ecm_buffer_state_t::in_ptr, t38_non_ecm_buffer_state_t::in_rows, t38_non_ecm_buffer_state_t::latest_eol_ptr, t38_non_ecm_buffer_state_t::min_row_bits, t38_non_ecm_buffer_state_t::min_row_bits_fill_octets, t38_non_ecm_buffer_state_t::row_bits, and T38_NON_ECM_TX_BUF_LEN.
| void t38_non_ecm_buffer_push | ( | t38_non_ecm_buffer_state_t * | s | ) |
Inform a T.38 rate adapting non-ECM buffer context that the incoming data has finished, and the contents of the buffer should be played out as quickly as possible.
| s | The buffer context. |
References t38_non_ecm_buffer_state_t::data_finished, t38_non_ecm_buffer_state_t::in_ptr, and t38_non_ecm_buffer_state_t::latest_eol_ptr.
| void t38_non_ecm_buffer_report_input_status | ( | t38_non_ecm_buffer_state_t * | s, | |
| logging_state_t * | logging | |||
| ) |
Report the input status of a T.38 rate adapting non-ECM buffer context to the specified logging context.
| s | The buffer context. | |
| logging | The logging context. |
References t38_non_ecm_buffer_state_t::in_octets, t38_non_ecm_buffer_state_t::in_rows, t38_non_ecm_buffer_state_t::min_row_bits_fill_octets, and span_log().
| void t38_non_ecm_buffer_report_output_status | ( | t38_non_ecm_buffer_state_t * | s, | |
| logging_state_t * | logging | |||
| ) |
Report the output status of a T.38 rate adapting non-ECM buffer context to the specified logging context.
| s | The buffer context. | |
| logging | The logging context. |
References t38_non_ecm_buffer_state_t::flow_control_fill_octets, t38_non_ecm_buffer_state_t::out_octets, t38_non_ecm_buffer_state_t::out_rows, and span_log().
| void t38_non_ecm_buffer_set_mode | ( | t38_non_ecm_buffer_state_t * | s, | |
| int | mode, | |||
| int | min_row_bits | |||
| ) |
Set the mode of a T.38 rate adapting non-ECM buffer context.
| s | The buffer context. | |
| mode | TRUE for image data mode, or FALSE for TCF mode. | |
| bits | The minimum number of bits per FAX image row. |
References t38_non_ecm_buffer_state_t::image_data_mode, and t38_non_ecm_buffer_state_t::min_row_bits.
1.5.6