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_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: | |
| void | rtcp_pkt_del (vlc_object_t *p_this, rtcp_pkt_t *pkt) |
| block_t * | rtcp_encode_SR (vlc_object_t *p_this, rtcp_pkt_t *p_pkt) |
| 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_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 _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 enum rtcp_event_enum rtcp_event_t |
| typedef struct SDES_item_t rtcp_SDES_item_t |
| enum rtcp_event_enum |
| 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:
| 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:
| 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:
| 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:
| 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:
| type | type of RTCP packet |
| 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:
| p_this | VLC_OBJECT of type rtcp_t | |
| p_pkt | RTCP packet that was received | |
| rtcp_event | type of event received |
1.5.1