rtcp.h File Reference

Go to the source code of this file.

Data Structures

struct  rtcp_SR_t
struct  rtcp_RR_t
struct  SDES_item_t
struct  rtcp_SDES_t
struct  rtcp_BYE_t
struct  rtcp_APP_t
struct  rtcp_stats_t
 structure rtcp_stats_t More...
struct  rtcp_pkt_t
struct  rtcp_client_t
struct  rtcp_t
 structure rtcp_t This structure is a VLC_OBJECT and holds RTCP statistical information. More...

Defines

#define _RTCP_H   1
#define RTCP_SR   200
#define RTCP_RR   201
#define RTCP_SDES   202
#define RTCP_BYE   203
#define RTCP_APP   204
#define RTCP_SDES_CNAME   1
#define RTCP_SDES_NAME   2
#define RTCP_SDES_EMAIL   3
#define RTCP_SDES_PHONE   4
#define RTCP_SDES_LOC   5
#define RTCP_SDES_TOOL   6
#define RTCP_SDES_NOTE   7
#define RTCP_SDES_PRIV   8
#define RTCP_HEADER_LEN   3

Typedefs

typedef enum rtcp_event_enum rtcp_event_t
typedef SDES_item_t rtcp_SDES_item_t

Enumerations

enum  rtcp_event_enum { EVENT_BYE, EVENT_REPORT }

Functions

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_find_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.
int rtcp_destroy_clients (vlc_object_t *p_this)
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 *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)
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:
void rtcp_received (vlc_object_t *p_this, rtcp_pkt_t *pkt, rtcp_event_t rtcp_event)
 rtcp_received Determine what to do on the received Sender Report, decode it or leave the channel (BYE record).


Define Documentation

#define _RTCP_H   1

#define RTCP_APP   204

#define RTCP_BYE   203

#define RTCP_HEADER_LEN   3

#define RTCP_RR   201

#define RTCP_SDES   202

#define RTCP_SDES_CNAME   1

#define RTCP_SDES_EMAIL   3

#define RTCP_SDES_LOC   5

#define RTCP_SDES_NAME   2

#define RTCP_SDES_NOTE   7

#define RTCP_SDES_PHONE   4

#define RTCP_SDES_PRIV   8

#define RTCP_SDES_TOOL   6

#define RTCP_SR   200


Typedef Documentation

typedef enum rtcp_event_enum rtcp_event_t

typedef struct SDES_item_t rtcp_SDES_item_t


Enumeration Type Documentation

enum rtcp_event_enum

Enumerator:
EVENT_BYE 
EVENT_REPORT 


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

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 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_received ( vlc_object_t p_this,
rtcp_pkt_t pkt,
rtcp_event_t  rtcp_event 
)

rtcp_received Determine what to do on the received Sender Report, decode it or leave the channel (BYE record).

Arguments:

Parameters:
p_this VLC_OBJECT of type rtcp_t
p_pkt RTCP packet that was received
rtcp_event type of event received


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