10#include <netinet/in.h>
17#if defined(__MINGW32__) || defined(__MINGW64__) || defined(__GNUC__) || defined(__linux__)
18#define PACK(__Declaration__) __Declaration__ __attribute__((__packed__))
20#define PACK(__Declaration__) __pragma(pack(push, 1)) __Declaration__ __pragma(pack(pop))
26 enum RTCP_FRAME_TYPE {
49 PACK(
struct rtp_header {
57 uint32_t timestamp = 0;
61 PACK(
struct ext_header {
64 uint8_t *data =
nullptr;
69 struct rtp_header header;
70 uint32_t *csrc =
nullptr;
71 struct ext_header *ext =
nullptr;
73 size_t padding_len = 0;
80 uint8_t* payload =
nullptr;
83 uint8_t *dgram =
nullptr;
84 size_t dgram_size = 0;
117 uint32_t pkt_cnt = 0;
125 uint8_t fraction = 0;
127 uint32_t last_seq = 0;
137 std::vector<rtcp_report_block> report_blocks;
145 std::vector<rtcp_report_block> report_blocks;
152 uint8_t *data =
nullptr;
158 std::vector<rtcp_sdes_item> items;
164 std::vector<rtcp_sdes_chunk> chunks;
171 uint8_t name[4] = {0};
172 uint8_t *payload =
nullptr;
186 uint8_t picture_id = 0;
192 uint8_t* str =
nullptr;
208 uint32_t sender_ssrc = 0;
209 uint32_t media_ssrc = 0;
210 std::vector<rtcp_fb_fci> items;
216 PACK(
struct zrtp_frame {
237 rtp_frame *alloc_rtp_frame();
238 rtp_frame *alloc_rtp_frame(
size_t payload_len);
255 void* alloc_zrtp_frame(
size_t payload_size);
262 rtp_error_t dealloc_frame(uvgrtp::frame::zrtp_frame* frame);
266namespace uvg_rtp = uvgrtp;
size_t payload_len
Size of the payload in bytes. Added by uvgRTP to help process the payload.
RTCP Feedback Control Information, See RFC 4585 section 6.1.
Feedback message. See RFC 4585 section 6.1.
size_t payload_len
Size of the payload in bytes. Added by uvgRTP to help process the payload.
Full Intra Request, See RFC 5104 section 4.3.1.
See RFC 3550 section 6.4.2
See RFC 3550 section 6.4.1
Reference Picture Selection Indication, See RFC 4585 section 6.3.3.
See RFC 3550 section 6.4.1
uint32_t rtp_ts
RTP timestamp corresponding to this NTP timestamp.
uint32_t byte_cnt
Also known as octet count.
uint32_t ntp_lsw
NTP timestamp, least significant word.
uint32_t ntp_msw
NTP timestamp, most significant word.
See RFC 3550 section 6.4.1
Slice Loss Indication, See RFC 4585 section 6.3.2.
size_t payload_len
Length of the packet payload in bytes added by uvgRTP to help process the frame.