t38_non_ecm_buffer.h File Reference

Go to the source code of this file.

Defines

#define _SPANDSP_T38_NON_ECM_BUFFER_H_
#define T38_NON_ECM_TX_BUF_LEN   16384

Typedefs

typedef t38_non_ecm_buffer_state_s t38_non_ecm_buffer_state_t
 A flow controlled non-ECM image data buffer, for buffering T.38 to analogue modem data.

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.
int t38_non_ecm_buffer_release (t38_non_ecm_buffer_state_t *s)
int t38_non_ecm_buffer_free (t38_non_ecm_buffer_state_t *s)
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.
 SPAN_DECLARE_NONSTD (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.


Function Documentation

SPAN_DECLARE_NONSTD ( int   ) 

Get the next bit of data from a T.38 rate adapting non-ECM buffer context.

Generate a block of V.8 audio samples.

Parameters:
s The V.8 context.
amp The audio sample buffer.
max_len The number of samples to be generated.
Returns:
The number of samples actually generated.

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.

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.

Parameters:
s The buffer context.
buf The data buffer to be injected.
len The length of the data to be injected.

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.

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.

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.

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.


Generated on 14 Jun 2014 for spandsp by  doxygen 1.4.7