rtcp.c File Reference

Include dependency graph for rtcp.c:


Functions

void send_RTCP (vlc_object_t *p_this, rtcp_event_t)
void rtcp_schedule (vlc_object_t *p_this, mtime_t, rtcp_event_t)
static int SDES_client_item_add (rtcp_client_t *p_client, int i_item, char *psz_name)
static int SDES_client_item_del (rtcp_client_t *p_client)
int rtcp_add_client (vlc_object_t *p_this, uint32_t u_ssrc, uint32_t *i_pos)
int rtcp_del_client (vlc_object_t *p_this, uint32_t u_ssrc)
int rtcp_cleanup_clients (vlc_object_t *p_this)
 rtcp_cleanup_clients - Permanently remove clients from the list Permanently delete struct rtcp_client_t from member list when it is there time to be removed.
int rtcp_destroy_clients (vlc_object_t *p_this)
int rtcp_find_client (vlc_object_t *p_this, uint32_t u_ssrc, uint32_t *i_pos)
uint64_t rtcp_interval (vlc_object_t *p_this, uint64_t u_bandwidth, uint32_t u_ssrc, bool b_sender, bool b_first)
 rtcp_interval Calculate the interval at which RTCP compound packets are going to be sent or received.
void rtcp_expire (vlc_object_t *p_this, rtcp_event_t rtcp_event, uint64_t u_bandwidth, uint32_t u_ssrc, bool b_sender, bool *b_first)
 rtcp_expire Decides to sent an RTCP report or a BYE record Arguments:
static int rtcp_decode_SR (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
static int rtcp_decode_RR (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
static int rtcp_decode_SDES (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
static int rtcp_decode_BYE (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
static int rtcp_decode_APP (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
int rtcp_pkt_decode (vlc_object_t *p_this, rtcp_pkt_t *p_pkt, block_t *p_block)
 rtcp_pkt_decode - Decode RTCP packet Decode incoming RTCP packet and inspect the records types.
rtcp_pkt_trtcp_pkt_new (vlc_object_t *p_this, int type)
 rtcp_pkt_new - Encode RTCP packet Create a new RTCP packet of type 'type' Arguments:
void rtcp_pkt_del (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
block_trtcp_encode_SR (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
block_trtcp_encode_RR (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
block_trtcp_encode_SDES (vlc_object_t *p_this, rtcp_pkt_t *p_pkt)
block_trtcp_encode_BYE (vlc_object_t *p_this, rtcp_pkt_t *p_pkt, char *psz_reason)

Function Documentation

int rtcp_add_client ( vlc_object_t p_this,
uint32_t  u_ssrc,
uint32_t *  i_pos 
)

int rtcp_cleanup_clients ( vlc_object_t p_this  ) 

rtcp_cleanup_clients - Permanently remove clients from the list Permanently delete struct rtcp_client_t from member list when it is there time to be removed.

RFC 3550 recommends a grace period of five times the RTCP packet send/receive interval before permanent removal of session. This is to ignore out of order packets for the same SSRC that arrive after the BYE report for that SSRC has been received. Arguments:

Parameters:
p_this VLC_OBJECT_T of type rtcp_t

static int rtcp_decode_APP ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
) [static]

static int rtcp_decode_BYE ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
) [static]

static int rtcp_decode_RR ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
) [static]

static int rtcp_decode_SDES ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
) [static]

static int rtcp_decode_SR ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
) [static]

int rtcp_del_client ( vlc_object_t p_this,
uint32_t  u_ssrc 
)

int rtcp_destroy_clients ( vlc_object_t p_this  ) 

block_t* rtcp_encode_BYE ( vlc_object_t p_this,
rtcp_pkt_t p_pkt,
char *  psz_reason 
)

block_t* rtcp_encode_RR ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
)

block_t* rtcp_encode_SDES ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
)

block_t* rtcp_encode_SR ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
)

void rtcp_expire ( vlc_object_t p_this,
rtcp_event_t  rtcp_event,
uint64_t  u_bandwidth,
uint32_t  u_ssrc,
bool  b_sender,
bool *  b_first 
)

rtcp_expire Decides to sent an RTCP report or a BYE record Arguments:

Parameters:
p_this VLC_OBJECT of type rtcp_t
u_bandwith bandwidth of RTP connection
u_ssrc client to sent or receive from
rtcp_event type of event received
b_sender are we the sender or the receiver
*b_first the first time this function is called use only half of the initial waiting time. If b_first is true, then it will return *b_first = false;

int rtcp_find_client ( vlc_object_t p_this,
uint32_t  u_ssrc,
uint32_t *  i_pos 
)

uint64_t rtcp_interval ( vlc_object_t p_this,
uint64_t  u_bandwidth,
uint32_t  u_ssrc,
bool  b_sender,
bool  b_first 
)

rtcp_interval Calculate the interval at which RTCP compound packets are going to be sent or received.

Arguments:

Parameters:
p_this VLC_OBJECT of type rtcp_t
u_bandwith bandwidth of RTP connection
u_ssrc client to sent or receive from
b_sender are we the sender or the receiver
b_first the first time this function is called use only half of the initial waiting time

int rtcp_pkt_decode ( vlc_object_t p_this,
rtcp_pkt_t p_pkt,
block_t p_block 
)

rtcp_pkt_decode - Decode RTCP packet Decode incoming RTCP packet and inspect the records types.

Arguments:

Parameters:
p_this 
p_pkt 
p_block 

void rtcp_pkt_del ( vlc_object_t p_this,
rtcp_pkt_t p_pkt 
)

rtcp_pkt_t* rtcp_pkt_new ( vlc_object_t p_this,
int  type 
)

rtcp_pkt_new - Encode RTCP packet Create a new RTCP packet of type 'type' Arguments:

Parameters:
type type of RTCP packet
See also:

void rtcp_schedule ( vlc_object_t p_this,
mtime_t  ,
rtcp_event_t   
)

static int SDES_client_item_add ( rtcp_client_t p_client,
int  i_item,
char *  psz_name 
) [static]

static int SDES_client_item_del ( rtcp_client_t p_client  )  [static]

void send_RTCP ( vlc_object_t p_this,
rtcp_event_t   
)


Generated on Wed Aug 13 08:04:45 2008 for VLC by  doxygen 1.5.1