144 struct mbuf *
mb,
void *arg);
173 const uint8_t *data,
size_t len);
int rtcp_send_app(struct rtp_sock *rs, const char name[4], const uint8_t *data, size_t len)
Send an RTCP Application-Defined (APP) packet.
rtcp_rtpfb
Transport Layer Feedback Messages.
@ RTCP_RTPFB_GNACK
Generic NACK.
rtcp_sdes_type
SDES Types.
@ RTCP_SDES_NOTE
Notice about the source
@ RTCP_SDES_CNAME
Canonical name
@ RTCP_SDES_PHONE
User's phone number
@ RTCP_SDES_TOOL
Name of application or tool
@ RTCP_SDES_LOC
Geographic user location
@ RTCP_SDES_EMAIL
User's electronic mail address.
@ RTCP_SDES_END
End of SDES list
@ RTCP_SDES_NAME
User name
@ RTCP_SDES_PRIV
Private extension
void rtcp_set_srate_rx(struct rtp_sock *rs, uint32_t srate_rx)
void() rtp_recv_h(const struct sa *src, const struct rtp_header *hdr, struct mbuf *mb, void *arg)
int rtp_encode(struct rtp_sock *rs, bool marker, uint8_t pt, uint32_t ts, struct mbuf *mb)
int rtcp_encode(struct mbuf *mb, enum rtcp_type type, uint32_t count,...)
rtcp_type
RTCP Packet Types.
@ RTCP_APP
Application-defined
@ RTCP_RTPFB
Transport layer FB message (RFC 4585)
@ RTCP_XR
Extended Report (RFC 3611)
@ RTCP_PSFB
Payload-specific FB message (RFC 4585)
@ RTCP_SDES
Source Description
@ RTCP_FIR
Full INTRA-frame Request (RFC 2032)
@ RTCP_NACK
Negative Acknowledgement (RFC 2032)
@ RTCP_AVB
AVB RTCP Packet (IEEE1733)
int rtcp_send_pli(struct rtp_sock *rs, uint32_t fb_ssrc)
Send an RTCP Picture Loss Indication (PLI) packet.
void * rtcp_sock(const struct rtp_sock *rs)
int rtp_send(struct rtp_sock *rs, const struct sa *dst, bool marker, uint8_t pt, uint32_t ts, struct mbuf *mb)
int rtcp_debug(struct re_printf *pf, const struct rtp_sock *rs)
void rtcp_set_srate(struct rtp_sock *rs, uint32_t sr_tx, uint32_t sr_rx)
void() rtcp_recv_h(const struct sa *src, struct rtcp_msg *msg, void *arg)
void * rtp_sock(const struct rtp_sock *rs)
int rtcp_msg_print(struct re_printf *pf, const struct rtcp_msg *msg)
Print an RTCP Message.
int rtp_debug(struct re_printf *pf, const struct rtp_sock *rs)
rtcp_psfb
Payload-Specific Feedback Messages.
@ RTCP_PSFB_AFB
Application layer Feedback Messages.
@ RTCP_PSFB_PLI
Picture Loss Indication (PLI)
@ RTCP_PSFB_SLI
Slice Loss Indication (SLI)
void rtcp_start(struct rtp_sock *rs, const char *cname, const struct sa *peer)
int rtcp_send_nack(struct rtp_sock *rs, uint16_t fsn, uint16_t blp)
Send an RTCP NACK packet.
void rtcp_enable_mux(struct rtp_sock *rs, bool enabled)
void rtcp_set_srate_tx(struct rtp_sock *rs, uint32_t srate_tx)
uint32_t rtp_sess_ssrc(const struct rtp_sock *rs)
int rtp_decode(struct rtp_sock *rs, struct mbuf *mb, struct rtp_header *hdr)
@ RTP_VERSION
Defines the RTP version we support.
@ RTP_HEADER_SIZE
Number of bytes in RTP Header
@ RTCP_VERSION
Supported RTCP Version
int rtp_listen(struct rtp_sock **rsp, int proto, const struct sa *ip, uint16_t min_port, uint16_t max_port, bool enable_rtcp, rtp_recv_h *recvh, rtcp_recv_h *rtcph, void *arg)
const char * rtcp_type_name(enum rtcp_type type)
int rtp_alloc(struct rtp_sock **rsp)
int rtp_hdr_encode(struct mbuf *mb, const struct rtp_header *hdr)
int rtcp_send_fir(struct rtp_sock *rs, uint32_t ssrc)
Send a Full INTRA-frame Request (FIR) packet.
int rtcp_sdes_encode(struct mbuf *mb, uint32_t src, uint32_t itemc,...)
const char * rtcp_sdes_name(enum rtcp_sdes_type sdes)
int rtcp_decode(struct rtcp_msg **msgp, struct mbuf *mb)
const struct sa * rtp_local(const struct rtp_sock *rs)
int rtp_hdr_decode(struct rtp_header *hdr, struct mbuf *mb)
unsigned int p
Padding flag
unsigned int pt
RTCP packet type
unsigned int count
Varies by packet type
unsigned int version
Protocol version
uint16_t length
Packet length in words.
uint32_t ntp_sec
NTP timestamp - seconds
uint32_t osent
RTP octets sent
struct rtcp_msg::rtcp_hdr hdr
struct rtcp_msg::@11::@12 sr
Sender report (SR)
uint32_t ssrc
Sender generating report
struct rtcp_msg::@11::@13 rr
Reception report (RR)
uint32_t ntp_frac
NTP timestamp - fractions.
struct rtcp_rr rrv[1]
Reception report blocks
uint32_t psent
RTP packets sent
uint32_t rtp_ts
RTP timestamp
uint32_t lsr
Last SR packet from this source.
uint32_t dlsr
Delay since last SR packet
uint32_t jitter
Interarrival jitter
uint32_t fraction_lost_32
Combine the previous two fields.
uint32_t ssrc
Data source being reported
uint32_t last_seq
Extended last seq.
char * data
Text, not null-terminated
uint8_t length
Length of item (in octets)
enum rtcp_sdes_type type
Type of item (enum rtcp_sdes_type)
struct rtcp_stats::@14 tx
uint32_t sent
Tx RTP Packets
uint32_t jit
Tx Inter-arrival Jitter in [us].
uint32_t rtt
Current Round-Trip Time in [us].
int lost
Tx RTP Packets Lost
struct rtcp_stats::@15 rx