t38_core.c File Reference

#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <time.h>
#include <string.h>
#include <assert.h>
#include <memory.h>
#include <tiffio.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/bit_operations.h"
#include "spandsp/t38_core.h"

Defines

#define ACCEPTABLE_SEQ_NO_OFFSET   2000

Functions

const char * t38_indicator (int indicator)
 Convert the code for an indicator to a short text name.
const char * t38_data_type (int data_type)
 Convert the code for a type of data to a short text name.
const char * t38_field_type (int field_type)
 Convert the code for a type of data field to a short text name.
int t38_core_rx_ifp_packet (t38_core_state_t *s, const uint8_t *buf, int len, uint16_t seq_no)
 Process a received T.38 IFP packet.
int t38_core_send_indicator (t38_core_state_t *s, int indicator, int count)
 Send an indicator packet.
int t38_core_send_data (t38_core_state_t *s, int data_type, int field_type, const uint8_t field[], int field_len, int count)
 Send a data packet.
int t38_core_send_data_multi_field (t38_core_state_t *s, int data_type, const t38_data_field_t field[], int fields, int count)
 Send a data packet.
void t38_set_data_rate_management_method (t38_core_state_t *s, int method)
void t38_set_data_transport_protocol (t38_core_state_t *s, int data_transport_protocol)
void t38_set_fill_bit_removal (t38_core_state_t *s, int fill_bit_removal)
void t38_set_mmr_transcoding (t38_core_state_t *s, int mmr_transcoding)
void t38_set_jbig_transcoding (t38_core_state_t *s, int jbig_transcoding)
void t38_set_max_buffer_size (t38_core_state_t *s, int max_buffer_size)
void t38_set_max_datagram_size (t38_core_state_t *s, int max_datagram_size)
void t38_set_t38_version (t38_core_state_t *s, int t38_version)
void t38_set_sequence_number_handling (t38_core_state_t *s, int check)
int t38_get_fastest_image_data_rate (t38_core_state_t *s)
t38_core_state_t * t38_core_init (t38_core_state_t *s, t38_rx_indicator_handler_t *rx_indicator_handler, t38_rx_data_handler_t *rx_data_handler, t38_rx_missing_handler_t *rx_missing_handler, void *rx_user_data, t38_tx_packet_handler_t *tx_packet_handler, void *tx_packet_user_data)

Detailed Description


Function Documentation

int t38_core_rx_ifp_packet ( t38_core_state_t *  s,
const uint8_t *  buf,
int  len,
uint16_t  seq_no 
)

Process a received T.38 IFP packet.

Parameters:
s The T.38 context.
buf The packet contents.
len The length of the packet contents.
seq_no The packet sequence number.
Returns:
0 for OK, else -1.

int t38_core_send_data ( t38_core_state_t *  s,
int  data_type,
int  field_type,
const uint8_t  field[],
int  field_len,
int  count 
)

Send a data packet.

Parameters:
s The T.38 context.
data_type The packet's data type.
field_type The packet's field type.
field The message data content for the packet.
field_len The length of the message data, in bytes.
count The number of copies of the packet to send.
Returns:
???

int t38_core_send_data_multi_field ( t38_core_state_t *  s,
int  data_type,
const t38_data_field_t  field[],
int  fields,
int  count 
)

Send a data packet.

Parameters:
s The T.38 context.
data_type The packet's data type.
field The list of fields.
fields The number of fields in the list.
count The number of copies of the packet to send.
Returns:
???

int t38_core_send_indicator ( t38_core_state_t *  s,
int  indicator,
int  count 
)

Send an indicator packet.

Parameters:
s The T.38 context.
indicator The indicator to send.
count The number of copies of the packet to send.
Returns:
???

const char* t38_data_type ( int  data_type  ) 

Convert the code for a type of data to a short text name.

Parameters:
data_type The data type.
Returns:
A pointer to a short text name for the data type.

const char* t38_field_type ( int  field_type  ) 

Convert the code for a type of data field to a short text name.

Parameters:
field_type The field type.
Returns:
A pointer to a short text name for the field type.

const char* t38_indicator ( int  indicator  ) 

Convert the code for an indicator to a short text name.

Parameters:
indicator The type of indicator.
Returns:
A pointer to a short text name for the indicator.

void t38_set_data_rate_management_method ( t38_core_state_t *  s,
int  method 
)

Set the method to be used for data rate management, as per the T.38 spec.

Parameters:
s The T.38 context.
method 1 for pass TCF across the T.38 link, 2 for handle TCF locally.

void t38_set_data_transport_protocol ( t38_core_state_t *  s,
int  data_transport_protocol 
)

Set the data transport protocol.

Parameters:
s The T.38 context.
data_transport_protocol UDPTL, RTP or TPKT.

void t38_set_fill_bit_removal ( t38_core_state_t *  s,
int  fill_bit_removal 
)

Set the non-ECM fill bit removal mode.

Parameters:
s The T.38 context.
fill_bit_removal TRUE to remove fill bits across the T.38 link, else FALSE.

void t38_set_jbig_transcoding ( t38_core_state_t *  s,
int  jbig_transcoding 
)

Set the JBIG transcoding mode.

Parameters:
s The T.38 context.
jbig_transcoding TRUE to transcode to JBIG across the T.38 link, else FALSE.

void t38_set_mmr_transcoding ( t38_core_state_t *  s,
int  mmr_transcoding 
)

Set the MMR transcoding mode.

Parameters:
s The T.38 context.
mmr_transcoding TRUE to transcode to MMR across the T.38 link, else FALSE.

void t38_set_t38_version ( t38_core_state_t *  s,
int  t38_version 
)

Set the T.38 version to be emulated.

Parameters:
s The T.38 context.
t38_version Version number, as in the T.38 spec.


Generated on Tue Jul 24 11:29:29 2007 for libspandsp by  doxygen 1.5.2