2021-02-23 11:46:18 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2022-09-16 12:33:51 +00:00
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "en-US" >
2021-02-23 11:46:18 +00:00
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
2022-09-16 12:33:51 +00:00
< meta http-equiv = "X-UA-Compatible" content = "IE=11" / >
2024-02-20 08:46:32 +00:00
< meta name = "generator" content = "Doxygen 1.10.0" / >
2021-02-23 11:46:18 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > uvgRTP: uvgrtp::rtcp Class Reference< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
2024-02-20 08:46:32 +00:00
< script type = "text/javascript" src = "clipboard.js" > < / script >
< script type = "text/javascript" src = "cookie.js" > < / script >
2021-02-23 11:46:18 +00:00
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
2022-09-16 12:33:51 +00:00
< tr id = "projectrow" >
< td id = "projectalign" >
2024-02-20 11:10:01 +00:00
< div id = "projectname" > uvgRTP< span id = "projectnumber" >   3.1.1< / span >
2021-02-23 11:46:18 +00:00
< / div >
2022-09-16 12:33:51 +00:00
< div id = "projectbrief" > An open-source library for RTP/SRTP media delivery< / div >
2021-02-23 11:46:18 +00:00
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
2024-02-20 08:46:32 +00:00
<!-- Generated by Doxygen 1.10.0 -->
2021-02-23 11:46:18 +00:00
< script type = "text/javascript" >
2022-09-16 12:33:51 +00:00
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
2021-02-23 11:46:18 +00:00
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
2022-09-16 12:33:51 +00:00
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
2021-02-23 11:46:18 +00:00
$(function() {
initMenu('',true,false,'search.php','Search');
2024-02-20 08:46:32 +00:00
$(function() { init_search(); });
2021-02-23 11:46:18 +00:00
});
2022-09-16 12:33:51 +00:00
/* @license-end */
< / script >
2021-02-23 11:46:18 +00:00
< div id = "main-nav" > < / div >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
2022-09-16 12:33:51 +00:00
< div id = "MSearchResults" >
< div class = "SRPage" >
< div id = "SRIndex" >
< div id = "SRResults" > < / div >
< div class = "SRStatus" id = "Loading" > Loading...< / div >
< div class = "SRStatus" id = "Searching" > Searching...< / div >
< div class = "SRStatus" id = "NoMatches" > No Matches< / div >
< / div >
< / div >
< / div >
2021-02-23 11:46:18 +00:00
< / div >
< div id = "nav-path" class = "navpath" >
< ul >
< li class = "navelem" > < b > uvgrtp< / b > < / li > < li class = "navelem" > < a class = "el" href = "classuvgrtp_1_1rtcp.html" > rtcp< / a > < / li > < / ul >
< / div >
< / div > <!-- top -->
< div class = "header" >
< div class = "summary" >
< a href = "#pub-methods" > Public Member Functions< / a > |
< a href = "classuvgrtp_1_1rtcp-members.html" > List of all members< / a > < / div >
2022-09-16 12:33:51 +00:00
< div class = "headertitle" > < div class = "title" > uvgrtp::rtcp Class Reference< / div > < / div >
2021-02-23 11:46:18 +00:00
< / div > <!-- header -->
< div class = "contents" >
2022-09-16 12:33:51 +00:00
< p > RTCP instance handles all incoming and outgoing RTCP traffic, including report generation.
2024-02-20 08:46:32 +00:00
< a href = "#details" > More...< / a > < / p >
2022-09-16 12:33:51 +00:00
< p > < code > #include < < a class = "el" href = "rtcp_8hh_source.html" > rtcp.hh< / a > > < / code > < / p >
2021-02-23 11:46:18 +00:00
< table class = "memberdecls" >
2022-09-16 12:33:51 +00:00
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "pub-methods" name = "pub-methods" > < / a >
2021-02-23 11:46:18 +00:00
Public Member Functions< / h2 > < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a65680d4ba308fc8cb92fd41f0d313c84" id = "r_a65680d4ba308fc8cb92fd41f0d313c84" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a65680d4ba308fc8cb92fd41f0d313c84" > send_sdes_packet< / a > (const std::vector< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sdes__item.html" > uvgrtp::frame::rtcp_sdes_item< / a > > & items)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a65680d4ba308fc8cb92fd41f0d313c84" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Send an RTCP SDES packet. < br / > < / td > < / tr >
2022-09-16 12:33:51 +00:00
< tr class = "separator:a65680d4ba308fc8cb92fd41f0d313c84" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a0c092bca6edda19218a2cb84ed776c34" id = "r_a0c092bca6edda19218a2cb84ed776c34" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a0c092bca6edda19218a2cb84ed776c34" > send_app_packet< / a > (const char *name, uint8_t subtype, uint32_t payload_len, const uint8_t *payload)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a0c092bca6edda19218a2cb84ed776c34" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Send an RTCP APP packet. < br / > < / td > < / tr >
2022-09-16 12:33:51 +00:00
< tr class = "separator:a0c092bca6edda19218a2cb84ed776c34" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a2b831698320212e382e3d565e62d31c4" id = "r_a2b831698320212e382e3d565e62d31c4" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a2b831698320212e382e3d565e62d31c4" > send_bye_packet< / a > (std::vector< uint32_t > ssrcs)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a2b831698320212e382e3d565e62d31c4" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Send an RTCP BYE packet. < br / > < / td > < / tr >
2021-02-23 11:46:18 +00:00
< tr class = "separator:a2b831698320212e382e3d565e62d31c4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a5d0d06f9b4b7779d96d8d60938627316" id = "r_a5d0d06f9b4b7779d96d8d60938627316" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a5d0d06f9b4b7779d96d8d60938627316" > set_ts_info< / a > (uint64_t clock_start, uint32_t clock_rate, uint32_t rtp_ts_start)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a5d0d06f9b4b7779d96d8d60938627316" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Provide timestamping information for RTCP. < br / > < / td > < / tr >
2021-02-23 11:46:18 +00:00
< tr class = "separator:a5d0d06f9b4b7779d96d8d60938627316" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a4a262a814ffa3093ac6829c90b0b3fd1" id = "r_a4a262a814ffa3093ac6829c90b0b3fd1" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a4a262a814ffa3093ac6829c90b0b3fd1" > install_sender_hook< / a > (void(*hook)(< a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sender__report.html" > uvgrtp::frame::rtcp_sender_report< / a > *))< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a4a262a814ffa3093ac6829c90b0b3fd1" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install an RTCP Sender Report hook. < br / > < / td > < / tr >
2021-02-23 11:46:18 +00:00
< tr class = "separator:a4a262a814ffa3093ac6829c90b0b3fd1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a79a46d4dff360019a8a089112998b9eb" id = "r_a79a46d4dff360019a8a089112998b9eb" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a79a46d4dff360019a8a089112998b9eb" > install_sender_hook< / a > (std::function< void(std::unique_ptr< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sender__report.html" > uvgrtp::frame::rtcp_sender_report< / a > > )> sr_handler)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a79a46d4dff360019a8a089112998b9eb" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install an RTCP Sender Report hook. < br / > < / td > < / tr >
2022-09-16 12:33:51 +00:00
< tr class = "separator:a79a46d4dff360019a8a089112998b9eb" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a04c887fe95173d55294f57d639a1f602" id = "r_a04c887fe95173d55294f57d639a1f602" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a04c887fe95173d55294f57d639a1f602" > install_receiver_hook< / a > (void(*hook)(< a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__receiver__report.html" > uvgrtp::frame::rtcp_receiver_report< / a > *))< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a04c887fe95173d55294f57d639a1f602" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install an RTCP Receiver Report hook. < br / > < / td > < / tr >
2021-02-23 11:46:18 +00:00
< tr class = "separator:a04c887fe95173d55294f57d639a1f602" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a2140c6bc5160b4b2bfdf54a91af45422" id = "r_a2140c6bc5160b4b2bfdf54a91af45422" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a2140c6bc5160b4b2bfdf54a91af45422" > install_receiver_hook< / a > (std::function< void(std::unique_ptr< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__receiver__report.html" > uvgrtp::frame::rtcp_receiver_report< / a > > )> rr_handler)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a2140c6bc5160b4b2bfdf54a91af45422" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install an RTCP Receiver Report hook. < br / > < / td > < / tr >
2022-09-16 12:33:51 +00:00
< tr class = "separator:a2140c6bc5160b4b2bfdf54a91af45422" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:ad694a3a869b1c28309e1f2db6d7c2e50" id = "r_ad694a3a869b1c28309e1f2db6d7c2e50" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ad694a3a869b1c28309e1f2db6d7c2e50" > install_sdes_hook< / a > (void(*hook)(< a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sdes__packet.html" > uvgrtp::frame::rtcp_sdes_packet< / a > *))< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:ad694a3a869b1c28309e1f2db6d7c2e50" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install an RTCP SDES packet hook. < br / > < / td > < / tr >
2021-02-23 11:46:18 +00:00
< tr class = "separator:ad694a3a869b1c28309e1f2db6d7c2e50" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a35daabdb93e3bdd40b1ea51e6079bd40" id = "r_a35daabdb93e3bdd40b1ea51e6079bd40" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a35daabdb93e3bdd40b1ea51e6079bd40" > install_sdes_hook< / a > (std::function< void(std::unique_ptr< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sdes__packet.html" > uvgrtp::frame::rtcp_sdes_packet< / a > > )> sdes_handler)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a35daabdb93e3bdd40b1ea51e6079bd40" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install an RTCP SDES packet hook. < br / > < / td > < / tr >
2022-09-16 12:33:51 +00:00
< tr class = "separator:a35daabdb93e3bdd40b1ea51e6079bd40" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a977c99cfaa1442553ab12d4c140bbb0f" id = "r_a977c99cfaa1442553ab12d4c140bbb0f" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a977c99cfaa1442553ab12d4c140bbb0f" > install_app_hook< / a > (void(*hook)(< a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__app__packet.html" > uvgrtp::frame::rtcp_app_packet< / a > *))< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a977c99cfaa1442553ab12d4c140bbb0f" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install an RTCP APP packet hook. < br / > < / td > < / tr >
2021-02-23 11:46:18 +00:00
< tr class = "separator:a977c99cfaa1442553ab12d4c140bbb0f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a76cb98093acfb54050b50ff82106ca94" id = "r_a76cb98093acfb54050b50ff82106ca94" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a76cb98093acfb54050b50ff82106ca94" > install_app_hook< / a > (std::function< void(std::unique_ptr< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__app__packet.html" > uvgrtp::frame::rtcp_app_packet< / a > > )> app_handler)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a76cb98093acfb54050b50ff82106ca94" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install an RTCP APP packet hook. < br / > < / td > < / tr >
2022-09-16 12:33:51 +00:00
< tr class = "separator:a76cb98093acfb54050b50ff82106ca94" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:ad62ad1cc01e3d0808ac8254ce30756a1" id = "r_ad62ad1cc01e3d0808ac8254ce30756a1" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ad62ad1cc01e3d0808ac8254ce30756a1" > install_send_app_hook< / a > (std::string app_name, std::function< std::unique_ptr< uint8_t[]> (uint8_t & subtype, uint32_t & payload_len)> app_sending_func)< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:ad62ad1cc01e3d0808ac8254ce30756a1" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Install hook for one type of APP packets. < br / > < / td > < / tr >
< tr class = "separator:ad62ad1cc01e3d0808ac8254ce30756a1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a81198428cc697c0c7cbb2a4191f294d8" id = "r_a81198428cc697c0c7cbb2a4191f294d8" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a81198428cc697c0c7cbb2a4191f294d8" > remove_all_hooks< / a > ()< / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "memdesc:a81198428cc697c0c7cbb2a4191f294d8" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Remove all installed hooks for RTCP. < br / > < / td > < / tr >
2022-09-16 12:33:51 +00:00
< tr class = "separator:a81198428cc697c0c7cbb2a4191f294d8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-02-20 08:46:32 +00:00
< tr class = "memitem:a27adb6b5965dab3918bd02a2e7a2dfd2" id = "r_a27adb6b5965dab3918bd02a2e7a2dfd2" > < td class = "memItemLeft" align = "right" valign = "top" > rtp_error_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a27adb6b5965dab3918bd02a2e7a2dfd2" > remove_send_app_hook< / a > (std::string app_name)< / td > < / tr >
2024-01-30 12:53:35 +00:00
< tr class = "memdesc:a27adb6b5965dab3918bd02a2e7a2dfd2" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Remove a hook for sending APP packets *. < br / > < / td > < / tr >
2023-03-13 13:15:14 +00:00
< tr class = "separator:a27adb6b5965dab3918bd02a2e7a2dfd2" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2021-02-23 11:46:18 +00:00
< / table >
2022-09-16 12:33:51 +00:00
< a name = "details" id = "details" > < / a > < h2 class = "groupheader" > Detailed Description< / h2 >
2023-03-13 13:15:14 +00:00
< div class = "textblock" > < p > RTCP instance handles all incoming and outgoing RTCP traffic, including report generation. < / p >
< p > If < a class = "el" href = "classuvgrtp_1_1media__stream.html" title = "The media_stream is an entity which represents one RTP stream." > media_stream< / a > was created with RCE_RTCP flag, RTCP is enabled. RTCP periodically sends compound RTCP packets. The bit rate of RTP session influences the reporting interval, but changing this has not yet been implemented.< / p >
2024-02-20 08:46:32 +00:00
< p > The compound RTCP packet begins with either Sender Reports if we sent RTP packets recently or Receiver Report if we didn't send RTP packets recently. Both of these report types include report blocks for all the RTP sources we have received packets from during reporting period. The compound packets also always have an SDES packet and calling < a class = "el" href = "#a65680d4ba308fc8cb92fd41f0d313c84" title = "Send an RTCP SDES packet." > send_sdes_packet()< / a > -function will modify the contents of this SDES packet.< / p >
< p > You can use the APP packet to test new RTCP packet types using the < a class = "el" href = "#a0c092bca6edda19218a2cb84ed776c34" title = "Send an RTCP APP packet." > send_app_packet()< / a > -function. The APP packets are added to these periodically sent compound packets.< / p >
2023-03-13 13:15:14 +00:00
< p > See < a href = "https://www.rfc-editor.org/rfc/rfc3550#section-6" target = "_blank" > RFC 3550 section 6< / a > for more details. < / p >
2022-09-16 12:33:51 +00:00
2024-01-30 12:53:35 +00:00
< p class = "definition" > Definition at line < a class = "el" href = "rtcp_8hh_source.html#l00120" > 120< / a > of file < a class = "el" href = "rtcp_8hh_source.html" > rtcp.hh< / a > .< / p >
2022-09-16 12:33:51 +00:00
< / div > < h2 class = "groupheader" > Member Function Documentation< / h2 >
< a id = "a76cb98093acfb54050b50ff82106ca94" name = "a76cb98093acfb54050b50ff82106ca94" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a76cb98093acfb54050b50ff82106ca94" > ◆   < / a > < / span > install_app_hook() < span class = "overload" > [1/2]< / span > < / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_app_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > std::function< void(std::unique_ptr< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__app__packet.html" > uvgrtp::frame::rtcp_app_packet< / a > > )> < / td > < td class = "paramname" > < span class = "paramname" > < em > app_handler< / em > < / span > < / td > < td > )< / td >
2022-09-16 12:33:51 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install an RTCP APP packet hook. < / p >
2023-03-13 13:15:14 +00:00
< p > This function is called when an RTCP APP packet is received< / p >
2022-09-16 12:33:51 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > app_handler< / td > < td > C++ function pointer to the hook< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If hook is nullptr < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
< a id = "a977c99cfaa1442553ab12d4c140bbb0f" name = "a977c99cfaa1442553ab12d4c140bbb0f" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a977c99cfaa1442553ab12d4c140bbb0f" > ◆   < / a > < / span > install_app_hook() < span class = "overload" > [2/2]< / span > < / h2 >
2021-04-19 09:15:23 +00:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_app_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > void(*)(< a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__app__packet.html" > uvgrtp::frame::rtcp_app_packet< / a > *)< / td > < td class = "paramname" > < span class = "paramname" > < em > hook< / em > < / span > < / td > < td > )< / td >
2021-04-19 09:15:23 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install an RTCP APP packet hook. < / p >
2023-03-13 13:15:14 +00:00
< p > This function is called when an RTCP APP packet is received< / p >
2021-04-19 09:15:23 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > hook< / td > < td > Function pointer to the hook< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If hook is nullptr < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
2022-09-16 12:33:51 +00:00
< a id = "a2140c6bc5160b4b2bfdf54a91af45422" name = "a2140c6bc5160b4b2bfdf54a91af45422" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a2140c6bc5160b4b2bfdf54a91af45422" > ◆   < / a > < / span > install_receiver_hook() < span class = "overload" > [1/2]< / span > < / h2 >
2021-04-19 09:15:23 +00:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_receiver_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > std::function< void(std::unique_ptr< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__receiver__report.html" > uvgrtp::frame::rtcp_receiver_report< / a > > )> < / td > < td class = "paramname" > < span class = "paramname" > < em > rr_handler< / em > < / span > < / td > < td > )< / td >
2022-09-16 12:33:51 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install an RTCP Receiver Report hook. < / p >
2023-03-13 13:15:14 +00:00
< p > This function is called when an RTCP Receiver Report is received< / p >
2022-09-16 12:33:51 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > rr_handler< / td > < td > C++ function pointer to the hook< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If hook is nullptr < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
< a id = "a04c887fe95173d55294f57d639a1f602" name = "a04c887fe95173d55294f57d639a1f602" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a04c887fe95173d55294f57d639a1f602" > ◆   < / a > < / span > install_receiver_hook() < span class = "overload" > [2/2]< / span > < / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_receiver_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > void(*)(< a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__receiver__report.html" > uvgrtp::frame::rtcp_receiver_report< / a > *)< / td > < td class = "paramname" > < span class = "paramname" > < em > hook< / em > < / span > < / td > < td > )< / td >
2021-04-19 09:15:23 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install an RTCP Receiver Report hook. < / p >
2023-03-13 13:15:14 +00:00
< p > This function is called when an RTCP Receiver Report is received< / p >
2021-04-19 09:15:23 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > hook< / td > < td > Function pointer to the hook< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If hook is nullptr < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
2022-09-16 12:33:51 +00:00
< a id = "a35daabdb93e3bdd40b1ea51e6079bd40" name = "a35daabdb93e3bdd40b1ea51e6079bd40" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a35daabdb93e3bdd40b1ea51e6079bd40" > ◆   < / a > < / span > install_sdes_hook() < span class = "overload" > [1/2]< / span > < / h2 >
2021-04-19 09:15:23 +00:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_sdes_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > std::function< void(std::unique_ptr< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sdes__packet.html" > uvgrtp::frame::rtcp_sdes_packet< / a > > )> < / td > < td class = "paramname" > < span class = "paramname" > < em > sdes_handler< / em > < / span > < / td > < td > )< / td >
2022-09-16 12:33:51 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install an RTCP SDES packet hook. < / p >
2023-03-13 13:15:14 +00:00
< p > This function is called when an RTCP SDES packet is received< / p >
2022-09-16 12:33:51 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > sdes_handler< / td > < td > C++ function pointer to the hook< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If hook is nullptr < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
< a id = "ad694a3a869b1c28309e1f2db6d7c2e50" name = "ad694a3a869b1c28309e1f2db6d7c2e50" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad694a3a869b1c28309e1f2db6d7c2e50" > ◆   < / a > < / span > install_sdes_hook() < span class = "overload" > [2/2]< / span > < / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_sdes_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > void(*)(< a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sdes__packet.html" > uvgrtp::frame::rtcp_sdes_packet< / a > *)< / td > < td class = "paramname" > < span class = "paramname" > < em > hook< / em > < / span > < / td > < td > )< / td >
2021-04-19 09:15:23 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install an RTCP SDES packet hook. < / p >
2023-03-13 13:15:14 +00:00
< p > This function is called when an RTCP SDES packet is received< / p >
2021-04-19 09:15:23 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > hook< / td > < td > Function pointer to the hook< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If hook is nullptr < / td > < / tr >
< / table >
< / dd >
< / dl >
2023-03-13 13:15:14 +00:00
< / div >
< / div >
< a id = "ad62ad1cc01e3d0808ac8254ce30756a1" name = "ad62ad1cc01e3d0808ac8254ce30756a1" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad62ad1cc01e3d0808ac8254ce30756a1" > ◆   < / a > < / span > install_send_app_hook()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_send_app_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > std::string< / td > < td class = "paramname" > < span class = "paramname" > < em > app_name< / em > , < / span > < / td >
2023-03-13 13:15:14 +00:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > std::function< std::unique_ptr< uint8_t[]> (uint8_t & subtype, uint32_t & payload_len)> < / td > < td class = "paramname" > < span class = "paramname" > < em > app_sending_func< / em > < / span >   )< / td >
2023-03-13 13:15:14 +00:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install hook for one type of APP packets. < / p >
< p > Each time the RR/SR is sent, all APP sending hooks call their respective functions to get the data< / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > app_name< / td > < td > name of the APP packet. Max 4 chars < / td > < / tr >
< tr > < td class = "paramname" > app_sending< / td > < td > the function to be called when hook fires < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If app_name is empty or longer that 4 characters or function pointer is empty < / td > < / tr >
< / table >
< / dd >
< / dl >
2021-04-19 09:15:23 +00:00
< / div >
< / div >
2022-09-16 12:33:51 +00:00
< a id = "a79a46d4dff360019a8a089112998b9eb" name = "a79a46d4dff360019a8a089112998b9eb" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a79a46d4dff360019a8a089112998b9eb" > ◆   < / a > < / span > install_sender_hook() < span class = "overload" > [1/2]< / span > < / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_sender_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > std::function< void(std::unique_ptr< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sender__report.html" > uvgrtp::frame::rtcp_sender_report< / a > > )> < / td > < td class = "paramname" > < span class = "paramname" > < em > sr_handler< / em > < / span > < / td > < td > )< / td >
2022-09-16 12:33:51 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install an RTCP Sender Report hook. < / p >
2023-03-13 13:15:14 +00:00
< p > This function is called when an RTCP Sender Report is received< / p >
2022-09-16 12:33:51 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > sr_handler< / td > < td > C++ function pointer to the hook< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If hook is nullptr < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
< a id = "a4a262a814ffa3093ac6829c90b0b3fd1" name = "a4a262a814ffa3093ac6829c90b0b3fd1" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a4a262a814ffa3093ac6829c90b0b3fd1" > ◆   < / a > < / span > install_sender_hook() < span class = "overload" > [2/2]< / span > < / h2 >
2021-04-19 09:15:23 +00:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::install_sender_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > void(*)(< a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sender__report.html" > uvgrtp::frame::rtcp_sender_report< / a > *)< / td > < td class = "paramname" > < span class = "paramname" > < em > hook< / em > < / span > < / td > < td > )< / td >
2021-04-19 09:15:23 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Install an RTCP Sender Report hook. < / p >
2023-03-13 13:15:14 +00:00
< p > This function is called when an RTCP Sender Report is received< / p >
2021-04-19 09:15:23 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > hook< / td > < td > Function pointer to the hook< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > If hook is nullptr < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
2022-09-16 12:33:51 +00:00
< a id = "a81198428cc697c0c7cbb2a4191f294d8" name = "a81198428cc697c0c7cbb2a4191f294d8" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a81198428cc697c0c7cbb2a4191f294d8" > ◆   < / a > < / span > remove_all_hooks()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::remove_all_hooks < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramname" > < span class = "paramname" > < / span > < / td > < td > )< / td >
2022-09-16 12:33:51 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Remove all installed hooks for RTCP. < / p >
2023-03-13 13:15:14 +00:00
< p > Removes all installed hooks so they can be readded in case of changes< / p >
2022-09-16 12:33:51 +00:00
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< / table >
< / dd >
< / dl >
2024-01-30 12:53:35 +00:00
< / div >
< / div >
< a id = "a27adb6b5965dab3918bd02a2e7a2dfd2" name = "a27adb6b5965dab3918bd02a2e7a2dfd2" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a27adb6b5965dab3918bd02a2e7a2dfd2" > ◆   < / a > < / span > remove_send_app_hook()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::remove_send_app_hook < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > std::string< / td > < td class = "paramname" > < span class = "paramname" > < em > app_name< / em > < / span > < / td > < td > )< / td >
2024-01-30 12:53:35 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Remove a hook for sending APP packets *. < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > app_name< / td > < td > name of the APP packet hook. Max 4 chars < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > on success < / td > < / tr >
< tr > < td class = "paramname" > RTP_INVALID_VALUE< / td > < td > if hook with given app_name was not found < / td > < / tr >
< / table >
< / dd >
< / dl >
2022-09-16 12:33:51 +00:00
< / div >
< / div >
< a id = "a0c092bca6edda19218a2cb84ed776c34" name = "a0c092bca6edda19218a2cb84ed776c34" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a0c092bca6edda19218a2cb84ed776c34" > ◆   < / a > < / span > send_app_packet()< / h2 >
2021-04-19 09:15:23 +00:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::send_app_packet < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > const char *< / td > < td class = "paramname" > < span class = "paramname" > < em > name< / em > , < / span > < / td >
2021-04-19 09:15:23 +00:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > uint8_t< / td > < td class = "paramname" > < span class = "paramname" > < em > subtype< / em > , < / span > < / td >
2021-04-19 09:15:23 +00:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > uint32_t< / td > < td class = "paramname" > < span class = "paramname" > < em > payload_len< / em > , < / span > < / td >
2021-04-19 09:15:23 +00:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > const uint8_t *< / td > < td class = "paramname" > < span class = "paramname" > < em > payload< / em > < / span >   )< / td >
2021-04-19 09:15:23 +00:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Send an RTCP APP packet. < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2024-01-30 12:53:35 +00:00
< tr > < td class = "paramname" > name< / td > < td > Name of the APP item, e.g., STAT, must have a length of four ASCII characters < / td > < / tr >
2021-04-19 09:15:23 +00:00
< tr > < td class = "paramname" > subtype< / td > < td > Subtype of the APP item < / td > < / tr >
< tr > < td class = "paramname" > payload_len< / td > < td > Length of the payload < / td > < / tr >
< tr > < td class = "paramname" > payload< / td > < td > Payload< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > On success < / td > < / tr >
< tr > < td class = "paramname" > RTP_MEMORY_ERROR< / td > < td > If allocation fails < / td > < / tr >
< tr > < td class = "paramname" > RTP_GENERIC_ERROR< / td > < td > If sending fails < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
2022-09-16 12:33:51 +00:00
< a id = "a2b831698320212e382e3d565e62d31c4" name = "a2b831698320212e382e3d565e62d31c4" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a2b831698320212e382e3d565e62d31c4" > ◆   < / a > < / span > send_bye_packet()< / h2 >
2021-04-19 09:15:23 +00:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::send_bye_packet < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > std::vector< uint32_t > < / td > < td class = "paramname" > < span class = "paramname" > < em > ssrcs< / em > < / span > < / td > < td > )< / td >
2021-04-19 09:15:23 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Send an RTCP BYE packet. < / p >
2023-03-13 13:15:14 +00:00
< p > In case the quitting participant is a mixer and is serving multiple paricipants, the input vector contains the SSRCs of all those participants. If the participant is a regular member of the session, the vector only contains the SSRC of the participant.< / p >
2021-04-19 09:15:23 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > ssrcs< / td > < td > Vector of SSRCs of those participants who are quitting< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > On success < / td > < / tr >
< tr > < td class = "paramname" > RTP_MEMORY_ERROR< / td > < td > If allocation fails < / td > < / tr >
< tr > < td class = "paramname" > RTP_GENERIC_ERROR< / td > < td > If sending fails < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
2022-09-16 12:33:51 +00:00
< a id = "a65680d4ba308fc8cb92fd41f0d313c84" name = "a65680d4ba308fc8cb92fd41f0d313c84" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a65680d4ba308fc8cb92fd41f0d313c84" > ◆   < / a > < / span > send_sdes_packet()< / h2 >
2021-04-19 09:15:23 +00:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > rtp_error_t uvgrtp::rtcp::send_sdes_packet < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > const std::vector< < a class = "el" href = "structuvgrtp_1_1frame_1_1rtcp__sdes__item.html" > uvgrtp::frame::rtcp_sdes_item< / a > > & < / td > < td class = "paramname" > < span class = "paramname" > < em > items< / em > < / span > < / td > < td > )< / td >
2021-04-19 09:15:23 +00:00
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Send an RTCP SDES packet. < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > items< / td > < td > Vector of SDES items< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "retval" > < dt > Return values< / dt > < dd >
< table class = "retval" >
< tr > < td class = "paramname" > RTP_OK< / td > < td > On success < / td > < / tr >
< tr > < td class = "paramname" > RTP_MEMORY_ERROR< / td > < td > If allocation fails < / td > < / tr >
< tr > < td class = "paramname" > RTP_GENERIC_ERROR< / td > < td > If sending fails < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
2022-09-16 12:33:51 +00:00
< a id = "a5d0d06f9b4b7779d96d8d60938627316" name = "a5d0d06f9b4b7779d96d8d60938627316" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a5d0d06f9b4b7779d96d8d60938627316" > ◆   < / a > < / span > set_ts_info()< / h2 >
2021-02-23 12:43:09 +00:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void uvgrtp::rtcp::set_ts_info < / td >
< td > (< / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > uint64_t< / td > < td class = "paramname" > < span class = "paramname" > < em > clock_start< / em > , < / span > < / td >
2021-02-23 12:43:09 +00:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > uint32_t< / td > < td class = "paramname" > < span class = "paramname" > < em > clock_rate< / em > , < / span > < / td >
2021-02-23 12:43:09 +00:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2024-02-20 08:46:32 +00:00
< td class = "paramtype" > uint32_t< / td > < td class = "paramname" > < span class = "paramname" > < em > rtp_ts_start< / em > < / span >   )< / td >
2021-02-23 12:43:09 +00:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Provide timestamping information for RTCP. < / p >
2023-03-13 13:15:14 +00:00
< p > If the application wishes to timestamp the stream itself AND it has enabled RTCP by using < a class = "el" href = "util_8hh.html#a15b2d6364db6065a482c99827f4bd2afab1342138e5af3f03d6eaf1378382bf3d" > RCE_RTCP< / a > , it must provide timestamping information for RTCP so sensible synchronization values can be calculated for Sender Reports< / p >
< p > The application can call uvgrtp::clock::ntp::now() to get the current wall clock reading as an NTP timestamp value< / p >
2021-02-23 12:43:09 +00:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > clock_start< / td > < td > NTP timestamp for t = 0 < / td > < / tr >
< tr > < td class = "paramname" > clock_rate< / td > < td > Clock rate of the stream < / td > < / tr >
< tr > < td class = "paramname" > rtp_ts_start< / td > < td > RTP timestamp for t = 0 < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
2021-02-23 11:46:18 +00:00
< hr / > The documentation for this class was generated from the following file:< ul >
2022-09-22 04:35:14 +00:00
< li > < a class = "el" href = "rtcp_8hh_source.html" > rtcp.hh< / a > < / li >
2021-02-23 11:46:18 +00:00
< / ul >
< / div > <!-- contents -->
<!-- start footer part -->
< hr class = "footer" / > < address class = "footer" > < small >
2024-02-20 08:46:32 +00:00
Generated by  < a href = "https://www.doxygen.org/index.html" > < img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" / > < / a > 1.10.0
2021-02-23 11:46:18 +00:00
< / small > < / address >
< / body >
< / html >