t38_non_ecm_buffer.h File Reference

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_tt38_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.


Detailed Description


Define Documentation

#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().


Function Documentation

int t38_non_ecm_buffer_get_bit ( void *  user_data  ) 

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.

Parameters:
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.
Returns:
A pointer to the buffer context, or NULL if there was a problem.

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 
)

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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.


Generated on Tue Oct 7 20:25:52 2008 for spandsp by  doxygen 1.5.6