Fork me on GitHub
Loading...
Searching...
No Matches
rtcp.h
Go to the documentation of this file.
1
16#ifndef JANUS_RTCP_H
17#define JANUS_RTCP_H
18
19#include <arpa/inet.h>
20#ifdef __MACH__
21#include <machine/endian.h>
22#elif defined(__FreeBSD__)
23#include <sys/endian.h>
24#else
25#include <endian.h>
26#endif
27#include <inttypes.h>
28#include <string.h>
29
31typedef enum {
32 RTCP_FIR = 192,
33 RTCP_SR = 200,
34 RTCP_RR = 201,
35 RTCP_SDES = 202,
36 RTCP_BYE = 203,
37 RTCP_APP = 204,
39 RTCP_PSFB = 206,
40 RTCP_XR = 207,
41} rtcp_type;
43
44
46typedef struct rtcp_header
47{
48#if __BYTE_ORDER == __BIG_ENDIAN
49 uint16_t version:2;
50 uint16_t padding:1;
51 uint16_t rc:5;
52 uint16_t type:8;
53#elif __BYTE_ORDER == __LITTLE_ENDIAN
54 uint16_t rc:5;
55 uint16_t padding:1;
56 uint16_t version:2;
57 uint16_t type:8;
58#endif
59 uint16_t length:16;
62
64typedef struct sender_info
65{
66 uint32_t ntp_ts_msw;
67 uint32_t ntp_ts_lsw;
68 uint32_t rtp_ts;
69 uint32_t s_packets;
70 uint32_t s_octets;
73
75typedef struct report_block
76{
77 uint32_t ssrc;
78 uint32_t flcnpl;
79 uint32_t ehsnr;
80 uint32_t jitter;
81 uint32_t lsr;
82 uint32_t delay;
85
95
104
106typedef struct rtcp_sdes_chunk
107{
108 uint32_t ssrc;
111
112typedef struct rtcp_sdes_item
113{
114 uint8_t type;
115 uint8_t len;
116 char content[1];
119
127
129typedef struct rtcp_bye
130{
132 uint32_t ssrc[1];
135
137typedef struct rtcp_app
138{
140 uint32_t ssrc;
141 char name[4];
144
146typedef struct rtcp_nack
147{
149 uint16_t pid;
151 uint16_t blp;
154
156typedef struct janus_nack {
158 uint16_t seq_no;
162
163
165typedef struct rtcp_remb
166{
168 char id[4];
170 uint32_t bitrate;
172 uint32_t ssrc[3];
175
176
178typedef struct rtcp_fir
179{
181 uint32_t ssrc;
183 uint32_t seqnr;
186
187
189typedef struct rtcp_fb
190{
194 uint32_t ssrc;
196 uint32_t media;
198 char fci[1];
201
204{
206 uint8_t blocktype;
208 uint8_t typesp;
210 uint16_t length;
212 char content[1];
213
216
225
226
228typedef struct rtcp_context
229{
230 /* Whether we received any RTP packet at all (don't send RR otherwise) */
231 uint8_t rtp_recvd:1;
234
235 uint16_t max_seq_nr;
236 uint16_t seq_cycle;
237 uint16_t base_seq;
238 /* Payload type */
239 uint16_t pt;
240
241 /* RFC 3550 A.8 Interarrival Jitter */
242 int64_t transit;
244 /* Timestamp base (e.g., 48000 for opus audio, or 90000 for video) */
245 uint32_t tb;
246
247 /* Last SR received */
248 uint32_t lsr;
249 /* Monotonic time of last SR received */
250 int64_t lsr_ts;
251
252 /* Last RR/SR we sent */
253 int64_t last_sent;
254
255 /* Estimated round-trip time */
256 uint32_t rtt;
257
258 /* RFC 3550 A.3 */
259 uint32_t received;
261 uint32_t expected;
264
267
268 /* Inbound RR process */
269 int64_t rr_last_ts;
271 uint32_t rr_last_lost;
275
276 /* Link quality estimations */
281
282 /* TODO Incoming transport-wide CC feedback*/
283
286
296
305int32_t janus_rtcp_context_get_lost_all(janus_rtcp_context *ctx, gboolean remote);
310uint32_t janus_rtcp_context_get_jitter(janus_rtcp_context *ctx, gboolean remote);
332void janus_rtcp_swap_report_blocks(char *packet, int len, uint32_t rtx_ssrc);
337guint32 janus_rtcp_get_sender_ssrc(char *packet, int len);
342guint32 janus_rtcp_get_receiver_ssrc(char *packet, int len);
343
349gboolean janus_rtcp_check_len(janus_rtcp_header *rtcp, int len);
354gboolean janus_rtcp_check_rr(janus_rtcp_header *rtcp, int len);
359gboolean janus_rtcp_check_sr(janus_rtcp_header *rtcp, int len);
366gboolean janus_rtcp_check_fci(janus_rtcp_header *rtcp, int len, int sizeof_fci);
371gboolean janus_rtcp_check_remb(janus_rtcp_header *rtcp, int len);
372
376gboolean janus_is_rtcp(char *buf, guint len);
377
383int janus_rtcp_parse(janus_rtcp_context *ctx, char *packet, int len);
384
395int janus_rtcp_fix_report_data(char *packet, int len, uint32_t base_ts, uint32_t base_ts_prev, uint32_t ssrc_peer, uint32_t ssrc_local, uint32_t ssrc_expected, gboolean video);
396
405int janus_rtcp_fix_ssrc(janus_rtcp_context *ctx, char *packet, int len, int fixssrc, uint32_t newssrcl, uint32_t newssrcr);
406
412char *janus_rtcp_filter(char *packet, int len, int *newlen);
413
423int janus_rtcp_process_incoming_rtp(janus_rtcp_context *ctx, char *packet, int len,
424 gboolean rfc4588_pkt, gboolean rfc4588_enabled, gboolean retransmissions_disabled,
425 GHashTable *clock_rates);
426
432
437gboolean janus_rtcp_has_bye(char *packet, int len);
438
443gboolean janus_rtcp_has_fir(char *packet, int len);
444
449gboolean janus_rtcp_has_pli(char *packet, int len);
450
455GSList *janus_rtcp_get_nacks(char *packet, int len);
456
465int janus_rtcp_remove_nacks(char *packet, int len);
466
471uint32_t janus_rtcp_get_remb(char *packet, int len);
472
478int janus_rtcp_cap_remb(char *packet, int len, uint32_t bitrate);
479
486int janus_rtcp_sdes_cname(char *packet, int len, const char *cname, int cnamelen);
487
493int janus_rtcp_remb(char *packet, int len, uint32_t bitrate);
494
501int janus_rtcp_remb_ssrcs(char *packet, int len, uint32_t bitrate, uint8_t numssrc);
502
508int janus_rtcp_fir(char *packet, int len, int *seqnr);
509
516int janus_rtcp_fir_legacy(char *packet, int len, int *seqnr);
517
522int janus_rtcp_pli(char *packet, int len);
523
529int janus_rtcp_nacks(char *packet, int len, GSList *nacks);
530
539int janus_rtcp_transport_wide_cc_feedback(char *packet, size_t len, guint32 ssrc, guint32 media, guint8 feedback_packet_count, GQueue *transport_wide_cc_stats);
540
541#endif
rtcp_type janus_rtcp_type
Definition rtcp.h:42
rtcp_sr janus_rtcp_sr
Definition rtcp.h:94
void janus_rtcp_swap_report_blocks(char *packet, int len, uint32_t rtx_ssrc)
Method to swap Report Blocks and move media RB in first position in case rtx SSRC comes first.
Definition rtcp.c:162
int janus_rtcp_fir(char *packet, int len, int *seqnr)
Method to generate a new RTCP FIR message to request a key frame.
Definition rtcp.c:1497
rtcp_fb janus_rtcp_fb
Definition rtcp.h:200
rtcp_header janus_rtcp_header
Definition rtcp.h:61
int janus_rtcp_process_incoming_rtp(janus_rtcp_context *ctx, char *packet, int len, gboolean rfc4588_pkt, gboolean rfc4588_enabled, gboolean retransmissions_disabled, GHashTable *clock_rates)
Method to quickly process the header of an incoming RTP packet to update the associated RTCP context.
Definition rtcp.c:833
struct rtcp_app rtcp_app
RTCP APP (http://tools.ietf.org/html/rfc3550#section-6.7)
gboolean janus_rtcp_check_remb(janus_rtcp_header *rtcp, int len)
Method to check if a RTCP packet could contain an AFB REMB Message.
Definition rtcp.c:498
gboolean janus_rtcp_has_fir(char *packet, int len)
Method to check whether an RTCP message contains a FIR request.
Definition rtcp.c:1129
int32_t janus_rtcp_context_get_lost_all(janus_rtcp_context *ctx, gboolean remote)
Method to retrieve the total number of lost packets from an existing RTCP context.
Definition rtcp.c:938
gboolean janus_rtcp_has_bye(char *packet, int len)
Method to check whether an RTCP message contains a BYE message.
Definition rtcp.c:1102
GSList * janus_rtcp_get_nacks(char *packet, int len)
Method to parse an RTCP NACK message.
Definition rtcp.c:1187
int janus_rtcp_remb_ssrcs(char *packet, int len, uint32_t bitrate, uint8_t numssrc)
Method to generate a new RTCP REMB message to cap the reported bitrate, but for more SSRCs.
Definition rtcp.c:1452
int janus_rtcp_parse(janus_rtcp_context *ctx, char *packet, int len)
Method to parse/validate an RTCP message.
Definition rtcp.c:52
rtcp_app janus_rtcp_app
Definition rtcp.h:143
extended_report_block janus_extended_report_block
Definition rtcp.h:215
struct rtcp_context rtcp_context
Internal RTCP state context (for RR/SR)
rtcp_sdes janus_rtcp_sdes
Definition rtcp.h:126
int janus_rtcp_remb(char *packet, int len, uint32_t bitrate)
Method to generate a new RTCP REMB message to cap the reported bitrate.
Definition rtcp.c:1447
struct rtcp_sdes rtcp_sdes
rtcp_type
RTCP Packet Types (http://www.networksorcery.com/enp/protocol/rtcp.htm)
Definition rtcp.h:31
@ RTCP_APP
Definition rtcp.h:37
@ RTCP_RTPFB
Definition rtcp.h:38
@ RTCP_RR
Definition rtcp.h:34
@ RTCP_SR
Definition rtcp.h:33
@ RTCP_XR
Definition rtcp.h:40
@ RTCP_PSFB
Definition rtcp.h:39
@ RTCP_SDES
Definition rtcp.h:35
@ RTCP_FIR
Definition rtcp.h:32
@ RTCP_BYE
Definition rtcp.h:36
gboolean janus_rtcp_check_sr(janus_rtcp_header *rtcp, int len)
Method to check if a RTCP packet could contain a Sender Report.
Definition rtcp.c:441
uint32_t janus_rtcp_context_get_jitter(janus_rtcp_context *ctx, gboolean remote)
Method to retrieve the jitter from an existing RTCP context.
Definition rtcp.c:972
struct report_block report_block
RTCP Report Block (http://tools.ietf.org/html/rfc3550#section-6.4.1)
int janus_rtcp_remove_nacks(char *packet, int len)
Method to remove an RTCP NACK message.
Definition rtcp.c:1256
sender_info janus_sender_info
Definition rtcp.h:72
rtcp_remb janus_rtcp_fb_remb
Definition rtcp.h:174
uint32_t janus_rtcp_context_get_rtt(janus_rtcp_context *ctx)
Method to retrieve the estimated round-trip time from an existing RTCP context.
Definition rtcp.c:918
struct rtcp_sr rtcp_sr
RTCP Sender Report (http://tools.ietf.org/html/rfc3550#section-6.4.1)
int janus_rtcp_report_block(janus_rtcp_context *ctx, janus_report_block *rb)
Method to fill in a Report Block in a Receiver Report.
Definition rtcp.c:1002
rtcp_sdes_chunk janus_rtcp_sdes_chunk
Definition rtcp.h:110
struct rtcp_xr rtcp_xr
RTCP Extended Report (https://tools.ietf.org/html/rfc3611#section-2)
struct rtcp_remb rtcp_remb
RTCP REMB (http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-03)
uint32_t janus_rtcp_context_get_out_link_quality(janus_rtcp_context *ctx)
Method to retrieve outbound link quality from an existing RTCP context.
Definition rtcp.c:930
guint32 janus_rtcp_get_receiver_ssrc(char *packet, int len)
Method to quickly retrieve the received SSRC (needed for demuxing RTCP in BUNDLE)
Definition rtcp.c:108
int janus_rtcp_sdes_cname(char *packet, int len, const char *cname, int cnamelen)
Method to generate a new RTCP SDES message.
Definition rtcp.c:1420
struct sender_info sender_info
RTCP Sender Information (http://tools.ietf.org/html/rfc3550#section-6.4.1)
int janus_rtcp_fir_legacy(char *packet, int len, int *seqnr)
Method to generate a new legacy RTCP FIR (RFC2032) message to request a key frame.
rtcp_context janus_rtcp_context
Definition rtcp.h:285
int janus_rtcp_nacks(char *packet, int len, GSList *nacks)
Method to generate a new RTCP NACK message to report lost packets.
Definition rtcp.c:1533
int janus_rtcp_transport_wide_cc_feedback(char *packet, size_t len, guint32 ssrc, guint32 media, guint8 feedback_packet_count, GQueue *transport_wide_cc_stats)
Method to generate a new RTCP transport wide message to report reception stats.
Definition rtcp.c:1577
struct rtcp_transport_wide_cc_stats rtcp_transport_wide_cc_stats
Stores transport wide packet reception statistics.
struct extended_report_block extended_report_block
RTCP Extended Report Block (https://tools.ietf.org/html/rfc3611#section-3)
rtcp_transport_wide_cc_stats janus_rtcp_transport_wide_cc_stats
Definition rtcp.h:295
rtcp_sdes_item janus_rtcp_sdes_item
Definition rtcp.h:118
struct janus_nack janus_nack
Janus representation (linked list) of sequence numbers to send again.
rtcp_xr janus_rtcp_xr
Definition rtcp.h:224
struct rtcp_header rtcp_header
RTCP Header (http://tools.ietf.org/html/rfc3550#section-6.1)
report_block janus_report_block
Definition rtcp.h:84
int janus_rtcp_fix_report_data(char *packet, int len, uint32_t base_ts, uint32_t base_ts_prev, uint32_t ssrc_peer, uint32_t ssrc_local, uint32_t ssrc_expected, gboolean video)
Method to fix incoming RTCP SR and RR data.
Definition rtcp.c:1033
gboolean janus_rtcp_check_fci(janus_rtcp_header *rtcp, int len, int sizeof_fci)
Method to check if a RTCP packet could contain a Feedback Message with a defined FCI size.
Definition rtcp.c:465
gboolean janus_is_rtcp(char *buf, guint len)
Helper method to demultiplex RTCP from other protocols.
Definition rtcp.c:45
struct rtcp_rr rtcp_rr
RTCP Receiver Report (http://tools.ietf.org/html/rfc3550#section-6.4.2)
rtcp_rr janus_rtcp_rr
Definition rtcp.h:103
uint32_t janus_rtcp_context_get_out_media_link_quality(janus_rtcp_context *ctx)
Method to retrieve outbound media link quality from an existing RTCP context.
Definition rtcp.c:934
guint32 janus_rtcp_get_sender_ssrc(char *packet, int len)
Method to quickly retrieve the sender SSRC (needed for demuxing RTCP in BUNDLE)
Definition rtcp.c:56
uint32_t janus_rtcp_get_remb(char *packet, int len)
Inspect an existing RTCP REMB message to retrieve the reported bitrate.
Definition rtcp.c:1311
gboolean janus_rtcp_has_pli(char *packet, int len)
Method to check whether an RTCP message contains a PLI request.
Definition rtcp.c:1156
uint32_t janus_rtcp_context_get_in_media_link_quality(janus_rtcp_context *ctx)
Method to retrieve inbound media link quality from an existing RTCP context.
Definition rtcp.c:926
gboolean janus_rtcp_check_rr(janus_rtcp_header *rtcp, int len)
Method to check if a RTCP packet could contain a Receiver Report.
Definition rtcp.c:455
char * janus_rtcp_filter(char *packet, int len, int *newlen)
Method to filter an outgoing RTCP message (http://tools.ietf.org/html/draft-ietf-straw-b2bua-rtcp-00)
Definition rtcp.c:755
struct rtcp_sdes_item rtcp_sdes_item
struct rtcp_sdes_chunk rtcp_sdes_chunk
RTCP SDES (http://tools.ietf.org/html/rfc3550#section-6.5)
rtcp_bye janus_rtcp_bye
Definition rtcp.h:134
struct rtcp_fir rtcp_fir
RTCP FIR (http://tools.ietf.org/search/rfc5104#section-4.3.1.1)
int janus_rtcp_cap_remb(char *packet, int len, uint32_t bitrate)
Method to modify an existing RTCP REMB message to cap the reported bitrate.
Definition rtcp.c:1355
struct rtcp_nack rtcp_nack
RTCP NACK (http://tools.ietf.org/html/rfc4585#section-6.2.1)
gboolean janus_rtcp_check_len(janus_rtcp_header *rtcp, int len)
Method to check that a RTCP packet size is at least the minimum necessary (8 bytes) and to validate t...
Definition rtcp.c:428
rtcp_nack janus_rtcp_nack
Definition rtcp.h:153
rtcp_fir janus_rtcp_fb_fir
Definition rtcp.h:185
uint32_t janus_rtcp_context_get_in_link_quality(janus_rtcp_context *ctx)
Method to retrieve inbound link quality from an existing RTCP context.
Definition rtcp.c:922
int janus_rtcp_pli(char *packet, int len)
Method to generate a new RTCP PLI message to request a key frame.
Definition rtcp.c:1519
struct rtcp_fb rtcp_fb
RTCP-FB (http://tools.ietf.org/html/rfc4585)
struct rtcp_bye rtcp_bye
RTCP BYE (http://tools.ietf.org/html/rfc3550#section-6.6)
int janus_rtcp_fix_ssrc(janus_rtcp_context *ctx, char *packet, int len, int fixssrc, uint32_t newssrcl, uint32_t newssrcr)
Method to fix an RTCP message (http://tools.ietf.org/html/draft-ietf-straw-b2bua-rtcp-00)
Definition rtcp.c:516
RTCP Extended Report Block (https://tools.ietf.org/html/rfc3611#section-3)
Definition rtcp.h:204
uint8_t blocktype
Block type (BT)
Definition rtcp.h:206
uint16_t length
Block length.
Definition rtcp.h:210
char content[1]
Content (variable length)
Definition rtcp.h:212
uint8_t typesp
Type-specific.
Definition rtcp.h:208
Janus representation (linked list) of sequence numbers to send again.
Definition rtcp.h:156
struct janus_nack * next
Next element in the linked list.
Definition rtcp.h:160
uint16_t seq_no
Sequence number to send again.
Definition rtcp.h:158
RTCP Report Block (http://tools.ietf.org/html/rfc3550#section-6.4.1)
Definition rtcp.h:76
uint32_t lsr
Definition rtcp.h:81
uint32_t delay
Definition rtcp.h:82
uint32_t ehsnr
Definition rtcp.h:79
uint32_t flcnpl
Definition rtcp.h:78
uint32_t jitter
Definition rtcp.h:80
uint32_t ssrc
Definition rtcp.h:77
RTCP APP (http://tools.ietf.org/html/rfc3550#section-6.7)
Definition rtcp.h:138
uint32_t ssrc
Definition rtcp.h:140
char name[4]
Definition rtcp.h:141
rtcp_header header
Definition rtcp.h:139
RTCP BYE (http://tools.ietf.org/html/rfc3550#section-6.6)
Definition rtcp.h:130
rtcp_header header
Definition rtcp.h:131
uint32_t ssrc[1]
Definition rtcp.h:132
Internal RTCP state context (for RR/SR)
Definition rtcp.h:229
int32_t lost_remote
Definition rtcp.h:263
uint32_t expected_prior
Definition rtcp.h:262
uint32_t rtp_last_inorder_ts
Definition rtcp.h:232
int64_t rr_last_ts
Definition rtcp.h:269
gint sent_packets_since_last_rr
Definition rtcp.h:273
double in_media_link_quality
Definition rtcp.h:278
double in_link_quality
Definition rtcp.h:277
uint32_t rtt
Definition rtcp.h:256
double jitter
Definition rtcp.h:243
double jitter_remote
Definition rtcp.h:243
uint32_t rr_last_ehsnr
Definition rtcp.h:270
uint32_t retransmitted
Definition rtcp.h:265
uint32_t expected
Definition rtcp.h:261
uint16_t pt
Definition rtcp.h:239
uint32_t tb
Definition rtcp.h:245
uint32_t received
Definition rtcp.h:259
double out_media_link_quality
Definition rtcp.h:280
int32_t lost
Definition rtcp.h:263
int64_t rtp_last_inorder_time
Definition rtcp.h:233
uint32_t rr_last_nack_count
Definition rtcp.h:272
uint32_t lsr
Definition rtcp.h:248
uint16_t base_seq
Definition rtcp.h:237
uint16_t seq_cycle
Definition rtcp.h:236
uint32_t rr_last_lost
Definition rtcp.h:271
double out_link_quality
Definition rtcp.h:279
int64_t lsr_ts
Definition rtcp.h:250
uint16_t max_seq_nr
Definition rtcp.h:235
uint8_t rtp_recvd
Definition rtcp.h:231
int64_t last_sent
Definition rtcp.h:253
gint nack_count
Definition rtcp.h:274
int64_t transit
Definition rtcp.h:242
uint32_t retransmitted_prior
Definition rtcp.h:266
uint32_t received_prior
Definition rtcp.h:260
RTCP-FB (http://tools.ietf.org/html/rfc4585)
Definition rtcp.h:190
char fci[1]
Feedback Control Information.
Definition rtcp.h:198
uint32_t ssrc
Sender SSRC.
Definition rtcp.h:194
rtcp_header header
Common header.
Definition rtcp.h:192
uint32_t media
Media source.
Definition rtcp.h:196
RTCP FIR (http://tools.ietf.org/search/rfc5104#section-4.3.1.1)
Definition rtcp.h:179
uint32_t seqnr
Sequence number (only the first 8 bits are used, the other 24 are reserved)
Definition rtcp.h:183
uint32_t ssrc
SSRC of the media sender that needs to send a key frame.
Definition rtcp.h:181
RTCP Header (http://tools.ietf.org/html/rfc3550#section-6.1)
Definition rtcp.h:47
uint16_t type
Definition rtcp.h:52
uint16_t rc
Definition rtcp.h:51
uint16_t length
Definition rtcp.h:59
uint16_t padding
Definition rtcp.h:50
uint16_t version
Definition rtcp.h:49
RTCP NACK (http://tools.ietf.org/html/rfc4585#section-6.2.1)
Definition rtcp.h:147
uint16_t pid
Packet ID.
Definition rtcp.h:149
uint16_t blp
bitmask of following lost packets
Definition rtcp.h:151
RTCP REMB (http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-03)
Definition rtcp.h:166
uint32_t bitrate
Num SSRC, Br Exp, Br Mantissa (bit mask)
Definition rtcp.h:170
uint32_t ssrc[3]
SSRC feedback (we expect at max three SSRCs in there)
Definition rtcp.h:172
RTCP Receiver Report (http://tools.ietf.org/html/rfc3550#section-6.4.2)
Definition rtcp.h:98
uint32_t ssrc
Definition rtcp.h:100
rtcp_header header
Definition rtcp.h:99
report_block rb[1]
Definition rtcp.h:101
RTCP SDES (http://tools.ietf.org/html/rfc3550#section-6.5)
Definition rtcp.h:107
uint32_t ssrc
Definition rtcp.h:108
Definition rtcp.h:113
char content[1]
Definition rtcp.h:116
uint8_t len
Definition rtcp.h:115
uint8_t type
Definition rtcp.h:114
Definition rtcp.h:121
rtcp_sdes_item item
Definition rtcp.h:124
rtcp_header header
Definition rtcp.h:122
rtcp_sdes_chunk chunk
Definition rtcp.h:123
RTCP Sender Report (http://tools.ietf.org/html/rfc3550#section-6.4.1)
Definition rtcp.h:88
sender_info si
Definition rtcp.h:91
rtcp_header header
Definition rtcp.h:89
report_block rb[1]
Definition rtcp.h:92
uint32_t ssrc
Definition rtcp.h:90
Stores transport wide packet reception statistics.
Definition rtcp.h:289
guint64 timestamp
Reception time.
Definition rtcp.h:293
guint32 transport_seq_num
Transwport wide sequence number.
Definition rtcp.h:291
RTCP Extended Report (https://tools.ietf.org/html/rfc3611#section-2)
Definition rtcp.h:219
extended_report_block erb[1]
Definition rtcp.h:222
uint32_t ssrc
Definition rtcp.h:221
rtcp_header header
Definition rtcp.h:220
RTCP Sender Information (http://tools.ietf.org/html/rfc3550#section-6.4.1)
Definition rtcp.h:65
uint32_t rtp_ts
Definition rtcp.h:68
uint32_t ntp_ts_msw
Definition rtcp.h:66
uint32_t s_packets
Definition rtcp.h:69
uint32_t s_octets
Definition rtcp.h:70
uint32_t ntp_ts_lsw
Definition rtcp.h:67