- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -81,8 +81,8 @@ $(function() {
This is the complete list of members for uvgrtp::context, including all inherited members.
context() | uvgrtp::context | |
- create_session(std::string address) | uvgrtp::context | |
- create_session(std::string remote_addr, std::string local_addr) | uvgrtp::context | |
+ create_session(std::pair< std::string, std::string > addresses) | uvgrtp::context | |
+ create_session(std::string address) | uvgrtp::context | |
crypto_enabled() const | uvgrtp::context | |
destroy_session(uvgrtp::session *session) | uvgrtp::context | |
~context() | uvgrtp::context | |
diff --git a/docs/html/classuvgrtp_1_1context.html b/docs/html/classuvgrtp_1_1context.html
index 5e5127b..fff933c 100644
--- a/docs/html/classuvgrtp_1_1context.html
+++ b/docs/html/classuvgrtp_1_1context.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -94,12 +94,12 @@ Public Member Functions
| ~context () |
| RTP context destructor.
|
|
+uvgrtp::session * | create_session (std::pair< std::string, std::string > addresses) |
+ | Create a new RTP session between two IP addresses.
|
+ |
uvgrtp::session * | create_session (std::string address) |
| Create a new RTP session.
|
|
-uvgrtp::session * | create_session (std::string remote_addr, std::string local_addr) |
- | Create a new RTP session.
|
- |
rtp_error_t | destroy_session (uvgrtp::session *session) |
| Destroy RTP session and all of its media streams.
|
|
@@ -110,7 +110,7 @@ Public Member Functions
Provides CNAME isolation and can be used to create uvgrtp::session objects.
-
Definition at line 16 of file context.hh.
+
Definition at line 18 of file context.hh.
◆ context()
@@ -153,8 +153,42 @@ Public Member Functions
+
+◆ create_session() [1/2]
+
+
+
+
+
+ uvgrtp::session * uvgrtp::context::create_session |
+ ( |
+ std::pair< std::string, std::string > |
+ addresses | ) |
+ |
+
+
+
+
+
Create a new RTP session between two IP addresses.
+
- Parameters
-
+
+ addresses | Local and remote IP address for session as a pair |
+
+
+
+
- Returns
- RTP session object
+
- Return values
-
+
+
+
+
+
+
-◆ create_session() [1/2]
+◆ create_session() [2/2]
@@ -185,52 +219,6 @@ Public Member Functions
-
-
-
-◆ create_session() [2/2]
-
-
-
-
-
- uvgrtp::session * uvgrtp::context::create_session |
- ( |
- std::string |
- remote_addr, |
-
-
- |
- |
- std::string |
- local_addr |
-
-
- |
- ) |
- | |
-
-
-
-
-
Create a new RTP session.
-
If UDP holepunching should be utilized, in addition to remote IP address, the caller must also provide local IP address where uvgRTP should bind itself to. If you are using uvgRTP for unidirectional streaming, please take a look at RCE_HOLEPUNCH_KEEPALIVE
-
- Parameters
-
-
- remote_addr | IP address of the remote participant |
- local_addr | IP address of a local interface |
-
-
-
-
- Returns
- RTP session object
-
- Return values
-
-
-
-
-
diff --git a/docs/html/classuvgrtp_1_1media__stream-members.html b/docs/html/classuvgrtp_1_1media__stream-members.html
index 5b134c9..1eae7a0 100644
--- a/docs/html/classuvgrtp_1_1media__stream-members.html
+++ b/docs/html/classuvgrtp_1_1media__stream-members.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -82,7 +82,7 @@ $(function() {
add_srtp_ctx(uint8_t *key, uint8_t *salt) | uvgrtp::media_stream | |
configure_ctx(int rcc_flag, ssize_t value) | uvgrtp::media_stream | |
- get_ipv6() const (defined in uvgrtp::media_stream) | uvgrtp::media_stream | |
+ get_configuration_value(int rcc_flag) | uvgrtp::media_stream | |
get_rtcp() | uvgrtp::media_stream | |
get_ssrc() const | uvgrtp::media_stream | |
install_receive_hook(void *arg, void(*hook)(void *, uvgrtp::frame::rtp_frame *)) | uvgrtp::media_stream | |
@@ -94,6 +94,7 @@ $(function() {
push_frame(uint8_t *data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags) | uvgrtp::media_stream | |
push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, uint32_t ts, int rtp_flags) | uvgrtp::media_stream | |
push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags) | uvgrtp::media_stream | |
+ start_zrtp() | uvgrtp::media_stream | |
@@ -141,7 +141,7 @@ rtp_error_t remove_send_ap
You can use the APP packet to test new RTCP packet types using the send_app_packet()-function. The APP packets are added to these periodically sent compound packets.
See RFC 3550 section 6 for more details.
-Definition at line 118 of file rtcp.hh.
+Definition at line 120 of file rtcp.hh.
◆ install_app_hook() [1/2]
@@ -484,6 +484,39 @@ rtp_error_t | remove_send_ap
+
+
+
+◆ remove_send_app_hook()
+
+
+
+
+
+ rtp_error_t uvgrtp::rtcp::remove_send_app_hook |
+ ( |
+ std::string |
+ app_name | ) |
+ |
+
+
+
+
+ Remove a hook for sending APP packets *.
+ - Parameters
-
+
+ app_name | name of the APP packet hook. Max 4 chars |
+
+
+
+ - Return values
-
+
+ RTP_OK | on success |
+ RTP_INVALID_VALUE | if hook with given app_name was not found |
+
+
+
+
@@ -527,7 +560,7 @@ rtp_error_t | remove_send_ap
Send an RTCP APP packet.
- Parameters
-
- name | Name of the APP item, e.g., EMAIL or PHONE |
+ name | Name of the APP item, e.g., STAT, must have a length of four ASCII characters |
subtype | Subtype of the APP item |
payload_len | Length of the payload |
payload | Payload |
diff --git a/docs/html/classuvgrtp_1_1session-members.html b/docs/html/classuvgrtp_1_1session-members.html
index 5bdcce6..596035b 100644
--- a/docs/html/classuvgrtp_1_1session-members.html
+++ b/docs/html/classuvgrtp_1_1session-members.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/classuvgrtp_1_1session.html b/docs/html/classuvgrtp_1_1session.html
index 8599b6e..ff09a07 100644
--- a/docs/html/classuvgrtp_1_1session.html
+++ b/docs/html/classuvgrtp_1_1session.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -102,7 +102,7 @@ Public Member Functions
Provides ZRTP synchronization and can be used to create uvgrtp::media_stream objects.
By itself session does not do anything. The actual RTP streaming is done by media_stream objects, which can be created by session. media_stream corresponds to an RTP session in RFC 3550.
- Definition at line 26 of file session.hh.
+ Definition at line 27 of file session.hh.
◆ create_stream() [1/2]
diff --git a/docs/html/clock_8hh_source.html b/docs/html/clock_8hh_source.html
index 0607167..7126aa3 100644
--- a/docs/html/clock_8hh_source.html
+++ b/docs/html/clock_8hh_source.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/context_8hh_source.html b/docs/html/context_8hh_source.html
index 1813db0..3ea263e 100644
--- a/docs/html/context_8hh_source.html
+++ b/docs/html/context_8hh_source.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -83,46 +83,52 @@ $(function() {
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 77 std::string& get_cname();
-
-
-
-
-
- 90 std::string generate_cname() const;
-
-
-
-
-
-
- 97namespace uvg_rtp = uvgrtp;
-Provides CNAME isolation and can be used to create uvgrtp::session objects.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 78 std::string& get_cname();
+
+
+
+
+
+ 91 std::string generate_cname() const;
+
+
+
+ 95 std::shared_ptr<uvgrtp::socketfactory> sfp_;
+
+
+
+ 99namespace uvg_rtp = uvgrtp;
+Provides CNAME isolation and can be used to create uvgrtp::session objects.
bool crypto_enabled() const Has Crypto++ been included in uvgRTP library.
rtp_error_t destroy_session(uvgrtp::session *session) Destroy RTP session and all of its media streams.
~context() RTP context destructor.
-uvgrtp::session * create_session(std::string remote_addr, std::string local_addr) Create a new RTP session.
uvgrtp::session * create_session(std::string address) Create a new RTP session.
context() RTP context constructor.
-Provides ZRTP synchronization and can be used to create uvgrtp::media_stream objects.
+uvgrtp::session * create_session(std::pair< std::string, std::string > addresses) Create a new RTP session between two IP addresses.
+Provides ZRTP synchronization and can be used to create uvgrtp::media_stream objects.
diff --git a/docs/html/dir_9cba3ccb450b89ac6f0c2a18abcbadf0.html b/docs/html/dir_9cba3ccb450b89ac6f0c2a18abcbadf0.html
index 6ddf74d..4ad5c56 100644
--- a/docs/html/dir_9cba3ccb450b89ac6f0c2a18abcbadf0.html
+++ b/docs/html/dir_9cba3ccb450b89ac6f0c2a18abcbadf0.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html b/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html
index 86b0031..e50e73e 100644
--- a/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html
+++ b/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/dir_e3f96ff476f8286b6e150580a2f7bd74.html b/docs/html/dir_e3f96ff476f8286b6e150580a2f7bd74.html
index 9f5b9a0..fd92f35 100644
--- a/docs/html/dir_e3f96ff476f8286b6e150580a2f7bd74.html
+++ b/docs/html/dir_e3f96ff476f8286b6e150580a2f7bd74.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/files.html b/docs/html/files.html
index 8f24c3b..6ac9e12 100644
--- a/docs/html/files.html
+++ b/docs/html/files.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/frame_8hh_source.html b/docs/html/frame_8hh_source.html
index 22a749a..06768c4 100644
--- a/docs/html/frame_8hh_source.html
+++ b/docs/html/frame_8hh_source.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -103,184 +103,240 @@ $(function() {
26 enum RTCP_FRAME_TYPE {
-
-
-
-
-
-
-
- 34 PACK( struct rtp_header {
-
-
-
-
-
-
-
- 42 uint32_t timestamp = 0;
-
-
-
- 46 PACK( struct ext_header {
-
-
- 49 uint8_t *data = nullptr;
-
-
-
- 54 struct rtp_header header;
- 55 uint32_t *csrc = nullptr;
- 56 struct ext_header *ext = nullptr;
-
- 58 size_t padding_len = 0;
-
-
- 65 uint8_t* payload = nullptr;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 49 PACK( struct rtp_header {
+
+
+
+
+
+
+
+ 57 uint32_t timestamp = 0;
+
+
+
+ 61 PACK( struct ext_header {
+
+
+ 64 uint8_t *data = nullptr;
+
- 68 uint8_t *dgram = nullptr;
- 69 size_t dgram_size = 0;
-
+
+ 69 struct rtp_header header;
+ 70 uint32_t *csrc = nullptr;
+ 71 struct ext_header *ext = nullptr;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 100 uint32_t pkt_cnt = 0;
-
-
-
-
-
- 108 uint8_t fraction = 0;
-
- 110 uint32_t last_seq = 0;
-
-
-
-
-
-
-
-
- 120 std::vector<rtcp_report_block> report_blocks;
-
-
-
-
-
-
- 128 std::vector<rtcp_report_block> report_blocks;
-
-
-
-
-
- 135 uint8_t *data = nullptr;
-
-
-
-
- 141 std::vector<rtcp_sdes_item> items;
-
-
-
-
- 147 std::vector<rtcp_sdes_chunk> chunks;
-
-
-
-
-
- 154 uint8_t name[4] = {0};
- 155 uint8_t *payload = nullptr;
-
-
-
- 160 PACK( struct zrtp_frame {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 181 rtp_frame *alloc_rtp_frame();
- 182 rtp_frame *alloc_rtp_frame( size_t payload_len);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 199 void* alloc_zrtp_frame( size_t payload_size);
-
-
-
-
-
-
- 206 rtp_error_t dealloc_frame(uvgrtp::frame::zrtp_frame* frame);
-
-
-
- 210namespace uvg_rtp = uvgrtp;
-
-size_t payload_len Size of the payload in bytes. Added by uvgRTP to help process the payload.
-
-
-
-
-
-
-
-See RFC 3550 section 6.4.2
-See RFC 3550 section 6.4.1
-
-
-
-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
-
-size_t payload_len Length of the packet payload in bytes added by uvgRTP to help process the frame.
+ 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.
diff --git a/docs/html/functions.html b/docs/html/functions.html
index 84df2fc..daf051d 100644
--- a/docs/html/functions.html
+++ b/docs/html/functions.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -86,7 +86,7 @@ $(function() {
- configure_ctx() : uvgrtp::media_stream
- context() : uvgrtp::context
- count : uvgrtp::frame::rtcp_header
-- create_session() : uvgrtp::context
+- create_session() : uvgrtp::context
- create_stream() : uvgrtp::session
- crypto_enabled() : uvgrtp::context
@@ -98,7 +98,13 @@ $(function() {
+- f -
+
+
- g -
@@ -127,7 +133,7 @@ $(function() {
- p -
diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html
index 5080e77..6e34af1 100644
--- a/docs/html/functions_func.html
+++ b/docs/html/functions_func.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -80,7 +80,7 @@ $(function() {
- c -
@@ -93,6 +93,7 @@ $(function() {
- g -
@@ -116,6 +117,7 @@ $(function() {
- r -
@@ -124,6 +126,7 @@ $(function() {
- send_bye_packet() : uvgrtp::rtcp
- send_sdes_packet() : uvgrtp::rtcp
- set_ts_info() : uvgrtp::rtcp
+- start_zrtp() : uvgrtp::media_stream
diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html
index 6e09b51..f3f34bd 100644
--- a/docs/html/functions_vars.html
+++ b/docs/html/functions_vars.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -73,11 +73,12 @@ $(function() {
- byte_cnt : uvgrtp::frame::rtcp_sender_info
- count : uvgrtp::frame::rtcp_header
+- fmt : uvgrtp::frame::rtcp_header
- length : uvgrtp::frame::rtcp_header
- ntp_lsw : uvgrtp::frame::rtcp_sender_info
- ntp_msw : uvgrtp::frame::rtcp_sender_info
- padding : uvgrtp::frame::rtcp_header
-- payload_len : uvgrtp::frame::rtcp_app_packet, uvgrtp::frame::rtp_frame
+- payload_len : uvgrtp::frame::rtcp_app_packet, uvgrtp::frame::rtcp_fb_packet, uvgrtp::frame::rtp_frame
- pkt_subtype : uvgrtp::frame::rtcp_header
- pkt_type : uvgrtp::frame::rtcp_header
- rtp_ts : uvgrtp::frame::rtcp_sender_info
diff --git a/docs/html/globals.html b/docs/html/globals.html
index 19c1ce1..1fb1767 100644
--- a/docs/html/globals.html
+++ b/docs/html/globals.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -79,6 +79,8 @@ $(function() {
- RCC_FPS_NUMERATOR : util.hh
- RCC_MTU_SIZE : util.hh
- RCC_PKT_MAX_DELAY : util.hh
+- RCC_POLL_TIMEOUT : util.hh
+- RCC_REMOTE_SSRC : util.hh
- RCC_RING_BUFFER_SIZE : util.hh
- RCC_SESSION_BANDWIDTH : util.hh
- RCC_SSRC : util.hh
@@ -93,6 +95,7 @@ $(function() {
- RCE_PACE_FRAGMENT_SENDING : util.hh
- RCE_RECEIVE_ONLY : util.hh
- RCE_RTCP : util.hh
+- RCE_RTCP_MUX : util.hh
- RCE_SEND_ONLY : util.hh
- RCE_SRTP : util.hh
- RCE_SRTP_AUTHENTICATE_RTP : util.hh
@@ -113,6 +116,7 @@ $(function() {
- RTP_ERROR : util.hh
- RTP_FLAGS : util.hh
- RTP_FORMAT : util.hh
+- RTP_FORMAT_ATLAS : util.hh
- RTP_FORMAT_DVI4_32 : util.hh
- RTP_FORMAT_DVI4_441 : util.hh
- RTP_FORMAT_DVI4_64 : util.hh
diff --git a/docs/html/globals_enum.html b/docs/html/globals_enum.html
index 8610f3e..7fd53da 100644
--- a/docs/html/globals_enum.html
+++ b/docs/html/globals_enum.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/globals_eval.html b/docs/html/globals_eval.html
index 3d04d68..044cb7f 100644
--- a/docs/html/globals_eval.html
+++ b/docs/html/globals_eval.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -79,6 +79,8 @@ $(function() {
- RCC_FPS_NUMERATOR : util.hh
- RCC_MTU_SIZE : util.hh
- RCC_PKT_MAX_DELAY : util.hh
+- RCC_POLL_TIMEOUT : util.hh
+- RCC_REMOTE_SSRC : util.hh
- RCC_RING_BUFFER_SIZE : util.hh
- RCC_SESSION_BANDWIDTH : util.hh
- RCC_SSRC : util.hh
@@ -93,6 +95,7 @@ $(function() {
- RCE_PACE_FRAGMENT_SENDING : util.hh
- RCE_RECEIVE_ONLY : util.hh
- RCE_RTCP : util.hh
+- RCE_RTCP_MUX : util.hh
- RCE_SEND_ONLY : util.hh
- RCE_SRTP : util.hh
- RCE_SRTP_AUTHENTICATE_RTP : util.hh
@@ -108,6 +111,7 @@ $(function() {
- RTP_AUTH_TAG_MISMATCH : util.hh
- RTP_BIND_ERROR : util.hh
- RTP_COPY : util.hh
+- RTP_FORMAT_ATLAS : util.hh
- RTP_FORMAT_DVI4_32 : util.hh
- RTP_FORMAT_DVI4_441 : util.hh
- RTP_FORMAT_DVI4_64 : util.hh
diff --git a/docs/html/index.html b/docs/html/index.html
index e937000..92a623d 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -73,22 +73,24 @@ $(function() {
- uvgRTP is an Real-Time Transport Protocol (RTP) library written in C++ with a focus on simple to use and high-efficiency media delivery over the Internet. It features an intuitive and easy-to-use Application Programming Interface (API), built-in support for transporting Versatile Video Coding (VVC), High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC) encoded video and Opus encoded audio. uvgRTP also supports End-to-End Encrypted (E2EE) media delivery using the combination of Secure RTP (SRTP) and ZRTP. According to our measurements uvgRTP is able to reach a goodput of 600 MB/s (4K at 700fps) for HEVC stream when measured in LAN. The CPU usage is relative to the goodput value, and therefore smaller streams have a very small CPU usage.
- uvgRTP is licensed under the permissive BSD 2-Clause License. This cross-platform library can be run on both Linux and Windows operating systems. Mac OS is also supported, but the support relies on community contributions. For SRTP/ZRTP support, uvgRTP uses Crypto++ library.
+ uvgRTP is an Real-Time Transport Protocol (RTP) library written in C++ with a focus on simple to use and high-efficiency media delivery over the Internet. It features an intuitive and easy-to-use Application Programming Interface (API), built-in support for transporting Versatile Video Coding (VVC), High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC) encoded video and Opus encoded audio. uvgRTP also supports End-to-End Encrypted (E2EE) media delivery using the combination of Secure RTP (SRTP) and ZRTP. uvgRTP has been designed to minimize memory operations to reduce its CPU usage and latency.
+ uvgRTP is licensed under the permissive BSD 2-Clause License. This cross-platform library can be run on both Linux and Windows operating systems. Mac OS is also supported, but the support relies on community contributions. For SRTP/ZRTP support, uvgRTP uses the Crypto++ library.
Currently supported specifications:
Notable features
- AVC/HEVC/VVC video streaming, including packetization
+- V3C Atlas streaming, including packetization
- Ready support for many formats which don't need packetization, including Opus
- Delivery encryption with SRTP
- Encryption key negotiation with ZRTP
diff --git a/docs/html/lib_8hh_source.html b/docs/html/lib_8hh_source.html
index 2edd0b7..64b75fc 100644
--- a/docs/html/lib_8hh_source.html
+++ b/docs/html/lib_8hh_source.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/media__stream_8hh_source.html b/docs/html/media__stream_8hh_source.html
index 0ea576a..2f32be7 100644
--- a/docs/html/media__stream_8hh_source.html
+++ b/docs/html/media__stream_8hh_source.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -85,164 +85,184 @@ $(function() {
-
-
- 11#include <sys/socket.h>
- 12#include <netinet/in.h>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 53 media_stream(std::string cname, std::string remote_addr, std::string local_addr, uint16_t src_port, uint16_t dst_port,
- 54 rtp_format_t fmt, int rce_flags);
-
-
-
-
-
-
-
+
+
+
+ 12#include <sys/socket.h>
+ 13#include <netinet/in.h>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 56 media_stream(std::string cname, std::string remote_addr, std::string local_addr, uint16_t src_port, uint16_t dst_port,
+ 57 rtp_format_t fmt, std::shared_ptr<uvgrtp::socketfactory> sfp, int rce_flags);
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+ 67 rtp_error_t init(std::shared_ptr<uvgrtp::zrtp> zrtp);
+
+
+
-
-
-
- 75 rtp_error_t init(std::shared_ptr<uvgrtp::zrtp> zrtp);
-
-
-
- 118 rtp_error_t push_frame(uint8_t *data, size_t data_len, int rtp_flags);
-
- 142 rtp_error_t push_frame(std::unique_ptr<uint8_t[]> data, size_t data_len, int rtp_flags);
-
- 173 rtp_error_t push_frame(uint8_t *data, size_t data_len, uint32_t ts, int rtp_flags);
-
- 207 rtp_error_t push_frame(uint8_t* data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags);
-
- 238 rtp_error_t push_frame(std::unique_ptr<uint8_t[]> data, size_t data_len, uint32_t ts, int rtp_flags);
-
- 272 rtp_error_t push_frame(std::unique_ptr<uint8_t[]> data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags);
-
-
-
-
-
-
-
-
-
-
-
-
- 331 uint32_t get_key() const;
-
-
-
-
-
-
-
-
-
- 359 rtp_error_t init_connection();
+
+
+
+
+
+
+ 78 rtp_error_t init_auto_zrtp(std::shared_ptr<uvgrtp::zrtp> zrtp);
+
+
+
+
+
+ 138 rtp_error_t push_frame(uint8_t *data, size_t data_len, int rtp_flags);
+
+ 162 rtp_error_t push_frame(std::unique_ptr<uint8_t[]> data, size_t data_len, int rtp_flags);
+
+ 193 rtp_error_t push_frame(uint8_t *data, size_t data_len, uint32_t ts, int rtp_flags);
+
+ 227 rtp_error_t push_frame(uint8_t* data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags);
+
+ 258 rtp_error_t push_frame(std::unique_ptr<uint8_t[]> data, size_t data_len, uint32_t ts, int rtp_flags);
+
+ 292 rtp_error_t push_frame(std::unique_ptr<uint8_t[]> data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- 362 rtp_error_t create_media(rtp_format_t fmt);
-
-
- 365 rtp_error_t free_resources(rtp_error_t ret);
+
+
+
+ 365 uint32_t get_key() const;
- 367 rtp_error_t init_srtp_with_zrtp( int rce_flags, int type, std::shared_ptr<uvgrtp::base_srtp> srtp,
- 368 std::shared_ptr<uvgrtp::zrtp> zrtp);
-
- 370 rtp_error_t start_components();
-
- 372 uint32_t get_default_bandwidth_kbps(rtp_format_t fmt);
-
- 374 bool check_pull_preconditions();
- 375 rtp_error_t check_push_preconditions( int rtp_flags, bool smart_pointer);
-
- 377 inline uint8_t* copy_frame(uint8_t* original, size_t data_len);
-
-
-
- 381 std::shared_ptr<uvgrtp::srtp> srtp_;
- 382 std::shared_ptr<uvgrtp::srtcp> srtcp_;
- 383 std::shared_ptr<uvgrtp::socket> socket_;
- 384 std::shared_ptr<uvgrtp::rtp> rtp_;
- 385 std::shared_ptr<uvgrtp::rtcp> rtcp_;
-
- 387 sockaddr_in remote_sockaddr_;
- 388 sockaddr_in6 remote_sockaddr_ip6_;
- 389 std::string remote_address_;
- 390 std::string local_address_;
-
-
-
-
+
+
+
+
+
+
+
+
+
+ 394 rtp_error_t init_connection();
-
-
+
+ 397 rtp_error_t create_media(rtp_format_t fmt);
-
-
+
+ 400 rtp_error_t free_resources(rtp_error_t ret);
-
- 403 uint32_t rtp_handler_key_;
- 404 uint32_t zrtp_handler_key_;
-
-
- 407 std::unique_ptr<uvgrtp::reception_flow> reception_flow_;
+ 402 rtp_error_t init_srtp_with_zrtp( int rce_flags, int type, std::shared_ptr<uvgrtp::base_srtp> srtp,
+ 403 std::shared_ptr<uvgrtp::zrtp> zrtp);
+
+ 405 rtp_error_t start_components();
+
+ 407 rtp_error_t install_packet_handlers();
-
- 410 std::unique_ptr<uvgrtp::formats::media> media_;
-
-
- 413 std::unique_ptr<uvgrtp::holepuncher> holepuncher_;
-
-
-
- 417 ssize_t fps_numerator_ = 30;
- 418 ssize_t fps_denominator_ = 1;
- 419 uint32_t bandwidth_ = 0;
- 420 std::shared_ptr<std::atomic<std::uint32_t>> ssrc_;
-
-
-
- 424namespace uvg_rtp = uvgrtp;
-
+ 409 uint32_t get_default_bandwidth_kbps(rtp_format_t fmt);
+
+ 411 bool check_pull_preconditions();
+ 412 rtp_error_t check_push_preconditions( int rtp_flags, bool smart_pointer);
+
+ 414 inline uint8_t* copy_frame(uint8_t* original, size_t data_len);
+
+
+
+ 418 std::shared_ptr<uvgrtp::srtp> srtp_;
+ 419 std::shared_ptr<uvgrtp::srtcp> srtcp_;
+ 420 std::shared_ptr<uvgrtp::socket> socket_;
+ 421 std::shared_ptr<uvgrtp::rtp> rtp_;
+ 422 std::shared_ptr<uvgrtp::rtcp> rtcp_;
+ 423 std::shared_ptr<uvgrtp::zrtp> zrtp_;
+
+ 425 std::shared_ptr<uvgrtp::socketfactory> sfp_;
+
+ 427 sockaddr_in remote_sockaddr_;
+ 428 sockaddr_in6 remote_sockaddr_ip6_;
+ 429 std::string remote_address_;
+ 430 std::string local_address_;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 444 std::shared_ptr<uvgrtp::reception_flow> reception_flow_;
+
+
+ 447 std::unique_ptr<uvgrtp::formats::media> media_;
+
+
+ 450 std::unique_ptr<uvgrtp::holepuncher> holepuncher_;
+
+
+
+ 454 ssize_t fps_numerator_ = 30;
+ 455 ssize_t fps_denominator_ = 1;
+ 456 uint32_t bandwidth_ = 0;
+ 457 std::shared_ptr<std::atomic<std::uint32_t>> ssrc_;
+ 458 std::shared_ptr<std::atomic<std::uint32_t>> remote_ssrc_;
+
+
+
+
+
+
+
+
+ 467namespace uvg_rtp = uvgrtp;
+
@@ -252,12 +272,14 @@ $(function() {
+
-RTCP instance handles all incoming and outgoing RTCP traffic, including report generation.
-
+
+RTCP instance handles all incoming and outgoing RTCP traffic, including report generation.
+
diff --git a/docs/html/menudata.js b/docs/html/menudata.js
index 6cf6b73..914348c 100644
--- a/docs/html/menudata.js
+++ b/docs/html/menudata.js
@@ -33,6 +33,7 @@ var menudata={children:[
{text:"b",url:"functions.html#index_b"},
{text:"c",url:"functions.html#index_c"},
{text:"d",url:"functions.html#index_d"},
+{text:"f",url:"functions.html#index_f"},
{text:"g",url:"functions.html#index_g"},
{text:"i",url:"functions.html#index_i"},
{text:"l",url:"functions.html#index_l"},
diff --git a/docs/html/rtcp_8hh_source.html b/docs/html/rtcp_8hh_source.html
index 9f2cfdb..a6cd5d1 100644
--- a/docs/html/rtcp_8hh_source.html
+++ b/docs/html/rtcp_8hh_source.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -105,493 +105,498 @@ $(function() {
-
- 30 typedef std::vector<std::pair<size_t, uint8_t*>> buf_vec;
+
+
-
-
-
-
-
- 38 struct sender_statistics {
-
- 40 uint32_t sent_pkts = 0;
- 41 uint32_t sent_bytes = 0;
- 42 bool sent_rtp_packet = false;
-
-
- 45 struct receiver_statistics {
-
- 47 uint32_t received_pkts = 0;
- 48 uint32_t lost_pkts = 0;
- 49 uint32_t received_bytes = 0;
- 50 bool received_rtp_packet = false;
-
- 52 uint32_t expected_pkts = 0;
- 53 uint32_t received_prior = 0;
- 54 uint32_t expected_prior = 0;
-
-
-
-
-
-
- 61 uint64_t initial_ntp = 0;
- 62 uint32_t initial_rtp = 0;
- 63 uint32_t clock_rate = 0;
-
-
- 66 uvgrtp::clock::hrc::hrc_t sr_ts;
-
-
- 69 uint32_t base_seq = 0;
-
-
-
-
- 74 struct rtcp_participant {
- 75 struct receiver_statistics stats;
-
- 77 uint32_t probation = 0;
-
-
-
-
-
-
-
-
-
-
- 88 struct rtcp_app_packet {
- 89 rtcp_app_packet( const rtcp_app_packet& orig_packet) = delete;
- 90 rtcp_app_packet( const char* name, uint8_t subtype, uint32_t payload_len, std::unique_ptr<uint8_t[]> payload);
-
-
-
-
-
-
- 97 std::unique_ptr<uint8_t[]> payload;
-
-
-
-
- 121 rtcp(std::shared_ptr<uvgrtp::rtp> rtp, std::shared_ptr<std::atomic<std::uint32_t>> ssrc, std::string cname, int rce_flags);
- 122 rtcp(std::shared_ptr<uvgrtp::rtp> rtp, std::shared_ptr<std::atomic<std::uint32_t>> ssrc, std::string cname, std::shared_ptr<uvgrtp::srtcp> srtcp, int rce_flags);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 137 rtp_error_t generate_report();
+ 32 typedef std::vector<std::pair<size_t, uint8_t*>> buf_vec;
+
+
+
+
+
+
+ 40 struct sender_statistics {
+
+ 42 uint32_t sent_pkts = 0;
+ 43 uint32_t sent_bytes = 0;
+ 44 bool sent_rtp_packet = false;
+
+
+ 47 struct receiver_statistics {
+
+ 49 uint32_t received_pkts = 0;
+ 50 uint32_t lost_pkts = 0;
+ 51 uint32_t received_bytes = 0;
+ 52 bool received_rtp_packet = false;
+
+ 54 uint32_t expected_pkts = 0;
+ 55 uint32_t received_prior = 0;
+ 56 uint32_t expected_prior = 0;
+
+
+
+
+
+
+ 63 uint64_t initial_ntp = 0;
+ 64 uint32_t initial_rtp = 0;
+ 65 uint32_t clock_rate = 0;
+
+
+ 68 uvgrtp::clock::hrc::hrc_t sr_ts;
+
+
+ 71 uint32_t base_seq = 0;
+
+
+
+
+ 76 struct rtcp_participant {
+ 77 struct receiver_statistics stats;
+
+ 79 uint32_t probation = 0;
+
+
+
+
+
+
+
+
+
+
+ 90 struct rtcp_app_packet {
+ 91 rtcp_app_packet( const rtcp_app_packet& orig_packet) = delete;
+ 92 rtcp_app_packet( const char* name, uint8_t subtype, uint32_t payload_len, std::unique_ptr<uint8_t[]> payload);
+
+
+
+
+
+
+ 99 std::unique_ptr<uint8_t[]> payload;
+
+
+
+
+ 123 rtcp(std::shared_ptr<uvgrtp::rtp> rtp, std::shared_ptr<std::atomic<std::uint32_t>> ssrc, std::shared_ptr<std::atomic<uint32_t>> remote_ssrc,
+ 124 std::string cname, std::shared_ptr<uvgrtp::socketfactory> sfp, int rce_flags);
+ 125 rtcp(std::shared_ptr<uvgrtp::rtp> rtp, std::shared_ptr<std::atomic<std::uint32_t>> ssrc, std::shared_ptr<std::atomic<uint32_t>> remote_ssrc,
+ 126 std::string cname, std::shared_ptr<uvgrtp::socketfactory> sfp, std::shared_ptr<uvgrtp::srtcp> srtcp, int rce_flags);
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- 143 rtp_error_t handle_incoming_packet(uint8_t *buffer, size_t size);
-
-
-
-
-
-
-
-
-
-
-
- 177 rtp_error_t send_app_packet( const char *name, uint8_t subtype, uint32_t payload_len, const uint8_t *payload);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 141 rtp_error_t generate_report();
+
+
+
+
+
+ 147 rtp_error_t handle_incoming_packet( void* args, int rce_flags, uint8_t* buffer, size_t size, frame::rtp_frame** out);
+
+
+
+
+
+
+
+
+
+
+
+ 181 rtp_error_t send_app_packet( const char *name, uint8_t subtype, uint32_t payload_len, const uint8_t *payload);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- 213 rtp_error_t add_initial_participant(uint32_t clock_rate);
-
-
-
-
-
-
-
-
-
-
-
- 225 rtp_error_t reset_rtcp_state(uint32_t ssrc);
-
-
-
-
-
- 231 uint32_t get_rtcp_interval_ms() const;
-
-
-
-
-
- 237 rtp_error_t set_rtcp_interval_ms(int32_t new_interval);
-
-
-
-
- 242 void set_session_bandwidth(uint32_t kbps);
+
+
+
+
+
+ 217 rtp_error_t add_initial_participant(uint32_t clock_rate);
+
+
+
+
+
+
+
+
+
+
+
+ 229 rtp_error_t reset_rtcp_state(uint32_t ssrc);
+
+
+
+
+
+
+ 236 uint32_t get_rtcp_interval_ms() const;
+
+
+
+ 240 void set_session_bandwidth(uint32_t kbps);
+
+ 242 std::shared_ptr<uvgrtp::socket> get_socket() const;
- 244 std::shared_ptr<uvgrtp::socket> get_socket() const;
-
-
-
-
-
-
-
-
- 253 rtp_error_t set_network_addresses(std::string local_addr, std::string remote_addr,
- 254 uint16_t local_port, uint16_t dst_port, bool ipv6);
-
-
- 257 std::vector<uint32_t> get_participants() const;
-
- 274 void set_ts_info(uint64_t clock_start, uint32_t clock_rate, uint32_t rtp_ts_start);
-
-
-
-
-
-
-
- 302 rtp_error_t install_sender_hook(std::function< void(std::unique_ptr<uvgrtp::frame::rtcp_sender_report>)> sr_handler);
-
-
-
- 326 rtp_error_t install_receiver_hook(std::function< void(std::unique_ptr<uvgrtp::frame::rtcp_receiver_report>)> rr_handler);
-
-
-
- 350 rtp_error_t install_sdes_hook(std::function< void(std::unique_ptr<uvgrtp::frame::rtcp_sdes_packet>)> sdes_handler);
-
-
-
- 374 rtp_error_t install_app_hook(std::function< void(std::unique_ptr<uvgrtp::frame::rtcp_app_packet>)> app_handler);
-
-
- 378 rtp_error_t install_sender_hook(std::function< void(std::shared_ptr<uvgrtp::frame::rtcp_sender_report>)> sr_handler);
- 379 rtp_error_t install_receiver_hook(std::function< void(std::shared_ptr<uvgrtp::frame::rtcp_receiver_report>)> rr_handler);
- 380 rtp_error_t install_sdes_hook(std::function< void(std::shared_ptr<uvgrtp::frame::rtcp_sdes_packet>)> sdes_handler);
- 381 rtp_error_t install_app_hook(std::function< void(std::shared_ptr<uvgrtp::frame::rtcp_app_packet>)> app_handler);
-
- 394 rtp_error_t install_send_app_hook(std::string app_name, std::function<std::unique_ptr<uint8_t[]>(uint8_t& subtype, uint32_t& payload_len)> app_sending_func);
-
-
-
- 405 rtp_error_t remove_send_app_hook(std::string app_name);
-
-
- 409 rtp_error_t update_sender_stats( size_t pkt_size);
-
-
- 412 static rtp_error_t recv_packet_handler( void *arg, int rce_flags, frame::rtp_frame **out);
-
-
- 415 static rtp_error_t send_packet_handler_vec( void *arg, uvgrtp::buf_vec& buffers);
-
-
- 418 size_t rtcp_length_in_bytes(uint16_t length);
-
- 420 void set_payload_size( size_t mtu_size);
-
-
-
- 425 rtp_error_t set_sdes_items( const std::vector<uvgrtp::frame::rtcp_sdes_item>& items);
+
+
+
+
+
+
+
+ 251 rtp_error_t set_network_addresses(std::string local_addr, std::string remote_addr,
+ 252 uint16_t local_port, uint16_t dst_port, bool ipv6);
+
+
+ 255 std::vector<uint32_t> get_participants() const;
+
+ 272 void set_ts_info(uint64_t clock_start, uint32_t clock_rate, uint32_t rtp_ts_start);
+
+
+
+
+
+
+
+ 300 rtp_error_t install_sender_hook(std::function< void(std::unique_ptr<uvgrtp::frame::rtcp_sender_report>)> sr_handler);
+
+
+
+ 324 rtp_error_t install_receiver_hook(std::function< void(std::unique_ptr<uvgrtp::frame::rtcp_receiver_report>)> rr_handler);
+
+
+
+ 348 rtp_error_t install_sdes_hook(std::function< void(std::unique_ptr<uvgrtp::frame::rtcp_sdes_packet>)> sdes_handler);
+
+
+
+ 372 rtp_error_t install_app_hook(std::function< void(std::unique_ptr<uvgrtp::frame::rtcp_app_packet>)> app_handler);
+
+
+ 376 rtp_error_t install_sender_hook(std::function< void(std::shared_ptr<uvgrtp::frame::rtcp_sender_report>)> sr_handler);
+ 377 rtp_error_t install_receiver_hook(std::function< void(std::shared_ptr<uvgrtp::frame::rtcp_receiver_report>)> rr_handler);
+ 378 rtp_error_t install_sdes_hook(std::function< void(std::shared_ptr<uvgrtp::frame::rtcp_sdes_packet>)> sdes_handler);
+ 379 rtp_error_t install_app_hook(std::function< void(std::shared_ptr<uvgrtp::frame::rtcp_app_packet>)> app_handler);
+
+ 392 rtp_error_t install_send_app_hook(std::string app_name, std::function<std::unique_ptr<uint8_t[]>(uint8_t& subtype, uint32_t& payload_len)> app_sending_func);
+
+
+
+
+
+
+ 414 rtp_error_t update_sender_stats( size_t pkt_size);
+
+ 416 void set_socket(std::shared_ptr<uvgrtp::socket> socket);
+
+
+ 419 rtp_error_t recv_packet_handler_common( void *arg, int rce_flags, uint8_t* read_ptr, size_t size, frame::rtp_frame **out);
+
+
+ 422 static rtp_error_t send_packet_handler_vec( void *arg, uvgrtp::buf_vec& buffers);
+
+
+ 425 size_t rtcp_length_in_bytes(uint16_t length);
- 427 uint32_t size_of_ready_app_packets() const;
- 428 uint32_t size_of_apps_from_hook(std::vector< std::shared_ptr<rtcp_app_packet>> packets) const;
+ 427 void set_payload_size( size_t mtu_size);
- 430 uint32_t size_of_compound_packet(uint16_t reports,
- 431 bool sr_packet, bool rr_packet, bool sdes_packet, uint32_t app_size, bool bye_packet) const;
-
-
- 434 void read_rtcp_header( const uint8_t* buffer, size_t& read_ptr,
-
- 436 void read_reports( const uint8_t* buffer, size_t& read_ptr, size_t packet_end, uint8_t count,
- 437 std::vector<uvgrtp::frame::rtcp_report_block>& reports);
-
- 439 void read_ssrc( const uint8_t* buffer, size_t& read_ptr, uint32_t& out_ssrc);
-
-
-
-
- 444 rtp_error_t handle_sender_report_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
-
- 446 rtp_error_t handle_receiver_report_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
-
- 448 rtp_error_t handle_sdes_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
-
- 450 rtp_error_t handle_bye_packet(uint8_t* buffer, size_t& read_ptr,
-
- 452 rtp_error_t handle_app_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
-
-
- 455 static void rtcp_runner( rtcp * rtcp);
-
- 457 static void rtcp_report_reader( rtcp * rtcp);
-
-
-
-
- 462 bool is_participant(uint32_t ssrc) const;
+
+
+ 432 rtp_error_t set_sdes_items( const std::vector<uvgrtp::frame::rtcp_sdes_item>& items);
+
+ 434 uint32_t size_of_ready_app_packets() const;
+ 435 uint32_t size_of_apps_from_hook(std::vector< std::shared_ptr<rtcp_app_packet>> packets) const;
+
+ 437 uint32_t size_of_compound_packet(uint16_t reports,
+ 438 bool sr_packet, bool rr_packet, bool sdes_packet, uint32_t app_size, bool bye_packet) const;
+
+
+ 441 void read_rtcp_header( const uint8_t* buffer, size_t& read_ptr,
+
+ 443 void read_reports( const uint8_t* buffer, size_t& read_ptr, size_t packet_end, uint8_t count,
+ 444 std::vector<uvgrtp::frame::rtcp_report_block>& reports);
+
+ 446 void read_ssrc( const uint8_t* buffer, size_t& read_ptr, uint32_t& out_ssrc);
+
+
+
+
+ 451 rtp_error_t handle_sender_report_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
+
+ 453 rtp_error_t handle_receiver_report_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
+
+ 455 rtp_error_t handle_sdes_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
+
+ 457 rtp_error_t handle_bye_packet(uint8_t* buffer, size_t& read_ptr,
+
+ 459 rtp_error_t handle_app_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
+
+ 461 rtp_error_t handle_fb_packet(uint8_t* buffer, size_t& read_ptr, size_t packet_end,
+
-
-
-
-
-
-
-
- 471 bool collision_detected(uint32_t ssrc) const;
-
-
- 474 rtp_error_t add_participant(uint32_t ssrc);
-
-
-
-
+ 464 static void rtcp_runner( rtcp * rtcp);
+
+
+
+
+ 469 bool is_participant(uint32_t ssrc) const;
+
+
+
+
+
+
+
+
+ 478 bool collision_detected(uint32_t ssrc) const;
-
-
- 482 rtp_error_t init_participant_seq(uint32_t ssrc, uint16_t base_seq);
-
-
-
-
-
-
- 489 rtp_error_t update_participant_seq(uint32_t ssrc, uint16_t seq);
+
+ 481 rtp_error_t add_participant(uint32_t ssrc);
+
+
+
+
+
+
+
+ 489 rtp_error_t init_participant_seq(uint32_t ssrc, uint16_t base_seq);
-
+
-
-
- 495 void update_rtcp_bandwidth( size_t pkt_size);
-
-
-
- 499 void update_avg_rtcp_size(uint64_t packet_size);
-
-
-
-
- 504 double rtcp_interval( int members, int senders,
- 505 double rtcp_bw, bool we_sent, double avg_rtcp_size, bool red_min, bool randomisation);
-
-
-
-
-
- 511 rtp_error_t remove_timeout_ssrc(uint32_t ssrc);
-
-
-
-
- 516 void zero_stats(uvgrtp::sender_statistics *stats);
-
- 518 void zero_stats(uvgrtp::receiver_statistics *stats);
+
+
+
+ 496 rtp_error_t update_participant_seq(uint32_t ssrc, uint16_t seq);
+
+
+
+
+
+ 502 void update_rtcp_bandwidth( size_t pkt_size);
+
+
+
+ 506 void update_avg_rtcp_size(uint64_t packet_size);
+
+
+
+
+ 511 double rtcp_interval( int members, int senders,
+ 512 double rtcp_bw, bool we_sent, double avg_rtcp_size, bool red_min, bool randomisation);
+
+
+
+
+
+ 518 rtp_error_t remove_timeout_ssrc(uint32_t ssrc);
-
- 521 rtp_error_t send_rtcp_packet_to_participants(uint8_t* frame, uint32_t frame_size, bool encrypt);
-
- 523 void free_participant(std::unique_ptr<rtcp_participant> participant);
+
+
+
+ 523 void zero_stats(uvgrtp::sender_statistics *stats);
- 525 void cleanup_participants();
+ 525 void zero_stats(uvgrtp::receiver_statistics *stats);
-
- 528 std::shared_ptr<uvgrtp::srtcp> srtcp_;
+
+ 528 rtp_error_t send_rtcp_packet_to_participants(uint8_t* frame, uint32_t frame_size, bool encrypt);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 546 uint32_t total_bandwidth_;
-
-
-
-
-
- 552 double rtcp_bandwidth_;
-
-
-
- 556 uint32_t reduced_minimum_;
-
-
-
-
-
-
-
-
- 565 std::string local_addr_;
- 566 std::string remote_addr_;
- 567 uint16_t local_port_;
-
+ 530 void free_participant(std::unique_ptr<rtcp_participant> participant);
+
+ 532 void cleanup_participants();
+
+
+ 535 std::shared_ptr<uvgrtp::srtcp> srtcp_;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 553 uint32_t total_bandwidth_;
+
+
+
+
+
+ 559 double rtcp_bandwidth_;
+
+
+
+ 563 uint32_t reduced_minimum_;
+
+
+
+
+
-
-
-
-
-
- 575 size_t avg_rtcp_pkt_pize_;
+
+
+ 572 std::string local_addr_;
+ 573 std::string remote_addr_;
+ 574 uint16_t local_port_;
+
-
-
- 579 uint64_t avg_rtcp_size_;
-
-
-
- 583 size_t rtcp_pkt_count_;
- 584 size_t rtcp_byte_count_;
-
-
- 587 uint32_t rtcp_pkt_sent_count_;
-
-
-
-
+
+
+
+
+
+ 582 size_t avg_rtcp_pkt_pize_;
+
+
+
+ 586 uint64_t avg_rtcp_size_;
+
+
+
+ 590 size_t rtcp_pkt_count_;
+ 591 size_t rtcp_byte_count_;
-
- 594 std::shared_ptr<std::atomic_uint> ssrc_;
+
+ 594 uint32_t rtcp_pkt_sent_count_;
-
- 597 uint64_t clock_start_;
-
-
- 600 uint32_t clock_rate_;
-
-
- 603 uint32_t rtp_ts_start_;
-
- 605 std::map<uint32_t, std::unique_ptr<rtcp_participant>> participants_;
- 606 uint8_t num_receivers_;
-
+
+
+
+
+
+ 601 std::shared_ptr<std::atomic_uint> ssrc_;
+
+
+ 604 std::shared_ptr<std::atomic<uint32_t>> remote_ssrc_;
+
+
+ 607 uint64_t clock_start_;
-
- 610 sockaddr_in socket_address_;
- 611 sockaddr_in6 socket_address_ipv6_;
-
-
-
-
-
- 617 std::map<uint32_t, uint32_t> ms_since_last_rep_;
+
+ 610 uint32_t clock_rate_;
+
+
+ 613 uint32_t rtp_ts_start_;
+
+ 615 std::map<uint32_t, std::unique_ptr<rtcp_participant>> participants_;
+ 616 uint8_t num_receivers_;
+
-
- 620 struct sender_statistics our_stats;
-
-
-
- 624 std::vector<std::unique_ptr<rtcp_participant>> initial_participants_;
-
-
-
-
-
-
-
-
- 633 std::function<void(std::shared_ptr<uvgrtp::frame::rtcp_sender_report>)> sr_hook_f_;
- 634 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_sender_report>)> sr_hook_u_;
- 635 std::function<void(std::shared_ptr<uvgrtp::frame::rtcp_receiver_report>)> rr_hook_f_;
- 636 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_receiver_report>)> rr_hook_u_;
- 637 std::function<void(std::shared_ptr<uvgrtp::frame::rtcp_sdes_packet>)> sdes_hook_f_;
- 638 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_sdes_packet>)> sdes_hook_u_;
- 639 std::function<void(std::shared_ptr<uvgrtp::frame::rtcp_app_packet>)> app_hook_f_;
- 640 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_app_packet>)> app_hook_u_;
-
- 642 std::mutex sr_mutex_;
- 643 std::mutex rr_mutex_;
- 644 std::mutex sdes_mutex_;
- 645 std::mutex app_mutex_;
- 646 mutable std::mutex participants_mutex_;
- 647 std::mutex send_app_mutex_;
-
- 649 std::unique_ptr<std::thread> report_generator_;
- 650 std::unique_ptr<std::thread> report_reader_;
- 651 std::shared_ptr<uvgrtp::socket> rtcp_socket_;
+
+ 620 sockaddr_in socket_address_;
+ 621 sockaddr_in6 socket_address_ipv6_;
+
+
+
+
+
+ 627 std::map<uint32_t, uint32_t> ms_since_last_rep_;
+
+
+ 630 struct sender_statistics our_stats;
+
+
+
+ 634 std::vector<std::unique_ptr<rtcp_participant>> initial_participants_;
+
+
+
+
+
+
+
+
+ 643 std::function<void(std::shared_ptr<uvgrtp::frame::rtcp_sender_report>)> sr_hook_f_;
+ 644 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_sender_report>)> sr_hook_u_;
+ 645 std::function<void(std::shared_ptr<uvgrtp::frame::rtcp_receiver_report>)> rr_hook_f_;
+ 646 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_receiver_report>)> rr_hook_u_;
+ 647 std::function<void(std::shared_ptr<uvgrtp::frame::rtcp_sdes_packet>)> sdes_hook_f_;
+ 648 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_sdes_packet>)> sdes_hook_u_;
+ 649 std::function<void(std::shared_ptr<uvgrtp::frame::rtcp_app_packet>)> app_hook_f_;
+ 650 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_app_packet>)> app_hook_u_;
+ 651 std::function<void(std::unique_ptr<uvgrtp::frame::rtcp_fb_packet>)> fb_hook_u_;
- 653 bool is_active() const
-
-
-
-
-
-
- 660 std::atomic<uint32_t> interval_ms_;
-
- 662 std::shared_ptr<uvgrtp::rtp> rtp_ptr_;
-
- 664 std::mutex packet_mutex_;
+ 653 std::mutex sr_mutex_;
+ 654 std::mutex rr_mutex_;
+ 655 std::mutex sdes_mutex_;
+ 656 std::mutex app_mutex_;
+ 657 std::mutex fb_mutex_;
+ 658 mutable std::mutex participants_mutex_;
+ 659 std::mutex send_app_mutex_;
+
+ 661 std::unique_ptr<std::thread> report_generator_;
+ 662 std::shared_ptr<uvgrtp::socket> rtcp_socket_;
+ 663 std::shared_ptr<uvgrtp::socketfactory> sfp_;
+ 664 std::shared_ptr<uvgrtp::rtcp_reader> rtcp_reader_;
-
- 667 std::vector<uvgrtp::frame::rtcp_sdes_item> ourItems_;
- 668 std::vector<uint32_t> bye_ssrcs_;
-
- 670 std::map<std::string, std::deque<rtcp_app_packet>> app_packets_;
-
- 672 std::multimap<std::string, std::function <std::unique_ptr<uint8_t[]>(uint8_t& subtype, uint32_t& payload_len)>> outgoing_app_hooks_;
-
-
-
+ 666 bool is_active() const
+
+
+
+
+
+
+ 673 std::atomic<uint32_t> interval_ms_;
+
+ 675 std::shared_ptr<uvgrtp::rtp> rtp_ptr_;
-
-
-
-
-
-
-
- 684namespace uvg_rtp = uvgrtp;
-RTCP instance handles all incoming and outgoing RTCP traffic, including report generation.
+ 677 std::mutex packet_mutex_;
+
+
+ 680 std::vector<uvgrtp::frame::rtcp_sdes_item> ourItems_;
+ 681 std::vector<uint32_t> bye_ssrcs_;
+
+ 683 std::map<std::string, std::deque<rtcp_app_packet>> app_packets_;
+
+ 685 std::multimap<std::string, std::function <std::unique_ptr<uint8_t[]>(uint8_t& subtype, uint32_t& payload_len)>> outgoing_app_hooks_;
+
+
+
+
+
+
+
+
+
+ 695namespace uvg_rtp = uvgrtp;
+RTCP instance handles all incoming and outgoing RTCP traffic, including report generation.
rtp_error_t install_receiver_hook(void(*hook)(uvgrtp::frame::rtcp_receiver_report *)) Install an RTCP Receiver Report hook.
rtp_error_t send_app_packet(const char *name, uint8_t subtype, uint32_t payload_len, const uint8_t *payload) Send an RTCP APP packet.
rtp_error_t install_receiver_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_receiver_report >)> rr_handler) Install an RTCP Receiver Report hook.
+rtp_error_t remove_send_app_hook(std::string app_name) Remove a hook for sending APP packets *.
rtp_error_t send_bye_packet(std::vector< uint32_t > ssrcs) Send an RTCP BYE packet.
rtp_error_t install_sdes_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_sdes_packet >)> sdes_handler) Install an RTCP SDES packet hook.
rtp_error_t install_sender_hook(void(*hook)(uvgrtp::frame::rtcp_sender_report *)) Install an RTCP Sender Report hook.
@@ -603,13 +608,13 @@ $(function() {
rtp_error_t install_app_hook(void(*hook)(uvgrtp::frame::rtcp_app_packet *)) Install an RTCP APP packet hook.
rtp_error_t install_send_app_hook(std::string app_name, std::function< std::unique_ptr< uint8_t[]>(uint8_t &subtype, uint32_t &payload_len)> app_sending_func) Install hook for one type of APP packets.
rtp_error_t install_sdes_hook(void(*hook)(uvgrtp::frame::rtcp_sdes_packet *)) Install an RTCP SDES packet hook.
-
-
-See RFC 3550 section 6.4.2
-
-
-See RFC 3550 section 6.4.1
-
+
+
+See RFC 3550 section 6.4.2
+
+
+See RFC 3550 section 6.4.1
+
diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js
index bb8939a..bd1f589 100644
--- a/docs/html/search/all_2.js
+++ b/docs/html/search/all_2.js
@@ -3,7 +3,7 @@ var searchData=
['configure_5fctx_0',['configure_ctx',['../classuvgrtp_1_1media__stream.html#a2cee4fe3bf423ec317b4a3eacc136238',1,'uvgrtp::media_stream']]],
['context_1',['context',['../classuvgrtp_1_1context.html#a98be18c2848404549cfadf910ba1573a',1,'uvgrtp::context::context()'],['../classuvgrtp_1_1context.html',1,'uvgrtp::context']]],
['count_2',['count',['../structuvgrtp_1_1frame_1_1rtcp__header.html#af121a4cae797537270add50efd7a4e3d',1,'uvgrtp::frame::rtcp_header']]],
- ['create_5fsession_3',['create_session',['../classuvgrtp_1_1context.html#a81b2dc23ebf64d1153410376503eccb4',1,'uvgrtp::context::create_session(std::string address)'],['../classuvgrtp_1_1context.html#a7699c9df53e8e7380d755f374d6fc2ce',1,'uvgrtp::context::create_session(std::string remote_addr, std::string local_addr)']]],
+ ['create_5fsession_3',['create_session',['../classuvgrtp_1_1context.html#ae4417159d9b136b2d696fb7571fc3266',1,'uvgrtp::context::create_session(std::pair< std::string, std::string > addresses)'],['../classuvgrtp_1_1context.html#a81b2dc23ebf64d1153410376503eccb4',1,'uvgrtp::context::create_session(std::string address)']]],
['create_5fstream_4',['create_stream',['../classuvgrtp_1_1session.html#a0b9fb48e95cbfdb76fd9f61e8cafe8e4',1,'uvgrtp::session::create_stream(uint16_t src_port, uint16_t dst_port, rtp_format_t fmt, int rce_flags)'],['../classuvgrtp_1_1session.html#a07a96e787de86d902d5c4d6bcb3dc416',1,'uvgrtp::session::create_stream(uint16_t port, rtp_format_t fmt, int rce_flags)']]],
['crypto_5fenabled_5',['crypto_enabled',['../classuvgrtp_1_1context.html#a0ddad3f0a78b6a4b13f2b8fdd15c9087',1,'uvgrtp::context']]]
];
diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js
index fd580dc..67fe1f9 100644
--- a/docs/html/search/all_4.js
+++ b/docs/html/search/all_4.js
@@ -1,5 +1,4 @@
var searchData=
[
- ['get_5frtcp_0',['get_rtcp',['../classuvgrtp_1_1media__stream.html#ab339f15d5a852beacd901b7b78e887ea',1,'uvgrtp::media_stream']]],
- ['get_5fssrc_1',['get_ssrc',['../classuvgrtp_1_1media__stream.html#a8796cb34e0e6c61af8cabd13dd6793b5',1,'uvgrtp::media_stream']]]
+ ['fmt_0',['fmt',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a0ca5bbeb0619b824a07189220d27e3de',1,'uvgrtp::frame::rtcp_header']]]
];
diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js
index 1404b8e..cddedd3 100644
--- a/docs/html/search/all_5.js
+++ b/docs/html/search/all_5.js
@@ -1,9 +1,6 @@
var searchData=
[
- ['install_5fapp_5fhook_0',['install_app_hook',['../classuvgrtp_1_1rtcp.html#a977c99cfaa1442553ab12d4c140bbb0f',1,'uvgrtp::rtcp::install_app_hook(void(*hook)(uvgrtp::frame::rtcp_app_packet *))'],['../classuvgrtp_1_1rtcp.html#a76cb98093acfb54050b50ff82106ca94',1,'uvgrtp::rtcp::install_app_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_app_packet >)> app_handler)']]],
- ['install_5freceive_5fhook_1',['install_receive_hook',['../classuvgrtp_1_1media__stream.html#a74a558b23866976e52c5903996544a27',1,'uvgrtp::media_stream']]],
- ['install_5freceiver_5fhook_2',['install_receiver_hook',['../classuvgrtp_1_1rtcp.html#a04c887fe95173d55294f57d639a1f602',1,'uvgrtp::rtcp::install_receiver_hook(void(*hook)(uvgrtp::frame::rtcp_receiver_report *))'],['../classuvgrtp_1_1rtcp.html#a2140c6bc5160b4b2bfdf54a91af45422',1,'uvgrtp::rtcp::install_receiver_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_receiver_report >)> rr_handler)']]],
- ['install_5fsdes_5fhook_3',['install_sdes_hook',['../classuvgrtp_1_1rtcp.html#ad694a3a869b1c28309e1f2db6d7c2e50',1,'uvgrtp::rtcp::install_sdes_hook(void(*hook)(uvgrtp::frame::rtcp_sdes_packet *))'],['../classuvgrtp_1_1rtcp.html#a35daabdb93e3bdd40b1ea51e6079bd40',1,'uvgrtp::rtcp::install_sdes_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_sdes_packet >)> sdes_handler)']]],
- ['install_5fsend_5fapp_5fhook_4',['install_send_app_hook',['../classuvgrtp_1_1rtcp.html#ad62ad1cc01e3d0808ac8254ce30756a1',1,'uvgrtp::rtcp']]],
- ['install_5fsender_5fhook_5',['install_sender_hook',['../classuvgrtp_1_1rtcp.html#a4a262a814ffa3093ac6829c90b0b3fd1',1,'uvgrtp::rtcp::install_sender_hook(void(*hook)(uvgrtp::frame::rtcp_sender_report *))'],['../classuvgrtp_1_1rtcp.html#a79a46d4dff360019a8a089112998b9eb',1,'uvgrtp::rtcp::install_sender_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_sender_report >)> sr_handler)']]]
+ ['get_5fconfiguration_5fvalue_0',['get_configuration_value',['../classuvgrtp_1_1media__stream.html#acee8dd45e8c6ebbb1af52bb54dd7c40d',1,'uvgrtp::media_stream']]],
+ ['get_5frtcp_1',['get_rtcp',['../classuvgrtp_1_1media__stream.html#ab339f15d5a852beacd901b7b78e887ea',1,'uvgrtp::media_stream']]],
+ ['get_5fssrc_2',['get_ssrc',['../classuvgrtp_1_1media__stream.html#a8796cb34e0e6c61af8cabd13dd6793b5',1,'uvgrtp::media_stream']]]
];
diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js
index bb020cc..1404b8e 100644
--- a/docs/html/search/all_6.js
+++ b/docs/html/search/all_6.js
@@ -1,4 +1,9 @@
var searchData=
[
- ['length_0',['length',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a1ed1871349edce32d60c3b1a33049fd0',1,'uvgrtp::frame::rtcp_header']]]
+ ['install_5fapp_5fhook_0',['install_app_hook',['../classuvgrtp_1_1rtcp.html#a977c99cfaa1442553ab12d4c140bbb0f',1,'uvgrtp::rtcp::install_app_hook(void(*hook)(uvgrtp::frame::rtcp_app_packet *))'],['../classuvgrtp_1_1rtcp.html#a76cb98093acfb54050b50ff82106ca94',1,'uvgrtp::rtcp::install_app_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_app_packet >)> app_handler)']]],
+ ['install_5freceive_5fhook_1',['install_receive_hook',['../classuvgrtp_1_1media__stream.html#a74a558b23866976e52c5903996544a27',1,'uvgrtp::media_stream']]],
+ ['install_5freceiver_5fhook_2',['install_receiver_hook',['../classuvgrtp_1_1rtcp.html#a04c887fe95173d55294f57d639a1f602',1,'uvgrtp::rtcp::install_receiver_hook(void(*hook)(uvgrtp::frame::rtcp_receiver_report *))'],['../classuvgrtp_1_1rtcp.html#a2140c6bc5160b4b2bfdf54a91af45422',1,'uvgrtp::rtcp::install_receiver_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_receiver_report >)> rr_handler)']]],
+ ['install_5fsdes_5fhook_3',['install_sdes_hook',['../classuvgrtp_1_1rtcp.html#ad694a3a869b1c28309e1f2db6d7c2e50',1,'uvgrtp::rtcp::install_sdes_hook(void(*hook)(uvgrtp::frame::rtcp_sdes_packet *))'],['../classuvgrtp_1_1rtcp.html#a35daabdb93e3bdd40b1ea51e6079bd40',1,'uvgrtp::rtcp::install_sdes_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_sdes_packet >)> sdes_handler)']]],
+ ['install_5fsend_5fapp_5fhook_4',['install_send_app_hook',['../classuvgrtp_1_1rtcp.html#ad62ad1cc01e3d0808ac8254ce30756a1',1,'uvgrtp::rtcp']]],
+ ['install_5fsender_5fhook_5',['install_sender_hook',['../classuvgrtp_1_1rtcp.html#a4a262a814ffa3093ac6829c90b0b3fd1',1,'uvgrtp::rtcp::install_sender_hook(void(*hook)(uvgrtp::frame::rtcp_sender_report *))'],['../classuvgrtp_1_1rtcp.html#a79a46d4dff360019a8a089112998b9eb',1,'uvgrtp::rtcp::install_sender_hook(std::function< void(std::unique_ptr< uvgrtp::frame::rtcp_sender_report >)> sr_handler)']]]
];
diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js
index 31f7351..bb020cc 100644
--- a/docs/html/search/all_7.js
+++ b/docs/html/search/all_7.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['media_5fstream_0',['media_stream',['../classuvgrtp_1_1media__stream.html',1,'uvgrtp']]]
+ ['length_0',['length',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a1ed1871349edce32d60c3b1a33049fd0',1,'uvgrtp::frame::rtcp_header']]]
];
diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js
index bcd8834..31f7351 100644
--- a/docs/html/search/all_8.js
+++ b/docs/html/search/all_8.js
@@ -1,5 +1,4 @@
var searchData=
[
- ['ntp_5flsw_0',['ntp_lsw',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#a7c80f6082983dae0f3a5eea55a7c8ef6',1,'uvgrtp::frame::rtcp_sender_info']]],
- ['ntp_5fmsw_1',['ntp_msw',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#ae22a2bcad293efb1d642762d3eac3143',1,'uvgrtp::frame::rtcp_sender_info']]]
+ ['media_5fstream_0',['media_stream',['../classuvgrtp_1_1media__stream.html',1,'uvgrtp']]]
];
diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js
index f67c698..bcd8834 100644
--- a/docs/html/search/all_9.js
+++ b/docs/html/search/all_9.js
@@ -1,9 +1,5 @@
var searchData=
[
- ['padding_0',['padding',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a4309061d7fae17a13db3d5eea71d6639',1,'uvgrtp::frame::rtcp_header']]],
- ['payload_5flen_1',['payload_len',['../structuvgrtp_1_1frame_1_1rtp__frame.html#a2d158e0aaf23398a8a3b02c95d06e366',1,'uvgrtp::frame::rtp_frame::payload_len()'],['../structuvgrtp_1_1frame_1_1rtcp__app__packet.html#acefa08e5025c52c0e4a0ae14255f6d01',1,'uvgrtp::frame::rtcp_app_packet::payload_len()']]],
- ['pkt_5fsubtype_2',['pkt_subtype',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a829dd160ba7f473f3d6c5ff2d2dae5ab',1,'uvgrtp::frame::rtcp_header']]],
- ['pkt_5ftype_3',['pkt_type',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a08120f0b6526c473c6488803388c7855',1,'uvgrtp::frame::rtcp_header']]],
- ['pull_5fframe_4',['pull_frame',['../classuvgrtp_1_1media__stream.html#ab0c854a4c36572f91008a8e1e49e38bb',1,'uvgrtp::media_stream::pull_frame()'],['../classuvgrtp_1_1media__stream.html#a466067ad9924a52530c62c53c1b397b4',1,'uvgrtp::media_stream::pull_frame(size_t timeout_ms)']]],
- ['push_5fframe_5',['push_frame',['../classuvgrtp_1_1media__stream.html#a157e9973d92b65e82914d4028690c770',1,'uvgrtp::media_stream::push_frame(uint8_t *data, size_t data_len, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#a068a0963e06f789b4e4310a45cbe4409',1,'uvgrtp::media_stream::push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#ac0cb1cf34b639c9ba71b047b3ba26d22',1,'uvgrtp::media_stream::push_frame(uint8_t *data, size_t data_len, uint32_t ts, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#a5577c57f1bdd5b888aa4e8c4f939eba7',1,'uvgrtp::media_stream::push_frame(uint8_t *data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#abe9099254c6bf16f255f5f50441ec9d2',1,'uvgrtp::media_stream::push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, uint32_t ts, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#a56d2a209b2647d0f3ee7948e8cf45438',1,'uvgrtp::media_stream::push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)']]]
+ ['ntp_5flsw_0',['ntp_lsw',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#a7c80f6082983dae0f3a5eea55a7c8ef6',1,'uvgrtp::frame::rtcp_sender_info']]],
+ ['ntp_5fmsw_1',['ntp_msw',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#ae22a2bcad293efb1d642762d3eac3143',1,'uvgrtp::frame::rtcp_sender_info']]]
];
diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js
index 53e3cb8..a9c442b 100644
--- a/docs/html/search/all_a.js
+++ b/docs/html/search/all_a.js
@@ -1,99 +1,9 @@
var searchData=
[
- ['rcc_5fclock_5frate_0',['RCC_CLOCK_RATE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587faece26b6edb4fc1fe6733b8fec0504b99',1,'util.hh']]],
- ['rcc_5fdyn_5fpayload_5ftype_1',['RCC_DYN_PAYLOAD_TYPE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fac758a522806ada30386b262660f30617',1,'util.hh']]],
- ['rcc_5ffps_5fdenominator_2',['RCC_FPS_DENOMINATOR',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9e60e576f72eafe6219cd9f0a9615ce9',1,'util.hh']]],
- ['rcc_5ffps_5fnumerator_3',['RCC_FPS_NUMERATOR',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa51034849ac8a4078f0c3b5198b92ab54',1,'util.hh']]],
- ['rcc_5fmtu_5fsize_4',['RCC_MTU_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa7667fb72b42a2c11991b4879619f9f83',1,'util.hh']]],
- ['rcc_5fpkt_5fmax_5fdelay_5',['RCC_PKT_MAX_DELAY',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa5ac1245e18a420489083adddfa97b135',1,'util.hh']]],
- ['rcc_5fring_5fbuffer_5fsize_6',['RCC_RING_BUFFER_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9be732aa645fc09adde5c84a2d07e0f6',1,'util.hh']]],
- ['rcc_5fsession_5fbandwidth_7',['RCC_SESSION_BANDWIDTH',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9a5a95ba2f189fb0350cbc44ba2b95c7',1,'util.hh']]],
- ['rcc_5fssrc_8',['RCC_SSRC',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fad93dccbcd813299ea0b976d4dea79937',1,'util.hh']]],
- ['rcc_5fudp_5frcv_5fbuf_5fsize_9',['RCC_UDP_RCV_BUF_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fac52afca9d1a8c24b1a788bc5b8524663',1,'util.hh']]],
- ['rcc_5fudp_5fsnd_5fbuf_5fsize_10',['RCC_UDP_SND_BUF_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fad4eba6c62183db35dd4bd0e09ddd107b',1,'util.hh']]],
- ['rce_5ffragment_5fgeneric_11',['RCE_FRAGMENT_GENERIC',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa5b0a8dbb22c20ebe8c0711541fb68a79',1,'util.hh']]],
- ['rce_5fframe_5frate_12',['RCE_FRAME_RATE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afae175f37ce4fdc6e7d9e01d200b8d9abc',1,'util.hh']]],
- ['rce_5fh26x_5fdependency_5fenforcement_13',['RCE_H26X_DEPENDENCY_ENFORCEMENT',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa121da451fe2a4008cec78ac4642399b2',1,'util.hh']]],
- ['rce_5fholepunch_5fkeepalive_14',['RCE_HOLEPUNCH_KEEPALIVE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa8e66f45819774772a0156647d3788a95',1,'util.hh']]],
- ['rce_5fno_5fflags_15',['RCE_NO_FLAGS',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4952226c012292c16fe04477f76e5bcb',1,'util.hh']]],
- ['rce_5fno_5fh26x_5fprepend_5fsc_16',['RCE_NO_H26X_PREPEND_SC',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa877835beb990d36f59f4d9c1d61d2c35',1,'util.hh']]],
- ['rce_5fpace_5ffragment_5fsending_17',['RCE_PACE_FRAGMENT_SENDING',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa836063a6ef3da262d0805cf1571ab35c',1,'util.hh']]],
- ['rce_5freceive_5fonly_18',['RCE_RECEIVE_ONLY',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaf89817eda89d32c43e18ed0645ac4d73',1,'util.hh']]],
- ['rce_5frtcp_19',['RCE_RTCP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afab1342138e5af3f03d6eaf1378382bf3d',1,'util.hh']]],
- ['rce_5fsend_5fonly_20',['RCE_SEND_ONLY',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa6bb67e1962af60c05c6062fb6f1df374',1,'util.hh']]],
- ['rce_5fsrtp_21',['RCE_SRTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaf235cba606675b9c38284ee1a491696b',1,'util.hh']]],
- ['rce_5fsrtp_5fauthenticate_5frtp_22',['RCE_SRTP_AUTHENTICATE_RTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa820625b96886d955bc42e0cbc52cdd1e',1,'util.hh']]],
- ['rce_5fsrtp_5fkeysize_5f192_23',['RCE_SRTP_KEYSIZE_192',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaedeac11cc80833b61b51ae32f787db73',1,'util.hh']]],
- ['rce_5fsrtp_5fkeysize_5f256_24',['RCE_SRTP_KEYSIZE_256',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa163744fe7c054b8396a4a07ae82a80c0',1,'util.hh']]],
- ['rce_5fsrtp_5fkmngmnt_5fuser_25',['RCE_SRTP_KMNGMNT_USER',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4722105b4fd34467a56b8aca8fc03773',1,'util.hh']]],
- ['rce_5fsrtp_5fkmngmnt_5fzrtp_26',['RCE_SRTP_KMNGMNT_ZRTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa40a3deab3893524daf7e057c6dfdaa75',1,'util.hh']]],
- ['rce_5fsrtp_5fnull_5fcipher_27',['RCE_SRTP_NULL_CIPHER',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4ddec7d182cec161d6b582589bc9baba',1,'util.hh']]],
- ['rce_5fsrtp_5freplay_5fprotection_28',['RCE_SRTP_REPLAY_PROTECTION',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaddd5fdb170d7cc194e4165d3f9e9a1c1',1,'util.hh']]],
- ['rce_5fsystem_5fcall_5fclustering_29',['RCE_SYSTEM_CALL_CLUSTERING',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa9e41141dacd18def5ab83e9f671f4263',1,'util.hh']]],
- ['rce_5fzrtp_5fdiffie_5fhellman_5fmode_30',['RCE_ZRTP_DIFFIE_HELLMAN_MODE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4fdf2b1f3f934315158b4204e71f9171',1,'util.hh']]],
- ['rce_5fzrtp_5fmultistream_5fmode_31',['RCE_ZRTP_MULTISTREAM_MODE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa9127265f0b1a1a45bac8e6fa7270a98a',1,'util.hh']]],
- ['remove_5fall_5fhooks_32',['remove_all_hooks',['../classuvgrtp_1_1rtcp.html#a81198428cc697c0c7cbb2a4191f294d8',1,'uvgrtp::rtcp']]],
- ['rtcp_33',['rtcp',['../classuvgrtp_1_1rtcp.html',1,'uvgrtp']]],
- ['rtcp_5fapp_5fpacket_34',['rtcp_app_packet',['../structuvgrtp_1_1frame_1_1rtcp__app__packet.html',1,'uvgrtp::frame']]],
- ['rtcp_5fheader_35',['rtcp_header',['../structuvgrtp_1_1frame_1_1rtcp__header.html',1,'uvgrtp::frame']]],
- ['rtcp_5freceiver_5freport_36',['rtcp_receiver_report',['../structuvgrtp_1_1frame_1_1rtcp__receiver__report.html',1,'uvgrtp::frame']]],
- ['rtcp_5freport_5fblock_37',['rtcp_report_block',['../structuvgrtp_1_1frame_1_1rtcp__report__block.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsdes_5fchunk_38',['rtcp_sdes_chunk',['../structuvgrtp_1_1frame_1_1rtcp__sdes__chunk.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsdes_5fitem_39',['rtcp_sdes_item',['../structuvgrtp_1_1frame_1_1rtcp__sdes__item.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsdes_5fpacket_40',['rtcp_sdes_packet',['../structuvgrtp_1_1frame_1_1rtcp__sdes__packet.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsender_5finfo_41',['rtcp_sender_info',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsender_5freport_42',['rtcp_sender_report',['../structuvgrtp_1_1frame_1_1rtcp__sender__report.html',1,'uvgrtp::frame']]],
- ['rtp_5fauth_5ftag_5fmismatch_43',['RTP_AUTH_TAG_MISMATCH',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba6d62ec0a7250a3db7c0f3a13280ecc65',1,'util.hh']]],
- ['rtp_5fbind_5ferror_44',['RTP_BIND_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba000c0166a0c38686389fc2eba0ddc458',1,'util.hh']]],
- ['rtp_5fcopy_45',['RTP_COPY',['../util_8hh.html#af03a75996471fc531742cd640c7caf2dab1d5797a23c37a33168046a2ae6aef6a',1,'util.hh']]],
- ['rtp_5fctx_5fconfiguration_5fflags_46',['RTP_CTX_CONFIGURATION_FLAGS',['../util_8hh.html#aa98d9238629e33567e73af0d239e587f',1,'util.hh']]],
- ['rtp_5fctx_5fenable_5fflags_47',['RTP_CTX_ENABLE_FLAGS',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2af',1,'util.hh']]],
- ['rtp_5ferror_48',['RTP_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387b',1,'util.hh']]],
- ['rtp_5fflags_49',['RTP_FLAGS',['../util_8hh.html#af03a75996471fc531742cd640c7caf2d',1,'util.hh']]],
- ['rtp_5fformat_50',['RTP_FORMAT',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96',1,'util.hh']]],
- ['rtp_5fformat_5fdvi4_5f32_51',['RTP_FORMAT_DVI4_32',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abf1f20482ba40b0a4161f339978c65c8',1,'util.hh']]],
- ['rtp_5fformat_5fdvi4_5f441_52',['RTP_FORMAT_DVI4_441',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa4e91d147dcc0696bae592e0de3ae295',1,'util.hh']]],
- ['rtp_5fformat_5fdvi4_5f64_53',['RTP_FORMAT_DVI4_64',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ae0cb5522bf562899f9001adeb669f3ef',1,'util.hh']]],
- ['rtp_5fformat_5fdvi4_5f882_54',['RTP_FORMAT_DVI4_882',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abb0d59c256c7ed6b0f78aff67f89ac18',1,'util.hh']]],
- ['rtp_5fformat_5fg722_55',['RTP_FORMAT_G722',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a2240ad1204186f7c34aacfb27673e692',1,'util.hh']]],
- ['rtp_5fformat_5fg723_56',['RTP_FORMAT_G723',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa97d1880bfcfba08dfef863dc82426d1',1,'util.hh']]],
- ['rtp_5fformat_5fg726_5f16_57',['RTP_FORMAT_G726_16',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ae118651d66f3af54be3094e7e71336c7',1,'util.hh']]],
- ['rtp_5fformat_5fg726_5f24_58',['RTP_FORMAT_G726_24',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a8635bcd6f336c19271e7ea20eb9111cf',1,'util.hh']]],
- ['rtp_5fformat_5fg726_5f32_59',['RTP_FORMAT_G726_32',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a266862cd2289619b5c4de4c259a32785',1,'util.hh']]],
- ['rtp_5fformat_5fg726_5f40_60',['RTP_FORMAT_G726_40',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96af260843177efa05d95f98d30499db683',1,'util.hh']]],
- ['rtp_5fformat_5fg728_61',['RTP_FORMAT_G728',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a0f194f13a6b06211c1411caf0a454313',1,'util.hh']]],
- ['rtp_5fformat_5fg729_62',['RTP_FORMAT_G729',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a78da373e5b8fb9a83e28f5b8b715ca19',1,'util.hh']]],
- ['rtp_5fformat_5fg729d_63',['RTP_FORMAT_G729D',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96af2981123dc924d80ed50371625927f58',1,'util.hh']]],
- ['rtp_5fformat_5fg729e_64',['RTP_FORMAT_G729E',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96adba054e696e9d57d316c598618580a63',1,'util.hh']]],
- ['rtp_5fformat_5fgeneric_65',['RTP_FORMAT_GENERIC',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ad4b1be929d880baa2c2ca85c614f61b9',1,'util.hh']]],
- ['rtp_5fformat_5fgsm_66',['RTP_FORMAT_GSM',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa6d4ba4fb63005fac69fa371fdf18a68',1,'util.hh']]],
- ['rtp_5fformat_5fgsm_5fefr_67',['RTP_FORMAT_GSM_EFR',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4e41697a659bea307ca6387330d5b9ed',1,'util.hh']]],
- ['rtp_5fformat_5fh264_68',['RTP_FORMAT_H264',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ad785025a8de9a53f17dc84ec3eed85bd',1,'util.hh']]],
- ['rtp_5fformat_5fh265_69',['RTP_FORMAT_H265',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4ee0ab7d51bf50f8f5a5cb995ecc407b',1,'util.hh']]],
- ['rtp_5fformat_5fh266_70',['RTP_FORMAT_H266',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a0e3d0414b29804783324399c8a42c85d',1,'util.hh']]],
- ['rtp_5fformat_5fl16_5fmono_71',['RTP_FORMAT_L16_MONO',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4c34cf9ef36a41ba3565b0e3f6ea534a',1,'util.hh']]],
- ['rtp_5fformat_5fl16_5fstereo_72',['RTP_FORMAT_L16_STEREO',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a1de81aee545949cf4609fe3cca3ab1b8',1,'util.hh']]],
- ['rtp_5fformat_5fl8_73',['RTP_FORMAT_L8',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abee7466b11e455f2f2362dc39e61c6a8',1,'util.hh']]],
- ['rtp_5fformat_5flpc_74',['RTP_FORMAT_LPC',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a61c2e69b79b0fd2a8fd0bb24fb359ecd',1,'util.hh']]],
- ['rtp_5fformat_5fopus_75',['RTP_FORMAT_OPUS',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4e6ef095b4645cdc8aef241aad1f974b',1,'util.hh']]],
- ['rtp_5fformat_5fpcma_76',['RTP_FORMAT_PCMA',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a518313e0a5342ff1b5b79ead46791b2e',1,'util.hh']]],
- ['rtp_5fformat_5fpcmu_77',['RTP_FORMAT_PCMU',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a12448ad5b424a2f6d5028a7fd06019b7',1,'util.hh']]],
- ['rtp_5fformat_5fvdvi_78',['RTP_FORMAT_VDVI',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a91525c8b53f821a6644803967be0e3ed',1,'util.hh']]],
- ['rtp_5fframe_79',['rtp_frame',['../structuvgrtp_1_1frame_1_1rtp__frame.html',1,'uvgrtp::frame']]],
- ['rtp_5fgeneric_5ferror_80',['RTP_GENERIC_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bafde486de26be732acf472480e3693b19',1,'util.hh']]],
- ['rtp_5finitialized_81',['RTP_INITIALIZED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0759e9bb74c7a15ef09513547ed5cc2a',1,'util.hh']]],
- ['rtp_5finvalid_5fvalue_82',['RTP_INVALID_VALUE',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba4cdd3c5db294a4f05294b264afbf678b',1,'util.hh']]],
- ['rtp_5fmemory_5ferror_83',['RTP_MEMORY_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bac54e582250aec15bf2aea189ccbb0348',1,'util.hh']]],
- ['rtp_5fno_5fflags_84',['RTP_NO_FLAGS',['../util_8hh.html#af03a75996471fc531742cd640c7caf2da084c095dae54bbbc6d9509568c58f9a6',1,'util.hh']]],
- ['rtp_5fno_5fh26x_5fscl_85',['RTP_NO_H26X_SCL',['../util_8hh.html#af03a75996471fc531742cd640c7caf2dafd917713b62c18d5fa4106e42f3fbde8',1,'util.hh']]],
- ['rtp_5fnot_5ffound_86',['RTP_NOT_FOUND',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0a18f9856d2dd5890bb6ec25e4acf631',1,'util.hh']]],
- ['rtp_5fnot_5finitialized_87',['RTP_NOT_INITIALIZED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba32d67254c4da35568e7007ec3825f98a',1,'util.hh']]],
- ['rtp_5fnot_5fsupported_88',['RTP_NOT_SUPPORTED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba756d5cd372b045f069a493ed2f2cfa22',1,'util.hh']]],
- ['rtp_5fok_89',['RTP_OK',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0d701531b2bb1c027f5e5bcc64ed29e1',1,'util.hh']]],
- ['rtp_5frecv_5ferror_90',['RTP_RECV_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387baa499befa487c22503360adffc590f33b',1,'util.hh']]],
- ['rtp_5fsend_5ferror_91',['RTP_SEND_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba6c47e86944dbed4d33531236a6e28079',1,'util.hh']]],
- ['rtp_5fsocket_5ferror_92',['RTP_SOCKET_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bab392a7774c551eed903855248760ad06',1,'util.hh']]],
- ['rtp_5fssrc_5fcollision_93',['RTP_SSRC_COLLISION',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba80aa5b74c1e252c2ef49e0796d4183d3',1,'util.hh']]],
- ['rtp_5ftimeout_94',['RTP_TIMEOUT',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bacb40716d1ab0663c0cce56f6d03f0902',1,'util.hh']]],
- ['rtp_5fts_95',['rtp_ts',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#a2e9c3d1fe1b522a1d4c6fb4bc1fbdbdf',1,'uvgrtp::frame::rtcp_sender_info']]]
+ ['padding_0',['padding',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a4309061d7fae17a13db3d5eea71d6639',1,'uvgrtp::frame::rtcp_header']]],
+ ['payload_5flen_1',['payload_len',['../structuvgrtp_1_1frame_1_1rtp__frame.html#a2d158e0aaf23398a8a3b02c95d06e366',1,'uvgrtp::frame::rtp_frame::payload_len()'],['../structuvgrtp_1_1frame_1_1rtcp__app__packet.html#acefa08e5025c52c0e4a0ae14255f6d01',1,'uvgrtp::frame::rtcp_app_packet::payload_len()'],['../structuvgrtp_1_1frame_1_1rtcp__fb__packet.html#a03976200a7d64f842778f2880361f981',1,'uvgrtp::frame::rtcp_fb_packet::payload_len()']]],
+ ['pkt_5fsubtype_2',['pkt_subtype',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a829dd160ba7f473f3d6c5ff2d2dae5ab',1,'uvgrtp::frame::rtcp_header']]],
+ ['pkt_5ftype_3',['pkt_type',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a08120f0b6526c473c6488803388c7855',1,'uvgrtp::frame::rtcp_header']]],
+ ['pull_5fframe_4',['pull_frame',['../classuvgrtp_1_1media__stream.html#ab0c854a4c36572f91008a8e1e49e38bb',1,'uvgrtp::media_stream::pull_frame()'],['../classuvgrtp_1_1media__stream.html#a466067ad9924a52530c62c53c1b397b4',1,'uvgrtp::media_stream::pull_frame(size_t timeout_ms)']]],
+ ['push_5fframe_5',['push_frame',['../classuvgrtp_1_1media__stream.html#a157e9973d92b65e82914d4028690c770',1,'uvgrtp::media_stream::push_frame(uint8_t *data, size_t data_len, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#a068a0963e06f789b4e4310a45cbe4409',1,'uvgrtp::media_stream::push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#ac0cb1cf34b639c9ba71b047b3ba26d22',1,'uvgrtp::media_stream::push_frame(uint8_t *data, size_t data_len, uint32_t ts, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#a5577c57f1bdd5b888aa4e8c4f939eba7',1,'uvgrtp::media_stream::push_frame(uint8_t *data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#abe9099254c6bf16f255f5f50441ec9d2',1,'uvgrtp::media_stream::push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, uint32_t ts, int rtp_flags)'],['../classuvgrtp_1_1media__stream.html#a56d2a209b2647d0f3ee7948e8cf45438',1,'uvgrtp::media_stream::push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)']]]
];
diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js
index b94ea99..6e2ab2e 100644
--- a/docs/html/search/all_b.js
+++ b/docs/html/search/all_b.js
@@ -1,8 +1,109 @@
var searchData=
[
- ['send_5fapp_5fpacket_0',['send_app_packet',['../classuvgrtp_1_1rtcp.html#a0c092bca6edda19218a2cb84ed776c34',1,'uvgrtp::rtcp']]],
- ['send_5fbye_5fpacket_1',['send_bye_packet',['../classuvgrtp_1_1rtcp.html#a2b831698320212e382e3d565e62d31c4',1,'uvgrtp::rtcp']]],
- ['send_5fsdes_5fpacket_2',['send_sdes_packet',['../classuvgrtp_1_1rtcp.html#a65680d4ba308fc8cb92fd41f0d313c84',1,'uvgrtp::rtcp']]],
- ['session_3',['session',['../classuvgrtp_1_1session.html',1,'uvgrtp']]],
- ['set_5fts_5finfo_4',['set_ts_info',['../classuvgrtp_1_1rtcp.html#a5d0d06f9b4b7779d96d8d60938627316',1,'uvgrtp::rtcp']]]
+ ['rcc_5fclock_5frate_0',['RCC_CLOCK_RATE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587faece26b6edb4fc1fe6733b8fec0504b99',1,'util.hh']]],
+ ['rcc_5fdyn_5fpayload_5ftype_1',['RCC_DYN_PAYLOAD_TYPE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fac758a522806ada30386b262660f30617',1,'util.hh']]],
+ ['rcc_5ffps_5fdenominator_2',['RCC_FPS_DENOMINATOR',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9e60e576f72eafe6219cd9f0a9615ce9',1,'util.hh']]],
+ ['rcc_5ffps_5fnumerator_3',['RCC_FPS_NUMERATOR',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa51034849ac8a4078f0c3b5198b92ab54',1,'util.hh']]],
+ ['rcc_5fmtu_5fsize_4',['RCC_MTU_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa7667fb72b42a2c11991b4879619f9f83',1,'util.hh']]],
+ ['rcc_5fpkt_5fmax_5fdelay_5',['RCC_PKT_MAX_DELAY',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa5ac1245e18a420489083adddfa97b135',1,'util.hh']]],
+ ['rcc_5fpoll_5ftimeout_6',['RCC_POLL_TIMEOUT',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa97b5a85e591372f65274238d0d1a73f8',1,'util.hh']]],
+ ['rcc_5fremote_5fssrc_7',['RCC_REMOTE_SSRC',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa15b4ff7295eae57338f4c3864c5146b7',1,'util.hh']]],
+ ['rcc_5fring_5fbuffer_5fsize_8',['RCC_RING_BUFFER_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9be732aa645fc09adde5c84a2d07e0f6',1,'util.hh']]],
+ ['rcc_5fsession_5fbandwidth_9',['RCC_SESSION_BANDWIDTH',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9a5a95ba2f189fb0350cbc44ba2b95c7',1,'util.hh']]],
+ ['rcc_5fssrc_10',['RCC_SSRC',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fad93dccbcd813299ea0b976d4dea79937',1,'util.hh']]],
+ ['rcc_5fudp_5frcv_5fbuf_5fsize_11',['RCC_UDP_RCV_BUF_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fac52afca9d1a8c24b1a788bc5b8524663',1,'util.hh']]],
+ ['rcc_5fudp_5fsnd_5fbuf_5fsize_12',['RCC_UDP_SND_BUF_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fad4eba6c62183db35dd4bd0e09ddd107b',1,'util.hh']]],
+ ['rce_5ffragment_5fgeneric_13',['RCE_FRAGMENT_GENERIC',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa5b0a8dbb22c20ebe8c0711541fb68a79',1,'util.hh']]],
+ ['rce_5fframe_5frate_14',['RCE_FRAME_RATE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afae175f37ce4fdc6e7d9e01d200b8d9abc',1,'util.hh']]],
+ ['rce_5fh26x_5fdependency_5fenforcement_15',['RCE_H26X_DEPENDENCY_ENFORCEMENT',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa121da451fe2a4008cec78ac4642399b2',1,'util.hh']]],
+ ['rce_5fholepunch_5fkeepalive_16',['RCE_HOLEPUNCH_KEEPALIVE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa8e66f45819774772a0156647d3788a95',1,'util.hh']]],
+ ['rce_5fno_5fflags_17',['RCE_NO_FLAGS',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4952226c012292c16fe04477f76e5bcb',1,'util.hh']]],
+ ['rce_5fno_5fh26x_5fprepend_5fsc_18',['RCE_NO_H26X_PREPEND_SC',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa877835beb990d36f59f4d9c1d61d2c35',1,'util.hh']]],
+ ['rce_5fpace_5ffragment_5fsending_19',['RCE_PACE_FRAGMENT_SENDING',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa836063a6ef3da262d0805cf1571ab35c',1,'util.hh']]],
+ ['rce_5freceive_5fonly_20',['RCE_RECEIVE_ONLY',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaf89817eda89d32c43e18ed0645ac4d73',1,'util.hh']]],
+ ['rce_5frtcp_21',['RCE_RTCP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afab1342138e5af3f03d6eaf1378382bf3d',1,'util.hh']]],
+ ['rce_5frtcp_5fmux_22',['RCE_RTCP_MUX',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa3dc772b2aab5eae239afae6cef8c68a7',1,'util.hh']]],
+ ['rce_5fsend_5fonly_23',['RCE_SEND_ONLY',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa6bb67e1962af60c05c6062fb6f1df374',1,'util.hh']]],
+ ['rce_5fsrtp_24',['RCE_SRTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaf235cba606675b9c38284ee1a491696b',1,'util.hh']]],
+ ['rce_5fsrtp_5fauthenticate_5frtp_25',['RCE_SRTP_AUTHENTICATE_RTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa820625b96886d955bc42e0cbc52cdd1e',1,'util.hh']]],
+ ['rce_5fsrtp_5fkeysize_5f192_26',['RCE_SRTP_KEYSIZE_192',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaedeac11cc80833b61b51ae32f787db73',1,'util.hh']]],
+ ['rce_5fsrtp_5fkeysize_5f256_27',['RCE_SRTP_KEYSIZE_256',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa163744fe7c054b8396a4a07ae82a80c0',1,'util.hh']]],
+ ['rce_5fsrtp_5fkmngmnt_5fuser_28',['RCE_SRTP_KMNGMNT_USER',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4722105b4fd34467a56b8aca8fc03773',1,'util.hh']]],
+ ['rce_5fsrtp_5fkmngmnt_5fzrtp_29',['RCE_SRTP_KMNGMNT_ZRTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa40a3deab3893524daf7e057c6dfdaa75',1,'util.hh']]],
+ ['rce_5fsrtp_5fnull_5fcipher_30',['RCE_SRTP_NULL_CIPHER',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4ddec7d182cec161d6b582589bc9baba',1,'util.hh']]],
+ ['rce_5fsrtp_5freplay_5fprotection_31',['RCE_SRTP_REPLAY_PROTECTION',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaddd5fdb170d7cc194e4165d3f9e9a1c1',1,'util.hh']]],
+ ['rce_5fsystem_5fcall_5fclustering_32',['RCE_SYSTEM_CALL_CLUSTERING',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa9e41141dacd18def5ab83e9f671f4263',1,'util.hh']]],
+ ['rce_5fzrtp_5fdiffie_5fhellman_5fmode_33',['RCE_ZRTP_DIFFIE_HELLMAN_MODE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4fdf2b1f3f934315158b4204e71f9171',1,'util.hh']]],
+ ['rce_5fzrtp_5fmultistream_5fmode_34',['RCE_ZRTP_MULTISTREAM_MODE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa9127265f0b1a1a45bac8e6fa7270a98a',1,'util.hh']]],
+ ['remove_5fall_5fhooks_35',['remove_all_hooks',['../classuvgrtp_1_1rtcp.html#a81198428cc697c0c7cbb2a4191f294d8',1,'uvgrtp::rtcp']]],
+ ['remove_5fsend_5fapp_5fhook_36',['remove_send_app_hook',['../classuvgrtp_1_1rtcp.html#a27adb6b5965dab3918bd02a2e7a2dfd2',1,'uvgrtp::rtcp']]],
+ ['rtcp_37',['rtcp',['../classuvgrtp_1_1rtcp.html',1,'uvgrtp']]],
+ ['rtcp_5fapp_5fpacket_38',['rtcp_app_packet',['../structuvgrtp_1_1frame_1_1rtcp__app__packet.html',1,'uvgrtp::frame']]],
+ ['rtcp_5ffb_5ffci_39',['rtcp_fb_fci',['../structuvgrtp_1_1frame_1_1rtcp__fb__fci.html',1,'uvgrtp::frame']]],
+ ['rtcp_5ffb_5fpacket_40',['rtcp_fb_packet',['../structuvgrtp_1_1frame_1_1rtcp__fb__packet.html',1,'uvgrtp::frame']]],
+ ['rtcp_5ffir_41',['rtcp_fir',['../structuvgrtp_1_1frame_1_1rtcp__fir.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fheader_42',['rtcp_header',['../structuvgrtp_1_1frame_1_1rtcp__header.html',1,'uvgrtp::frame']]],
+ ['rtcp_5freceiver_5freport_43',['rtcp_receiver_report',['../structuvgrtp_1_1frame_1_1rtcp__receiver__report.html',1,'uvgrtp::frame']]],
+ ['rtcp_5freport_5fblock_44',['rtcp_report_block',['../structuvgrtp_1_1frame_1_1rtcp__report__block.html',1,'uvgrtp::frame']]],
+ ['rtcp_5frpsi_45',['rtcp_rpsi',['../structuvgrtp_1_1frame_1_1rtcp__rpsi.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsdes_5fchunk_46',['rtcp_sdes_chunk',['../structuvgrtp_1_1frame_1_1rtcp__sdes__chunk.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsdes_5fitem_47',['rtcp_sdes_item',['../structuvgrtp_1_1frame_1_1rtcp__sdes__item.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsdes_5fpacket_48',['rtcp_sdes_packet',['../structuvgrtp_1_1frame_1_1rtcp__sdes__packet.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsender_5finfo_49',['rtcp_sender_info',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsender_5freport_50',['rtcp_sender_report',['../structuvgrtp_1_1frame_1_1rtcp__sender__report.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsli_51',['rtcp_sli',['../structuvgrtp_1_1frame_1_1rtcp__sli.html',1,'uvgrtp::frame']]],
+ ['rtp_5fauth_5ftag_5fmismatch_52',['RTP_AUTH_TAG_MISMATCH',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba6d62ec0a7250a3db7c0f3a13280ecc65',1,'util.hh']]],
+ ['rtp_5fbind_5ferror_53',['RTP_BIND_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba000c0166a0c38686389fc2eba0ddc458',1,'util.hh']]],
+ ['rtp_5fcopy_54',['RTP_COPY',['../util_8hh.html#af03a75996471fc531742cd640c7caf2dab1d5797a23c37a33168046a2ae6aef6a',1,'util.hh']]],
+ ['rtp_5fctx_5fconfiguration_5fflags_55',['RTP_CTX_CONFIGURATION_FLAGS',['../util_8hh.html#aa98d9238629e33567e73af0d239e587f',1,'util.hh']]],
+ ['rtp_5fctx_5fenable_5fflags_56',['RTP_CTX_ENABLE_FLAGS',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2af',1,'util.hh']]],
+ ['rtp_5ferror_57',['RTP_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387b',1,'util.hh']]],
+ ['rtp_5fflags_58',['RTP_FLAGS',['../util_8hh.html#af03a75996471fc531742cd640c7caf2d',1,'util.hh']]],
+ ['rtp_5fformat_59',['RTP_FORMAT',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96',1,'util.hh']]],
+ ['rtp_5fformat_5fatlas_60',['RTP_FORMAT_ATLAS',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a81c1df94bbe9478ae6c1ea212c9a20ee',1,'util.hh']]],
+ ['rtp_5fformat_5fdvi4_5f32_61',['RTP_FORMAT_DVI4_32',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abf1f20482ba40b0a4161f339978c65c8',1,'util.hh']]],
+ ['rtp_5fformat_5fdvi4_5f441_62',['RTP_FORMAT_DVI4_441',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa4e91d147dcc0696bae592e0de3ae295',1,'util.hh']]],
+ ['rtp_5fformat_5fdvi4_5f64_63',['RTP_FORMAT_DVI4_64',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ae0cb5522bf562899f9001adeb669f3ef',1,'util.hh']]],
+ ['rtp_5fformat_5fdvi4_5f882_64',['RTP_FORMAT_DVI4_882',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abb0d59c256c7ed6b0f78aff67f89ac18',1,'util.hh']]],
+ ['rtp_5fformat_5fg722_65',['RTP_FORMAT_G722',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a2240ad1204186f7c34aacfb27673e692',1,'util.hh']]],
+ ['rtp_5fformat_5fg723_66',['RTP_FORMAT_G723',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa97d1880bfcfba08dfef863dc82426d1',1,'util.hh']]],
+ ['rtp_5fformat_5fg726_5f16_67',['RTP_FORMAT_G726_16',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ae118651d66f3af54be3094e7e71336c7',1,'util.hh']]],
+ ['rtp_5fformat_5fg726_5f24_68',['RTP_FORMAT_G726_24',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a8635bcd6f336c19271e7ea20eb9111cf',1,'util.hh']]],
+ ['rtp_5fformat_5fg726_5f32_69',['RTP_FORMAT_G726_32',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a266862cd2289619b5c4de4c259a32785',1,'util.hh']]],
+ ['rtp_5fformat_5fg726_5f40_70',['RTP_FORMAT_G726_40',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96af260843177efa05d95f98d30499db683',1,'util.hh']]],
+ ['rtp_5fformat_5fg728_71',['RTP_FORMAT_G728',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a0f194f13a6b06211c1411caf0a454313',1,'util.hh']]],
+ ['rtp_5fformat_5fg729_72',['RTP_FORMAT_G729',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a78da373e5b8fb9a83e28f5b8b715ca19',1,'util.hh']]],
+ ['rtp_5fformat_5fg729d_73',['RTP_FORMAT_G729D',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96af2981123dc924d80ed50371625927f58',1,'util.hh']]],
+ ['rtp_5fformat_5fg729e_74',['RTP_FORMAT_G729E',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96adba054e696e9d57d316c598618580a63',1,'util.hh']]],
+ ['rtp_5fformat_5fgeneric_75',['RTP_FORMAT_GENERIC',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ad4b1be929d880baa2c2ca85c614f61b9',1,'util.hh']]],
+ ['rtp_5fformat_5fgsm_76',['RTP_FORMAT_GSM',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa6d4ba4fb63005fac69fa371fdf18a68',1,'util.hh']]],
+ ['rtp_5fformat_5fgsm_5fefr_77',['RTP_FORMAT_GSM_EFR',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4e41697a659bea307ca6387330d5b9ed',1,'util.hh']]],
+ ['rtp_5fformat_5fh264_78',['RTP_FORMAT_H264',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ad785025a8de9a53f17dc84ec3eed85bd',1,'util.hh']]],
+ ['rtp_5fformat_5fh265_79',['RTP_FORMAT_H265',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4ee0ab7d51bf50f8f5a5cb995ecc407b',1,'util.hh']]],
+ ['rtp_5fformat_5fh266_80',['RTP_FORMAT_H266',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a0e3d0414b29804783324399c8a42c85d',1,'util.hh']]],
+ ['rtp_5fformat_5fl16_5fmono_81',['RTP_FORMAT_L16_MONO',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4c34cf9ef36a41ba3565b0e3f6ea534a',1,'util.hh']]],
+ ['rtp_5fformat_5fl16_5fstereo_82',['RTP_FORMAT_L16_STEREO',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a1de81aee545949cf4609fe3cca3ab1b8',1,'util.hh']]],
+ ['rtp_5fformat_5fl8_83',['RTP_FORMAT_L8',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abee7466b11e455f2f2362dc39e61c6a8',1,'util.hh']]],
+ ['rtp_5fformat_5flpc_84',['RTP_FORMAT_LPC',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a61c2e69b79b0fd2a8fd0bb24fb359ecd',1,'util.hh']]],
+ ['rtp_5fformat_5fopus_85',['RTP_FORMAT_OPUS',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4e6ef095b4645cdc8aef241aad1f974b',1,'util.hh']]],
+ ['rtp_5fformat_5fpcma_86',['RTP_FORMAT_PCMA',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a518313e0a5342ff1b5b79ead46791b2e',1,'util.hh']]],
+ ['rtp_5fformat_5fpcmu_87',['RTP_FORMAT_PCMU',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a12448ad5b424a2f6d5028a7fd06019b7',1,'util.hh']]],
+ ['rtp_5fformat_5fvdvi_88',['RTP_FORMAT_VDVI',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a91525c8b53f821a6644803967be0e3ed',1,'util.hh']]],
+ ['rtp_5fframe_89',['rtp_frame',['../structuvgrtp_1_1frame_1_1rtp__frame.html',1,'uvgrtp::frame']]],
+ ['rtp_5fgeneric_5ferror_90',['RTP_GENERIC_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bafde486de26be732acf472480e3693b19',1,'util.hh']]],
+ ['rtp_5finitialized_91',['RTP_INITIALIZED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0759e9bb74c7a15ef09513547ed5cc2a',1,'util.hh']]],
+ ['rtp_5finvalid_5fvalue_92',['RTP_INVALID_VALUE',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba4cdd3c5db294a4f05294b264afbf678b',1,'util.hh']]],
+ ['rtp_5fmemory_5ferror_93',['RTP_MEMORY_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bac54e582250aec15bf2aea189ccbb0348',1,'util.hh']]],
+ ['rtp_5fno_5fflags_94',['RTP_NO_FLAGS',['../util_8hh.html#af03a75996471fc531742cd640c7caf2da084c095dae54bbbc6d9509568c58f9a6',1,'util.hh']]],
+ ['rtp_5fno_5fh26x_5fscl_95',['RTP_NO_H26X_SCL',['../util_8hh.html#af03a75996471fc531742cd640c7caf2dafd917713b62c18d5fa4106e42f3fbde8',1,'util.hh']]],
+ ['rtp_5fnot_5ffound_96',['RTP_NOT_FOUND',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0a18f9856d2dd5890bb6ec25e4acf631',1,'util.hh']]],
+ ['rtp_5fnot_5finitialized_97',['RTP_NOT_INITIALIZED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba32d67254c4da35568e7007ec3825f98a',1,'util.hh']]],
+ ['rtp_5fnot_5fsupported_98',['RTP_NOT_SUPPORTED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba756d5cd372b045f069a493ed2f2cfa22',1,'util.hh']]],
+ ['rtp_5fok_99',['RTP_OK',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0d701531b2bb1c027f5e5bcc64ed29e1',1,'util.hh']]],
+ ['rtp_5frecv_5ferror_100',['RTP_RECV_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387baa499befa487c22503360adffc590f33b',1,'util.hh']]],
+ ['rtp_5fsend_5ferror_101',['RTP_SEND_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba6c47e86944dbed4d33531236a6e28079',1,'util.hh']]],
+ ['rtp_5fsocket_5ferror_102',['RTP_SOCKET_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bab392a7774c551eed903855248760ad06',1,'util.hh']]],
+ ['rtp_5fssrc_5fcollision_103',['RTP_SSRC_COLLISION',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba80aa5b74c1e252c2ef49e0796d4183d3',1,'util.hh']]],
+ ['rtp_5ftimeout_104',['RTP_TIMEOUT',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bacb40716d1ab0663c0cce56f6d03f0902',1,'util.hh']]],
+ ['rtp_5fts_105',['rtp_ts',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#a2e9c3d1fe1b522a1d4c6fb4bc1fbdbdf',1,'uvgrtp::frame::rtcp_sender_info']]]
];
diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js
index 4d0e506..b8fc87f 100644
--- a/docs/html/search/all_c.js
+++ b/docs/html/search/all_c.js
@@ -1,5 +1,9 @@
var searchData=
[
- ['util_2ehh_0',['util.hh',['../util_8hh.html',1,'']]],
- ['uvgrtp_1',['uvgRTP',['../index.html',1,'']]]
+ ['send_5fapp_5fpacket_0',['send_app_packet',['../classuvgrtp_1_1rtcp.html#a0c092bca6edda19218a2cb84ed776c34',1,'uvgrtp::rtcp']]],
+ ['send_5fbye_5fpacket_1',['send_bye_packet',['../classuvgrtp_1_1rtcp.html#a2b831698320212e382e3d565e62d31c4',1,'uvgrtp::rtcp']]],
+ ['send_5fsdes_5fpacket_2',['send_sdes_packet',['../classuvgrtp_1_1rtcp.html#a65680d4ba308fc8cb92fd41f0d313c84',1,'uvgrtp::rtcp']]],
+ ['session_3',['session',['../classuvgrtp_1_1session.html',1,'uvgrtp']]],
+ ['set_5fts_5finfo_4',['set_ts_info',['../classuvgrtp_1_1rtcp.html#a5d0d06f9b4b7779d96d8d60938627316',1,'uvgrtp::rtcp']]],
+ ['start_5fzrtp_5',['start_zrtp',['../classuvgrtp_1_1media__stream.html#a9e22ebbe9f903abe0fcae267f98cafeb',1,'uvgrtp::media_stream']]]
];
diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js
index bd365c9..4d0e506 100644
--- a/docs/html/search/all_d.js
+++ b/docs/html/search/all_d.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['version_0',['version',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a096fae3005310de937f1dab442c3b9d7',1,'uvgrtp::frame::rtcp_header']]]
+ ['util_2ehh_0',['util.hh',['../util_8hh.html',1,'']]],
+ ['uvgrtp_1',['uvgRTP',['../index.html',1,'']]]
];
diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js
index 24502fa..bd365c9 100644
--- a/docs/html/search/all_e.js
+++ b/docs/html/search/all_e.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['_7econtext_0',['~context',['../classuvgrtp_1_1context.html#a652a201ae11685961267455ab823eb60',1,'uvgrtp::context']]]
+ ['version_0',['version',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a096fae3005310de937f1dab442c3b9d7',1,'uvgrtp::frame::rtcp_header']]]
];
diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js
index 1da4303..e3dcaee 100644
--- a/docs/html/search/classes_2.js
+++ b/docs/html/search/classes_2.js
@@ -2,13 +2,18 @@ var searchData=
[
['rtcp_0',['rtcp',['../classuvgrtp_1_1rtcp.html',1,'uvgrtp']]],
['rtcp_5fapp_5fpacket_1',['rtcp_app_packet',['../structuvgrtp_1_1frame_1_1rtcp__app__packet.html',1,'uvgrtp::frame']]],
- ['rtcp_5fheader_2',['rtcp_header',['../structuvgrtp_1_1frame_1_1rtcp__header.html',1,'uvgrtp::frame']]],
- ['rtcp_5freceiver_5freport_3',['rtcp_receiver_report',['../structuvgrtp_1_1frame_1_1rtcp__receiver__report.html',1,'uvgrtp::frame']]],
- ['rtcp_5freport_5fblock_4',['rtcp_report_block',['../structuvgrtp_1_1frame_1_1rtcp__report__block.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsdes_5fchunk_5',['rtcp_sdes_chunk',['../structuvgrtp_1_1frame_1_1rtcp__sdes__chunk.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsdes_5fitem_6',['rtcp_sdes_item',['../structuvgrtp_1_1frame_1_1rtcp__sdes__item.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsdes_5fpacket_7',['rtcp_sdes_packet',['../structuvgrtp_1_1frame_1_1rtcp__sdes__packet.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsender_5finfo_8',['rtcp_sender_info',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html',1,'uvgrtp::frame']]],
- ['rtcp_5fsender_5freport_9',['rtcp_sender_report',['../structuvgrtp_1_1frame_1_1rtcp__sender__report.html',1,'uvgrtp::frame']]],
- ['rtp_5fframe_10',['rtp_frame',['../structuvgrtp_1_1frame_1_1rtp__frame.html',1,'uvgrtp::frame']]]
+ ['rtcp_5ffb_5ffci_2',['rtcp_fb_fci',['../structuvgrtp_1_1frame_1_1rtcp__fb__fci.html',1,'uvgrtp::frame']]],
+ ['rtcp_5ffb_5fpacket_3',['rtcp_fb_packet',['../structuvgrtp_1_1frame_1_1rtcp__fb__packet.html',1,'uvgrtp::frame']]],
+ ['rtcp_5ffir_4',['rtcp_fir',['../structuvgrtp_1_1frame_1_1rtcp__fir.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fheader_5',['rtcp_header',['../structuvgrtp_1_1frame_1_1rtcp__header.html',1,'uvgrtp::frame']]],
+ ['rtcp_5freceiver_5freport_6',['rtcp_receiver_report',['../structuvgrtp_1_1frame_1_1rtcp__receiver__report.html',1,'uvgrtp::frame']]],
+ ['rtcp_5freport_5fblock_7',['rtcp_report_block',['../structuvgrtp_1_1frame_1_1rtcp__report__block.html',1,'uvgrtp::frame']]],
+ ['rtcp_5frpsi_8',['rtcp_rpsi',['../structuvgrtp_1_1frame_1_1rtcp__rpsi.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsdes_5fchunk_9',['rtcp_sdes_chunk',['../structuvgrtp_1_1frame_1_1rtcp__sdes__chunk.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsdes_5fitem_10',['rtcp_sdes_item',['../structuvgrtp_1_1frame_1_1rtcp__sdes__item.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsdes_5fpacket_11',['rtcp_sdes_packet',['../structuvgrtp_1_1frame_1_1rtcp__sdes__packet.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsender_5finfo_12',['rtcp_sender_info',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsender_5freport_13',['rtcp_sender_report',['../structuvgrtp_1_1frame_1_1rtcp__sender__report.html',1,'uvgrtp::frame']]],
+ ['rtcp_5fsli_14',['rtcp_sli',['../structuvgrtp_1_1frame_1_1rtcp__sli.html',1,'uvgrtp::frame']]],
+ ['rtp_5fframe_15',['rtp_frame',['../structuvgrtp_1_1frame_1_1rtp__frame.html',1,'uvgrtp::frame']]]
];
diff --git a/docs/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js
index 3c7da3f..a1b64b6 100644
--- a/docs/html/search/enumvalues_0.js
+++ b/docs/html/search/enumvalues_0.js
@@ -6,76 +6,80 @@ var searchData=
['rcc_5ffps_5fnumerator_3',['RCC_FPS_NUMERATOR',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa51034849ac8a4078f0c3b5198b92ab54',1,'util.hh']]],
['rcc_5fmtu_5fsize_4',['RCC_MTU_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa7667fb72b42a2c11991b4879619f9f83',1,'util.hh']]],
['rcc_5fpkt_5fmax_5fdelay_5',['RCC_PKT_MAX_DELAY',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa5ac1245e18a420489083adddfa97b135',1,'util.hh']]],
- ['rcc_5fring_5fbuffer_5fsize_6',['RCC_RING_BUFFER_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9be732aa645fc09adde5c84a2d07e0f6',1,'util.hh']]],
- ['rcc_5fsession_5fbandwidth_7',['RCC_SESSION_BANDWIDTH',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9a5a95ba2f189fb0350cbc44ba2b95c7',1,'util.hh']]],
- ['rcc_5fssrc_8',['RCC_SSRC',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fad93dccbcd813299ea0b976d4dea79937',1,'util.hh']]],
- ['rcc_5fudp_5frcv_5fbuf_5fsize_9',['RCC_UDP_RCV_BUF_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fac52afca9d1a8c24b1a788bc5b8524663',1,'util.hh']]],
- ['rcc_5fudp_5fsnd_5fbuf_5fsize_10',['RCC_UDP_SND_BUF_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fad4eba6c62183db35dd4bd0e09ddd107b',1,'util.hh']]],
- ['rce_5ffragment_5fgeneric_11',['RCE_FRAGMENT_GENERIC',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa5b0a8dbb22c20ebe8c0711541fb68a79',1,'util.hh']]],
- ['rce_5fframe_5frate_12',['RCE_FRAME_RATE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afae175f37ce4fdc6e7d9e01d200b8d9abc',1,'util.hh']]],
- ['rce_5fh26x_5fdependency_5fenforcement_13',['RCE_H26X_DEPENDENCY_ENFORCEMENT',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa121da451fe2a4008cec78ac4642399b2',1,'util.hh']]],
- ['rce_5fholepunch_5fkeepalive_14',['RCE_HOLEPUNCH_KEEPALIVE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa8e66f45819774772a0156647d3788a95',1,'util.hh']]],
- ['rce_5fno_5fflags_15',['RCE_NO_FLAGS',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4952226c012292c16fe04477f76e5bcb',1,'util.hh']]],
- ['rce_5fno_5fh26x_5fprepend_5fsc_16',['RCE_NO_H26X_PREPEND_SC',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa877835beb990d36f59f4d9c1d61d2c35',1,'util.hh']]],
- ['rce_5fpace_5ffragment_5fsending_17',['RCE_PACE_FRAGMENT_SENDING',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa836063a6ef3da262d0805cf1571ab35c',1,'util.hh']]],
- ['rce_5freceive_5fonly_18',['RCE_RECEIVE_ONLY',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaf89817eda89d32c43e18ed0645ac4d73',1,'util.hh']]],
- ['rce_5frtcp_19',['RCE_RTCP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afab1342138e5af3f03d6eaf1378382bf3d',1,'util.hh']]],
- ['rce_5fsend_5fonly_20',['RCE_SEND_ONLY',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa6bb67e1962af60c05c6062fb6f1df374',1,'util.hh']]],
- ['rce_5fsrtp_21',['RCE_SRTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaf235cba606675b9c38284ee1a491696b',1,'util.hh']]],
- ['rce_5fsrtp_5fauthenticate_5frtp_22',['RCE_SRTP_AUTHENTICATE_RTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa820625b96886d955bc42e0cbc52cdd1e',1,'util.hh']]],
- ['rce_5fsrtp_5fkeysize_5f192_23',['RCE_SRTP_KEYSIZE_192',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaedeac11cc80833b61b51ae32f787db73',1,'util.hh']]],
- ['rce_5fsrtp_5fkeysize_5f256_24',['RCE_SRTP_KEYSIZE_256',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa163744fe7c054b8396a4a07ae82a80c0',1,'util.hh']]],
- ['rce_5fsrtp_5fkmngmnt_5fuser_25',['RCE_SRTP_KMNGMNT_USER',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4722105b4fd34467a56b8aca8fc03773',1,'util.hh']]],
- ['rce_5fsrtp_5fkmngmnt_5fzrtp_26',['RCE_SRTP_KMNGMNT_ZRTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa40a3deab3893524daf7e057c6dfdaa75',1,'util.hh']]],
- ['rce_5fsrtp_5fnull_5fcipher_27',['RCE_SRTP_NULL_CIPHER',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4ddec7d182cec161d6b582589bc9baba',1,'util.hh']]],
- ['rce_5fsrtp_5freplay_5fprotection_28',['RCE_SRTP_REPLAY_PROTECTION',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaddd5fdb170d7cc194e4165d3f9e9a1c1',1,'util.hh']]],
- ['rce_5fsystem_5fcall_5fclustering_29',['RCE_SYSTEM_CALL_CLUSTERING',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa9e41141dacd18def5ab83e9f671f4263',1,'util.hh']]],
- ['rce_5fzrtp_5fdiffie_5fhellman_5fmode_30',['RCE_ZRTP_DIFFIE_HELLMAN_MODE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4fdf2b1f3f934315158b4204e71f9171',1,'util.hh']]],
- ['rce_5fzrtp_5fmultistream_5fmode_31',['RCE_ZRTP_MULTISTREAM_MODE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa9127265f0b1a1a45bac8e6fa7270a98a',1,'util.hh']]],
- ['rtp_5fauth_5ftag_5fmismatch_32',['RTP_AUTH_TAG_MISMATCH',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba6d62ec0a7250a3db7c0f3a13280ecc65',1,'util.hh']]],
- ['rtp_5fbind_5ferror_33',['RTP_BIND_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba000c0166a0c38686389fc2eba0ddc458',1,'util.hh']]],
- ['rtp_5fcopy_34',['RTP_COPY',['../util_8hh.html#af03a75996471fc531742cd640c7caf2dab1d5797a23c37a33168046a2ae6aef6a',1,'util.hh']]],
- ['rtp_5fformat_5fdvi4_5f32_35',['RTP_FORMAT_DVI4_32',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abf1f20482ba40b0a4161f339978c65c8',1,'util.hh']]],
- ['rtp_5fformat_5fdvi4_5f441_36',['RTP_FORMAT_DVI4_441',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa4e91d147dcc0696bae592e0de3ae295',1,'util.hh']]],
- ['rtp_5fformat_5fdvi4_5f64_37',['RTP_FORMAT_DVI4_64',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ae0cb5522bf562899f9001adeb669f3ef',1,'util.hh']]],
- ['rtp_5fformat_5fdvi4_5f882_38',['RTP_FORMAT_DVI4_882',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abb0d59c256c7ed6b0f78aff67f89ac18',1,'util.hh']]],
- ['rtp_5fformat_5fg722_39',['RTP_FORMAT_G722',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a2240ad1204186f7c34aacfb27673e692',1,'util.hh']]],
- ['rtp_5fformat_5fg723_40',['RTP_FORMAT_G723',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa97d1880bfcfba08dfef863dc82426d1',1,'util.hh']]],
- ['rtp_5fformat_5fg726_5f16_41',['RTP_FORMAT_G726_16',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ae118651d66f3af54be3094e7e71336c7',1,'util.hh']]],
- ['rtp_5fformat_5fg726_5f24_42',['RTP_FORMAT_G726_24',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a8635bcd6f336c19271e7ea20eb9111cf',1,'util.hh']]],
- ['rtp_5fformat_5fg726_5f32_43',['RTP_FORMAT_G726_32',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a266862cd2289619b5c4de4c259a32785',1,'util.hh']]],
- ['rtp_5fformat_5fg726_5f40_44',['RTP_FORMAT_G726_40',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96af260843177efa05d95f98d30499db683',1,'util.hh']]],
- ['rtp_5fformat_5fg728_45',['RTP_FORMAT_G728',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a0f194f13a6b06211c1411caf0a454313',1,'util.hh']]],
- ['rtp_5fformat_5fg729_46',['RTP_FORMAT_G729',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a78da373e5b8fb9a83e28f5b8b715ca19',1,'util.hh']]],
- ['rtp_5fformat_5fg729d_47',['RTP_FORMAT_G729D',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96af2981123dc924d80ed50371625927f58',1,'util.hh']]],
- ['rtp_5fformat_5fg729e_48',['RTP_FORMAT_G729E',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96adba054e696e9d57d316c598618580a63',1,'util.hh']]],
- ['rtp_5fformat_5fgeneric_49',['RTP_FORMAT_GENERIC',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ad4b1be929d880baa2c2ca85c614f61b9',1,'util.hh']]],
- ['rtp_5fformat_5fgsm_50',['RTP_FORMAT_GSM',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa6d4ba4fb63005fac69fa371fdf18a68',1,'util.hh']]],
- ['rtp_5fformat_5fgsm_5fefr_51',['RTP_FORMAT_GSM_EFR',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4e41697a659bea307ca6387330d5b9ed',1,'util.hh']]],
- ['rtp_5fformat_5fh264_52',['RTP_FORMAT_H264',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ad785025a8de9a53f17dc84ec3eed85bd',1,'util.hh']]],
- ['rtp_5fformat_5fh265_53',['RTP_FORMAT_H265',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4ee0ab7d51bf50f8f5a5cb995ecc407b',1,'util.hh']]],
- ['rtp_5fformat_5fh266_54',['RTP_FORMAT_H266',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a0e3d0414b29804783324399c8a42c85d',1,'util.hh']]],
- ['rtp_5fformat_5fl16_5fmono_55',['RTP_FORMAT_L16_MONO',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4c34cf9ef36a41ba3565b0e3f6ea534a',1,'util.hh']]],
- ['rtp_5fformat_5fl16_5fstereo_56',['RTP_FORMAT_L16_STEREO',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a1de81aee545949cf4609fe3cca3ab1b8',1,'util.hh']]],
- ['rtp_5fformat_5fl8_57',['RTP_FORMAT_L8',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abee7466b11e455f2f2362dc39e61c6a8',1,'util.hh']]],
- ['rtp_5fformat_5flpc_58',['RTP_FORMAT_LPC',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a61c2e69b79b0fd2a8fd0bb24fb359ecd',1,'util.hh']]],
- ['rtp_5fformat_5fopus_59',['RTP_FORMAT_OPUS',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4e6ef095b4645cdc8aef241aad1f974b',1,'util.hh']]],
- ['rtp_5fformat_5fpcma_60',['RTP_FORMAT_PCMA',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a518313e0a5342ff1b5b79ead46791b2e',1,'util.hh']]],
- ['rtp_5fformat_5fpcmu_61',['RTP_FORMAT_PCMU',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a12448ad5b424a2f6d5028a7fd06019b7',1,'util.hh']]],
- ['rtp_5fformat_5fvdvi_62',['RTP_FORMAT_VDVI',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a91525c8b53f821a6644803967be0e3ed',1,'util.hh']]],
- ['rtp_5fgeneric_5ferror_63',['RTP_GENERIC_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bafde486de26be732acf472480e3693b19',1,'util.hh']]],
- ['rtp_5finitialized_64',['RTP_INITIALIZED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0759e9bb74c7a15ef09513547ed5cc2a',1,'util.hh']]],
- ['rtp_5finvalid_5fvalue_65',['RTP_INVALID_VALUE',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba4cdd3c5db294a4f05294b264afbf678b',1,'util.hh']]],
- ['rtp_5fmemory_5ferror_66',['RTP_MEMORY_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bac54e582250aec15bf2aea189ccbb0348',1,'util.hh']]],
- ['rtp_5fno_5fflags_67',['RTP_NO_FLAGS',['../util_8hh.html#af03a75996471fc531742cd640c7caf2da084c095dae54bbbc6d9509568c58f9a6',1,'util.hh']]],
- ['rtp_5fno_5fh26x_5fscl_68',['RTP_NO_H26X_SCL',['../util_8hh.html#af03a75996471fc531742cd640c7caf2dafd917713b62c18d5fa4106e42f3fbde8',1,'util.hh']]],
- ['rtp_5fnot_5ffound_69',['RTP_NOT_FOUND',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0a18f9856d2dd5890bb6ec25e4acf631',1,'util.hh']]],
- ['rtp_5fnot_5finitialized_70',['RTP_NOT_INITIALIZED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba32d67254c4da35568e7007ec3825f98a',1,'util.hh']]],
- ['rtp_5fnot_5fsupported_71',['RTP_NOT_SUPPORTED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba756d5cd372b045f069a493ed2f2cfa22',1,'util.hh']]],
- ['rtp_5fok_72',['RTP_OK',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0d701531b2bb1c027f5e5bcc64ed29e1',1,'util.hh']]],
- ['rtp_5frecv_5ferror_73',['RTP_RECV_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387baa499befa487c22503360adffc590f33b',1,'util.hh']]],
- ['rtp_5fsend_5ferror_74',['RTP_SEND_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba6c47e86944dbed4d33531236a6e28079',1,'util.hh']]],
- ['rtp_5fsocket_5ferror_75',['RTP_SOCKET_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bab392a7774c551eed903855248760ad06',1,'util.hh']]],
- ['rtp_5fssrc_5fcollision_76',['RTP_SSRC_COLLISION',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba80aa5b74c1e252c2ef49e0796d4183d3',1,'util.hh']]],
- ['rtp_5ftimeout_77',['RTP_TIMEOUT',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bacb40716d1ab0663c0cce56f6d03f0902',1,'util.hh']]]
+ ['rcc_5fpoll_5ftimeout_6',['RCC_POLL_TIMEOUT',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa97b5a85e591372f65274238d0d1a73f8',1,'util.hh']]],
+ ['rcc_5fremote_5fssrc_7',['RCC_REMOTE_SSRC',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa15b4ff7295eae57338f4c3864c5146b7',1,'util.hh']]],
+ ['rcc_5fring_5fbuffer_5fsize_8',['RCC_RING_BUFFER_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9be732aa645fc09adde5c84a2d07e0f6',1,'util.hh']]],
+ ['rcc_5fsession_5fbandwidth_9',['RCC_SESSION_BANDWIDTH',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fa9a5a95ba2f189fb0350cbc44ba2b95c7',1,'util.hh']]],
+ ['rcc_5fssrc_10',['RCC_SSRC',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fad93dccbcd813299ea0b976d4dea79937',1,'util.hh']]],
+ ['rcc_5fudp_5frcv_5fbuf_5fsize_11',['RCC_UDP_RCV_BUF_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fac52afca9d1a8c24b1a788bc5b8524663',1,'util.hh']]],
+ ['rcc_5fudp_5fsnd_5fbuf_5fsize_12',['RCC_UDP_SND_BUF_SIZE',['../util_8hh.html#aa98d9238629e33567e73af0d239e587fad4eba6c62183db35dd4bd0e09ddd107b',1,'util.hh']]],
+ ['rce_5ffragment_5fgeneric_13',['RCE_FRAGMENT_GENERIC',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa5b0a8dbb22c20ebe8c0711541fb68a79',1,'util.hh']]],
+ ['rce_5fframe_5frate_14',['RCE_FRAME_RATE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afae175f37ce4fdc6e7d9e01d200b8d9abc',1,'util.hh']]],
+ ['rce_5fh26x_5fdependency_5fenforcement_15',['RCE_H26X_DEPENDENCY_ENFORCEMENT',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa121da451fe2a4008cec78ac4642399b2',1,'util.hh']]],
+ ['rce_5fholepunch_5fkeepalive_16',['RCE_HOLEPUNCH_KEEPALIVE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa8e66f45819774772a0156647d3788a95',1,'util.hh']]],
+ ['rce_5fno_5fflags_17',['RCE_NO_FLAGS',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4952226c012292c16fe04477f76e5bcb',1,'util.hh']]],
+ ['rce_5fno_5fh26x_5fprepend_5fsc_18',['RCE_NO_H26X_PREPEND_SC',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa877835beb990d36f59f4d9c1d61d2c35',1,'util.hh']]],
+ ['rce_5fpace_5ffragment_5fsending_19',['RCE_PACE_FRAGMENT_SENDING',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa836063a6ef3da262d0805cf1571ab35c',1,'util.hh']]],
+ ['rce_5freceive_5fonly_20',['RCE_RECEIVE_ONLY',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaf89817eda89d32c43e18ed0645ac4d73',1,'util.hh']]],
+ ['rce_5frtcp_21',['RCE_RTCP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afab1342138e5af3f03d6eaf1378382bf3d',1,'util.hh']]],
+ ['rce_5frtcp_5fmux_22',['RCE_RTCP_MUX',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa3dc772b2aab5eae239afae6cef8c68a7',1,'util.hh']]],
+ ['rce_5fsend_5fonly_23',['RCE_SEND_ONLY',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa6bb67e1962af60c05c6062fb6f1df374',1,'util.hh']]],
+ ['rce_5fsrtp_24',['RCE_SRTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaf235cba606675b9c38284ee1a491696b',1,'util.hh']]],
+ ['rce_5fsrtp_5fauthenticate_5frtp_25',['RCE_SRTP_AUTHENTICATE_RTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa820625b96886d955bc42e0cbc52cdd1e',1,'util.hh']]],
+ ['rce_5fsrtp_5fkeysize_5f192_26',['RCE_SRTP_KEYSIZE_192',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaedeac11cc80833b61b51ae32f787db73',1,'util.hh']]],
+ ['rce_5fsrtp_5fkeysize_5f256_27',['RCE_SRTP_KEYSIZE_256',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa163744fe7c054b8396a4a07ae82a80c0',1,'util.hh']]],
+ ['rce_5fsrtp_5fkmngmnt_5fuser_28',['RCE_SRTP_KMNGMNT_USER',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4722105b4fd34467a56b8aca8fc03773',1,'util.hh']]],
+ ['rce_5fsrtp_5fkmngmnt_5fzrtp_29',['RCE_SRTP_KMNGMNT_ZRTP',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa40a3deab3893524daf7e057c6dfdaa75',1,'util.hh']]],
+ ['rce_5fsrtp_5fnull_5fcipher_30',['RCE_SRTP_NULL_CIPHER',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4ddec7d182cec161d6b582589bc9baba',1,'util.hh']]],
+ ['rce_5fsrtp_5freplay_5fprotection_31',['RCE_SRTP_REPLAY_PROTECTION',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afaddd5fdb170d7cc194e4165d3f9e9a1c1',1,'util.hh']]],
+ ['rce_5fsystem_5fcall_5fclustering_32',['RCE_SYSTEM_CALL_CLUSTERING',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa9e41141dacd18def5ab83e9f671f4263',1,'util.hh']]],
+ ['rce_5fzrtp_5fdiffie_5fhellman_5fmode_33',['RCE_ZRTP_DIFFIE_HELLMAN_MODE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa4fdf2b1f3f934315158b4204e71f9171',1,'util.hh']]],
+ ['rce_5fzrtp_5fmultistream_5fmode_34',['RCE_ZRTP_MULTISTREAM_MODE',['../util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa9127265f0b1a1a45bac8e6fa7270a98a',1,'util.hh']]],
+ ['rtp_5fauth_5ftag_5fmismatch_35',['RTP_AUTH_TAG_MISMATCH',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba6d62ec0a7250a3db7c0f3a13280ecc65',1,'util.hh']]],
+ ['rtp_5fbind_5ferror_36',['RTP_BIND_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba000c0166a0c38686389fc2eba0ddc458',1,'util.hh']]],
+ ['rtp_5fcopy_37',['RTP_COPY',['../util_8hh.html#af03a75996471fc531742cd640c7caf2dab1d5797a23c37a33168046a2ae6aef6a',1,'util.hh']]],
+ ['rtp_5fformat_5fatlas_38',['RTP_FORMAT_ATLAS',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a81c1df94bbe9478ae6c1ea212c9a20ee',1,'util.hh']]],
+ ['rtp_5fformat_5fdvi4_5f32_39',['RTP_FORMAT_DVI4_32',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abf1f20482ba40b0a4161f339978c65c8',1,'util.hh']]],
+ ['rtp_5fformat_5fdvi4_5f441_40',['RTP_FORMAT_DVI4_441',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa4e91d147dcc0696bae592e0de3ae295',1,'util.hh']]],
+ ['rtp_5fformat_5fdvi4_5f64_41',['RTP_FORMAT_DVI4_64',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ae0cb5522bf562899f9001adeb669f3ef',1,'util.hh']]],
+ ['rtp_5fformat_5fdvi4_5f882_42',['RTP_FORMAT_DVI4_882',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abb0d59c256c7ed6b0f78aff67f89ac18',1,'util.hh']]],
+ ['rtp_5fformat_5fg722_43',['RTP_FORMAT_G722',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a2240ad1204186f7c34aacfb27673e692',1,'util.hh']]],
+ ['rtp_5fformat_5fg723_44',['RTP_FORMAT_G723',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa97d1880bfcfba08dfef863dc82426d1',1,'util.hh']]],
+ ['rtp_5fformat_5fg726_5f16_45',['RTP_FORMAT_G726_16',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ae118651d66f3af54be3094e7e71336c7',1,'util.hh']]],
+ ['rtp_5fformat_5fg726_5f24_46',['RTP_FORMAT_G726_24',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a8635bcd6f336c19271e7ea20eb9111cf',1,'util.hh']]],
+ ['rtp_5fformat_5fg726_5f32_47',['RTP_FORMAT_G726_32',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a266862cd2289619b5c4de4c259a32785',1,'util.hh']]],
+ ['rtp_5fformat_5fg726_5f40_48',['RTP_FORMAT_G726_40',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96af260843177efa05d95f98d30499db683',1,'util.hh']]],
+ ['rtp_5fformat_5fg728_49',['RTP_FORMAT_G728',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a0f194f13a6b06211c1411caf0a454313',1,'util.hh']]],
+ ['rtp_5fformat_5fg729_50',['RTP_FORMAT_G729',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a78da373e5b8fb9a83e28f5b8b715ca19',1,'util.hh']]],
+ ['rtp_5fformat_5fg729d_51',['RTP_FORMAT_G729D',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96af2981123dc924d80ed50371625927f58',1,'util.hh']]],
+ ['rtp_5fformat_5fg729e_52',['RTP_FORMAT_G729E',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96adba054e696e9d57d316c598618580a63',1,'util.hh']]],
+ ['rtp_5fformat_5fgeneric_53',['RTP_FORMAT_GENERIC',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ad4b1be929d880baa2c2ca85c614f61b9',1,'util.hh']]],
+ ['rtp_5fformat_5fgsm_54',['RTP_FORMAT_GSM',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96aa6d4ba4fb63005fac69fa371fdf18a68',1,'util.hh']]],
+ ['rtp_5fformat_5fgsm_5fefr_55',['RTP_FORMAT_GSM_EFR',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4e41697a659bea307ca6387330d5b9ed',1,'util.hh']]],
+ ['rtp_5fformat_5fh264_56',['RTP_FORMAT_H264',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96ad785025a8de9a53f17dc84ec3eed85bd',1,'util.hh']]],
+ ['rtp_5fformat_5fh265_57',['RTP_FORMAT_H265',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4ee0ab7d51bf50f8f5a5cb995ecc407b',1,'util.hh']]],
+ ['rtp_5fformat_5fh266_58',['RTP_FORMAT_H266',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a0e3d0414b29804783324399c8a42c85d',1,'util.hh']]],
+ ['rtp_5fformat_5fl16_5fmono_59',['RTP_FORMAT_L16_MONO',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4c34cf9ef36a41ba3565b0e3f6ea534a',1,'util.hh']]],
+ ['rtp_5fformat_5fl16_5fstereo_60',['RTP_FORMAT_L16_STEREO',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a1de81aee545949cf4609fe3cca3ab1b8',1,'util.hh']]],
+ ['rtp_5fformat_5fl8_61',['RTP_FORMAT_L8',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96abee7466b11e455f2f2362dc39e61c6a8',1,'util.hh']]],
+ ['rtp_5fformat_5flpc_62',['RTP_FORMAT_LPC',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a61c2e69b79b0fd2a8fd0bb24fb359ecd',1,'util.hh']]],
+ ['rtp_5fformat_5fopus_63',['RTP_FORMAT_OPUS',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a4e6ef095b4645cdc8aef241aad1f974b',1,'util.hh']]],
+ ['rtp_5fformat_5fpcma_64',['RTP_FORMAT_PCMA',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a518313e0a5342ff1b5b79ead46791b2e',1,'util.hh']]],
+ ['rtp_5fformat_5fpcmu_65',['RTP_FORMAT_PCMU',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a12448ad5b424a2f6d5028a7fd06019b7',1,'util.hh']]],
+ ['rtp_5fformat_5fvdvi_66',['RTP_FORMAT_VDVI',['../util_8hh.html#a313c6640ac5ed9384184a94ec57a9a96a91525c8b53f821a6644803967be0e3ed',1,'util.hh']]],
+ ['rtp_5fgeneric_5ferror_67',['RTP_GENERIC_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bafde486de26be732acf472480e3693b19',1,'util.hh']]],
+ ['rtp_5finitialized_68',['RTP_INITIALIZED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0759e9bb74c7a15ef09513547ed5cc2a',1,'util.hh']]],
+ ['rtp_5finvalid_5fvalue_69',['RTP_INVALID_VALUE',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba4cdd3c5db294a4f05294b264afbf678b',1,'util.hh']]],
+ ['rtp_5fmemory_5ferror_70',['RTP_MEMORY_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bac54e582250aec15bf2aea189ccbb0348',1,'util.hh']]],
+ ['rtp_5fno_5fflags_71',['RTP_NO_FLAGS',['../util_8hh.html#af03a75996471fc531742cd640c7caf2da084c095dae54bbbc6d9509568c58f9a6',1,'util.hh']]],
+ ['rtp_5fno_5fh26x_5fscl_72',['RTP_NO_H26X_SCL',['../util_8hh.html#af03a75996471fc531742cd640c7caf2dafd917713b62c18d5fa4106e42f3fbde8',1,'util.hh']]],
+ ['rtp_5fnot_5ffound_73',['RTP_NOT_FOUND',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0a18f9856d2dd5890bb6ec25e4acf631',1,'util.hh']]],
+ ['rtp_5fnot_5finitialized_74',['RTP_NOT_INITIALIZED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba32d67254c4da35568e7007ec3825f98a',1,'util.hh']]],
+ ['rtp_5fnot_5fsupported_75',['RTP_NOT_SUPPORTED',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba756d5cd372b045f069a493ed2f2cfa22',1,'util.hh']]],
+ ['rtp_5fok_76',['RTP_OK',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba0d701531b2bb1c027f5e5bcc64ed29e1',1,'util.hh']]],
+ ['rtp_5frecv_5ferror_77',['RTP_RECV_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387baa499befa487c22503360adffc590f33b',1,'util.hh']]],
+ ['rtp_5fsend_5ferror_78',['RTP_SEND_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba6c47e86944dbed4d33531236a6e28079',1,'util.hh']]],
+ ['rtp_5fsocket_5ferror_79',['RTP_SOCKET_ERROR',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bab392a7774c551eed903855248760ad06',1,'util.hh']]],
+ ['rtp_5fssrc_5fcollision_80',['RTP_SSRC_COLLISION',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387ba80aa5b74c1e252c2ef49e0796d4183d3',1,'util.hh']]],
+ ['rtp_5ftimeout_81',['RTP_TIMEOUT',['../util_8hh.html#aa6dc3f3578923d1afc40045e4cbe387bacb40716d1ab0663c0cce56f6d03f0902',1,'util.hh']]]
];
diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js
index 777b004..02be1f5 100644
--- a/docs/html/search/functions_1.js
+++ b/docs/html/search/functions_1.js
@@ -2,7 +2,7 @@ var searchData=
[
['configure_5fctx_0',['configure_ctx',['../classuvgrtp_1_1media__stream.html#a2cee4fe3bf423ec317b4a3eacc136238',1,'uvgrtp::media_stream']]],
['context_1',['context',['../classuvgrtp_1_1context.html#a98be18c2848404549cfadf910ba1573a',1,'uvgrtp::context']]],
- ['create_5fsession_2',['create_session',['../classuvgrtp_1_1context.html#a81b2dc23ebf64d1153410376503eccb4',1,'uvgrtp::context::create_session(std::string address)'],['../classuvgrtp_1_1context.html#a7699c9df53e8e7380d755f374d6fc2ce',1,'uvgrtp::context::create_session(std::string remote_addr, std::string local_addr)']]],
+ ['create_5fsession_2',['create_session',['../classuvgrtp_1_1context.html#ae4417159d9b136b2d696fb7571fc3266',1,'uvgrtp::context::create_session(std::pair< std::string, std::string > addresses)'],['../classuvgrtp_1_1context.html#a81b2dc23ebf64d1153410376503eccb4',1,'uvgrtp::context::create_session(std::string address)']]],
['create_5fstream_3',['create_stream',['../classuvgrtp_1_1session.html#a0b9fb48e95cbfdb76fd9f61e8cafe8e4',1,'uvgrtp::session::create_stream(uint16_t src_port, uint16_t dst_port, rtp_format_t fmt, int rce_flags)'],['../classuvgrtp_1_1session.html#a07a96e787de86d902d5c4d6bcb3dc416',1,'uvgrtp::session::create_stream(uint16_t port, rtp_format_t fmt, int rce_flags)']]],
['crypto_5fenabled_4',['crypto_enabled',['../classuvgrtp_1_1context.html#a0ddad3f0a78b6a4b13f2b8fdd15c9087',1,'uvgrtp::context']]]
];
diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js
index fd580dc..cddedd3 100644
--- a/docs/html/search/functions_3.js
+++ b/docs/html/search/functions_3.js
@@ -1,5 +1,6 @@
var searchData=
[
- ['get_5frtcp_0',['get_rtcp',['../classuvgrtp_1_1media__stream.html#ab339f15d5a852beacd901b7b78e887ea',1,'uvgrtp::media_stream']]],
- ['get_5fssrc_1',['get_ssrc',['../classuvgrtp_1_1media__stream.html#a8796cb34e0e6c61af8cabd13dd6793b5',1,'uvgrtp::media_stream']]]
+ ['get_5fconfiguration_5fvalue_0',['get_configuration_value',['../classuvgrtp_1_1media__stream.html#acee8dd45e8c6ebbb1af52bb54dd7c40d',1,'uvgrtp::media_stream']]],
+ ['get_5frtcp_1',['get_rtcp',['../classuvgrtp_1_1media__stream.html#ab339f15d5a852beacd901b7b78e887ea',1,'uvgrtp::media_stream']]],
+ ['get_5fssrc_2',['get_ssrc',['../classuvgrtp_1_1media__stream.html#a8796cb34e0e6c61af8cabd13dd6793b5',1,'uvgrtp::media_stream']]]
];
diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js
index c17e1f3..88e7e70 100644
--- a/docs/html/search/functions_6.js
+++ b/docs/html/search/functions_6.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['remove_5fall_5fhooks_0',['remove_all_hooks',['../classuvgrtp_1_1rtcp.html#a81198428cc697c0c7cbb2a4191f294d8',1,'uvgrtp::rtcp']]]
+ ['remove_5fall_5fhooks_0',['remove_all_hooks',['../classuvgrtp_1_1rtcp.html#a81198428cc697c0c7cbb2a4191f294d8',1,'uvgrtp::rtcp']]],
+ ['remove_5fsend_5fapp_5fhook_1',['remove_send_app_hook',['../classuvgrtp_1_1rtcp.html#a27adb6b5965dab3918bd02a2e7a2dfd2',1,'uvgrtp::rtcp']]]
];
diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js
index f9311bb..49a7187 100644
--- a/docs/html/search/functions_7.js
+++ b/docs/html/search/functions_7.js
@@ -3,5 +3,6 @@ var searchData=
['send_5fapp_5fpacket_0',['send_app_packet',['../classuvgrtp_1_1rtcp.html#a0c092bca6edda19218a2cb84ed776c34',1,'uvgrtp::rtcp']]],
['send_5fbye_5fpacket_1',['send_bye_packet',['../classuvgrtp_1_1rtcp.html#a2b831698320212e382e3d565e62d31c4',1,'uvgrtp::rtcp']]],
['send_5fsdes_5fpacket_2',['send_sdes_packet',['../classuvgrtp_1_1rtcp.html#a65680d4ba308fc8cb92fd41f0d313c84',1,'uvgrtp::rtcp']]],
- ['set_5fts_5finfo_3',['set_ts_info',['../classuvgrtp_1_1rtcp.html#a5d0d06f9b4b7779d96d8d60938627316',1,'uvgrtp::rtcp']]]
+ ['set_5fts_5finfo_3',['set_ts_info',['../classuvgrtp_1_1rtcp.html#a5d0d06f9b4b7779d96d8d60938627316',1,'uvgrtp::rtcp']]],
+ ['start_5fzrtp_4',['start_zrtp',['../classuvgrtp_1_1media__stream.html#a9e22ebbe9f903abe0fcae267f98cafeb',1,'uvgrtp::media_stream']]]
];
diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js
index 88cc1a5..da65e58 100644
--- a/docs/html/search/searchdata.js
+++ b/docs/html/search/searchdata.js
@@ -1,10 +1,10 @@
var indexSectionsWithContent =
{
- 0: "abcdgilmnprsuv~",
+ 0: "abcdfgilmnprsuv~",
1: "cmrs",
2: "u",
3: "acdgiprs~",
- 4: "bclnprv",
+ 4: "bcflnprv",
5: "r",
6: "r",
7: "u"
diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js
index bb020cc..67fe1f9 100644
--- a/docs/html/search/variables_2.js
+++ b/docs/html/search/variables_2.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['length_0',['length',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a1ed1871349edce32d60c3b1a33049fd0',1,'uvgrtp::frame::rtcp_header']]]
+ ['fmt_0',['fmt',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a0ca5bbeb0619b824a07189220d27e3de',1,'uvgrtp::frame::rtcp_header']]]
];
diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js
index bcd8834..bb020cc 100644
--- a/docs/html/search/variables_3.js
+++ b/docs/html/search/variables_3.js
@@ -1,5 +1,4 @@
var searchData=
[
- ['ntp_5flsw_0',['ntp_lsw',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#a7c80f6082983dae0f3a5eea55a7c8ef6',1,'uvgrtp::frame::rtcp_sender_info']]],
- ['ntp_5fmsw_1',['ntp_msw',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#ae22a2bcad293efb1d642762d3eac3143',1,'uvgrtp::frame::rtcp_sender_info']]]
+ ['length_0',['length',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a1ed1871349edce32d60c3b1a33049fd0',1,'uvgrtp::frame::rtcp_header']]]
];
diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js
index 1457a7a..bcd8834 100644
--- a/docs/html/search/variables_4.js
+++ b/docs/html/search/variables_4.js
@@ -1,7 +1,5 @@
var searchData=
[
- ['padding_0',['padding',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a4309061d7fae17a13db3d5eea71d6639',1,'uvgrtp::frame::rtcp_header']]],
- ['payload_5flen_1',['payload_len',['../structuvgrtp_1_1frame_1_1rtp__frame.html#a2d158e0aaf23398a8a3b02c95d06e366',1,'uvgrtp::frame::rtp_frame::payload_len()'],['../structuvgrtp_1_1frame_1_1rtcp__app__packet.html#acefa08e5025c52c0e4a0ae14255f6d01',1,'uvgrtp::frame::rtcp_app_packet::payload_len()']]],
- ['pkt_5fsubtype_2',['pkt_subtype',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a829dd160ba7f473f3d6c5ff2d2dae5ab',1,'uvgrtp::frame::rtcp_header']]],
- ['pkt_5ftype_3',['pkt_type',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a08120f0b6526c473c6488803388c7855',1,'uvgrtp::frame::rtcp_header']]]
+ ['ntp_5flsw_0',['ntp_lsw',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#a7c80f6082983dae0f3a5eea55a7c8ef6',1,'uvgrtp::frame::rtcp_sender_info']]],
+ ['ntp_5fmsw_1',['ntp_msw',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#ae22a2bcad293efb1d642762d3eac3143',1,'uvgrtp::frame::rtcp_sender_info']]]
];
diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js
index 5320a46..d754c68 100644
--- a/docs/html/search/variables_5.js
+++ b/docs/html/search/variables_5.js
@@ -1,4 +1,7 @@
var searchData=
[
- ['rtp_5fts_0',['rtp_ts',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#a2e9c3d1fe1b522a1d4c6fb4bc1fbdbdf',1,'uvgrtp::frame::rtcp_sender_info']]]
+ ['padding_0',['padding',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a4309061d7fae17a13db3d5eea71d6639',1,'uvgrtp::frame::rtcp_header']]],
+ ['payload_5flen_1',['payload_len',['../structuvgrtp_1_1frame_1_1rtp__frame.html#a2d158e0aaf23398a8a3b02c95d06e366',1,'uvgrtp::frame::rtp_frame::payload_len()'],['../structuvgrtp_1_1frame_1_1rtcp__app__packet.html#acefa08e5025c52c0e4a0ae14255f6d01',1,'uvgrtp::frame::rtcp_app_packet::payload_len()'],['../structuvgrtp_1_1frame_1_1rtcp__fb__packet.html#a03976200a7d64f842778f2880361f981',1,'uvgrtp::frame::rtcp_fb_packet::payload_len()']]],
+ ['pkt_5fsubtype_2',['pkt_subtype',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a829dd160ba7f473f3d6c5ff2d2dae5ab',1,'uvgrtp::frame::rtcp_header']]],
+ ['pkt_5ftype_3',['pkt_type',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a08120f0b6526c473c6488803388c7855',1,'uvgrtp::frame::rtcp_header']]]
];
diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js
index bd365c9..5320a46 100644
--- a/docs/html/search/variables_6.js
+++ b/docs/html/search/variables_6.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['version_0',['version',['../structuvgrtp_1_1frame_1_1rtcp__header.html#a096fae3005310de937f1dab442c3b9d7',1,'uvgrtp::frame::rtcp_header']]]
+ ['rtp_5fts_0',['rtp_ts',['../structuvgrtp_1_1frame_1_1rtcp__sender__info.html#a2e9c3d1fe1b522a1d4c6fb4bc1fbdbdf',1,'uvgrtp::frame::rtcp_sender_info']]]
];
diff --git a/docs/html/session_8hh_source.html b/docs/html/session_8hh_source.html
index 4f40137..92792ea 100644
--- a/docs/html/session_8hh_source.html
+++ b/docs/html/session_8hh_source.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -91,47 +91,49 @@ $(function() {
-
-
-
- 29 session(std::string cname, std::string addr);
- 30 session(std::string cname, std::string remote_addr, std::string local_addr);
-
-
-
-
-
-
-
-
-
-
- 105 std::string& get_key();
-
-
-
- 110 std::shared_ptr<uvgrtp::zrtp> zrtp_;
-
- 112 std::string generic_address_;
-
-
- 115 std::string remote_address_;
-
-
- 118 std::string local_address_;
-
-
- 121 std::unordered_map<uint32_t, uvgrtp::media_stream *> streams_;
-
- 123 std::mutex session_mtx_;
-
-
-
-
-
- 129namespace uvg_rtp = uvgrtp;
-
-Provides ZRTP synchronization and can be used to create uvgrtp::media_stream objects.
+
+
+
+
+ 30 session(std::string cname, std::string addr, std::shared_ptr<uvgrtp::socketfactory> sfp);
+ 31 session(std::string cname, std::string remote_addr, std::string local_addr, std::shared_ptr<uvgrtp::socketfactory> sfp);
+
+
+
+
+
+
+
+
+
+
+ 106 std::string& get_key();
+
+
+
+ 111 std::shared_ptr<uvgrtp::zrtp> zrtp_;
+
+ 113 std::string generic_address_;
+
+
+ 116 std::string remote_address_;
+
+
+ 119 std::string local_address_;
+
+
+ 122 std::unordered_map<uint32_t, uvgrtp::media_stream *> streams_;
+
+ 124 std::mutex session_mtx_;
+
+
+ 127 std::shared_ptr<uvgrtp::socketfactory> sf_;
+
+
+
+ 131namespace uvg_rtp = uvgrtp;
+
+Provides ZRTP synchronization and can be used to create uvgrtp::media_stream objects.
uvgrtp::media_stream * create_stream(uint16_t port, rtp_format_t fmt, int rce_flags) Create a unidirectional media_stream for an RTP session.
uvgrtp::media_stream * create_stream(uint16_t src_port, uint16_t dst_port, rtp_format_t fmt, int rce_flags) Create a uni- or bidirectional media stream.
rtp_error_t destroy_stream(uvgrtp::media_stream *stream) Destroy a media stream.
diff --git a/docs/html/structuvgrtp_1_1frame_1_1rtcp__app__packet-members.html b/docs/html/structuvgrtp_1_1frame_1_1rtcp__app__packet-members.html
index d7dea54..51c87d0 100644
--- a/docs/html/structuvgrtp_1_1frame_1_1rtcp__app__packet-members.html
+++ b/docs/html/structuvgrtp_1_1frame_1_1rtcp__app__packet-members.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
diff --git a/docs/html/structuvgrtp_1_1frame_1_1rtcp__app__packet.html b/docs/html/structuvgrtp_1_1frame_1_1rtcp__app__packet.html
index 1c70731..d9c2fd6 100644
--- a/docs/html/structuvgrtp_1_1frame_1_1rtcp__app__packet.html
+++ b/docs/html/structuvgrtp_1_1frame_1_1rtcp__app__packet.html
@@ -21,7 +21,7 @@
- uvgRTP 2.3.0
+ uvgRTP 3.0.0
An open-source library for RTP/SRTP media delivery
|
@@ -103,7 +103,7 @@ Public Attributes
See RFC 3550 section 6.7
- Definition at line 151 of file frame.hh.
+ Definition at line 168 of file frame.hh.
◆ header
@@ -117,7 +117,7 @@ Public Attributes
@@ -133,7 +133,7 @@ Public Attributes
|
Size of the payload in bytes. Added by uvgRTP to help process the payload.
-