5#include "uvgrtp/export.hh"
6#include "uvgrtp/definitions.hh"
13#include <netinet/in.h>
19#if defined(__MINGW32__) || defined(__MINGW64__) || defined(__GNUC__) || defined(__linux__)
20#define PACK(__Declaration__) __Declaration__ __attribute__((__packed__))
22#define PACK(__Declaration__) __pragma(pack(push, 1)) __Declaration__ __pragma(pack(pop))
30 enum RTCP_FRAME_TYPE {
65 PACK(
struct UVGRTP_EXPORT rtp_header {
73 uint32_t timestamp = 0;
84 PACK(
struct UVGRTP_EXPORT ext_header {
87 uint8_t *data =
nullptr;
95 struct rtp_header header;
96 uint32_t *csrc =
nullptr;
97 struct ext_header *ext =
nullptr;
99 size_t padding_len = 0;
105 size_t payload_len = 0;
106 uint8_t* payload =
nullptr;
109 uint8_t *dgram =
nullptr;
110 size_t dgram_size = 0;
133 uint8_t pkt_type = 0;
145 uint32_t ntp_msw = 0;
147 uint32_t ntp_lsw = 0;
150 uint32_t pkt_cnt = 0;
152 uint32_t byte_cnt = 0;
161 uint8_t fraction = 0;
163 uint32_t last_seq = 0;
197 uint8_t* data =
nullptr;
207 size_t item_count = 0;
226 uint8_t name[4] = {0};
227 uint8_t *payload =
nullptr;
229 size_t payload_len = 0;
333#if UVGRTP_EXTENDED_API
343 std::vector<rtcp_report_block> report_blocks;
356 std::vector<rtcp_report_block> report_blocks;
367 std::vector<rtcp_sdes_item> items;
378 std::vector<rtcp_sdes_chunk> chunks;
384namespace uvg_rtp = uvgrtp;
rtp_error_t UVGRTP_EXPORT dealloc_sdes(uvgrtp::frame::rtcp_sdes *sdes)
Deallocates an RTCP Source Description (SDES) frame.
rtp_error_t UVGRTP_EXPORT dealloc_sr(uvgrtp::frame::rtcp_sr *sr)
Deallocates an RTCP Sender Report (SR) frame.
rtp_error_t UVGRTP_EXPORT dealloc_rr(uvgrtp::frame::rtcp_rr *rr)
Deallocates an RTCP Receiver Report (RR) frame.
rtp_error_t UVGRTP_EXPORT dealloc_frame(uvgrtp::frame::rtp_frame *frame)
Deallocates an RTP frame.
See RFC 3550 section 6.7 for details on RTCP Application Packet.
See RFC 3550 section 6.4.2
See RFC 3550 section 6.4.1
See RFC 3550 section 6.4.2 for details on the RTCP RR (Receiver Report).
See RFC 3550 section 6.5 for details on RTCP SDES Chunk.
See RFC 3550 section 6.5 for details on RTCP SDES Item.
See RFC 3550 section 6.5 for details on RTCP SDES (Source Description).
See RFC 3550 section 6.4.1
See RFC 3550 section 6.4.1
See RFC 3550 section 6.4.1