Skip to content

Commit

Permalink
Release 2.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
tampsa committed Mar 20, 2023
1 parent 7879808 commit 1311cd7
Show file tree
Hide file tree
Showing 56 changed files with 706 additions and 689 deletions.
2 changes: 1 addition & 1 deletion cmake/ProjectDetails.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
set(uvgrtp_VER 2.2.0)
set(uvgrtp_VER 2.3.0)
set(uvgrtp_DESCR "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")
set(uvgrtp_URL "https://github.com/ultravideo/uvgRTP")
2 changes: 1 addition & 1 deletion docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ PROJECT_NAME = uvgRTP
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 2.2.0
PROJECT_NUMBER = 2.3.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ The second way of handling key-management of SRTP is to do it outside uvgRTP. To

## MTU size

The default MTU size of uvgRTP has been set to 1492 to account for 8 bytes of unknown overhead. uvgRTP assumes the presence of an UDP header and IP header in addition an RTP header which are taken into account when fragmenting frames. If your application is expected to work through tunneling such as VPN or IP tunneling which adds additional headers on top of packets, you may need to lower the MTU size to avoid IP level fragmentation. Some networks also allow for a higher MTU size in which case you can increase this.
The default MTU size of uvgRTP has been set to 1492 to account for 8 bytes of unknown overhead. uvgRTP assumes the presence of an UDP header and IP header in addition an RTP header which are taken into account when fragmenting frames. If your application is expected to work through tunneling such as VPN or IPv6 to IPv4 which add additional headers on top of packets, you may need to lower the MTU size to avoid IP level fragmentation. Some networks also allow for a higher MTU size in which case you can increase this.

## uvgRTP video reception behavior with packet loss

Expand Down
2 changes: 1 addition & 1 deletion docs/html/annotated.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/classes.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/classuvgrtp_1_1context-members.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down
8 changes: 4 additions & 4 deletions docs/html/classuvgrtp_1_1context.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down Expand Up @@ -172,7 +172,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a81b2dc23ebf64d1153410376
<p>Create a new RTP session. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">address</td><td>IPv4 address of the remote participant</td></tr>
<tr><td class="paramname">address</td><td>IP address of the remote participant</td></tr>
</table>
</dd>
</dl>
Expand Down Expand Up @@ -217,8 +217,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a7699c9df53e8e7380d755f37
<p>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 <a class="el" href="util_8hh.html#a15b2d6364db6065a482c99827f4bd2afa8e66f45819774772a0156647d3788a95">RCE_HOLEPUNCH_KEEPALIVE</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">remote_addr</td><td>IPv4 address of the remote participant </td></tr>
<tr><td class="paramname">local_addr</td><td>IPv4 address of a local interface</td></tr>
<tr><td class="paramname">remote_addr</td><td>IP address of the remote participant </td></tr>
<tr><td class="paramname">local_addr</td><td>IP address of a local interface</td></tr>
</table>
</dd>
</dl>
Expand Down
25 changes: 13 additions & 12 deletions docs/html/classuvgrtp_1_1media__stream-members.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down Expand Up @@ -82,17 +82,18 @@
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a0950a91bd645cbf842d8218ae4171aed">add_srtp_ctx</a>(uint8_t *key, uint8_t *salt)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a2cee4fe3bf423ec317b4a3eacc136238">configure_ctx</a>(int rcc_flag, ssize_t value)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#ab339f15d5a852beacd901b7b78e887ea">get_rtcp</a>()</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a8796cb34e0e6c61af8cabd13dd6793b5">get_ssrc</a>() const</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a74a558b23866976e52c5903996544a27">install_receive_hook</a>(void *arg, void(*hook)(void *, uvgrtp::frame::rtp_frame *))</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#ab0c854a4c36572f91008a8e1e49e38bb">pull_frame</a>()</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a466067ad9924a52530c62c53c1b397b4">pull_frame</a>(size_t timeout_ms)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a157e9973d92b65e82914d4028690c770">push_frame</a>(uint8_t *data, size_t data_len, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a068a0963e06f789b4e4310a45cbe4409">push_frame</a>(std::unique_ptr&lt; uint8_t[]&gt; data, size_t data_len, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#ac0cb1cf34b639c9ba71b047b3ba26d22">push_frame</a>(uint8_t *data, size_t data_len, uint32_t ts, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a5577c57f1bdd5b888aa4e8c4f939eba7">push_frame</a>(uint8_t *data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#abe9099254c6bf16f255f5f50441ec9d2">push_frame</a>(std::unique_ptr&lt; uint8_t[]&gt; data, size_t data_len, uint32_t ts, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a56d2a209b2647d0f3ee7948e8cf45438">push_frame</a>(std::unique_ptr&lt; uint8_t[]&gt; data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_ipv6</b>() const (defined in <a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a>)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#ab339f15d5a852beacd901b7b78e887ea">get_rtcp</a>()</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a8796cb34e0e6c61af8cabd13dd6793b5">get_ssrc</a>() const</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a74a558b23866976e52c5903996544a27">install_receive_hook</a>(void *arg, void(*hook)(void *, uvgrtp::frame::rtp_frame *))</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#ab0c854a4c36572f91008a8e1e49e38bb">pull_frame</a>()</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a466067ad9924a52530c62c53c1b397b4">pull_frame</a>(size_t timeout_ms)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a157e9973d92b65e82914d4028690c770">push_frame</a>(uint8_t *data, size_t data_len, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a068a0963e06f789b4e4310a45cbe4409">push_frame</a>(std::unique_ptr&lt; uint8_t[]&gt; data, size_t data_len, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#ac0cb1cf34b639c9ba71b047b3ba26d22">push_frame</a>(uint8_t *data, size_t data_len, uint32_t ts, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a5577c57f1bdd5b888aa4e8c4f939eba7">push_frame</a>(uint8_t *data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#abe9099254c6bf16f255f5f50441ec9d2">push_frame</a>(std::unique_ptr&lt; uint8_t[]&gt; data, size_t data_len, uint32_t ts, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html#a56d2a209b2647d0f3ee7948e8cf45438">push_frame</a>(std::unique_ptr&lt; uint8_t[]&gt; data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)</td><td class="entry"><a class="el" href="classuvgrtp_1_1media__stream.html">uvgrtp::media_stream</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Expand Down
7 changes: 5 additions & 2 deletions docs/html/classuvgrtp_1_1media__stream.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down Expand Up @@ -127,14 +127,17 @@
<tr class="memitem:a8796cb34e0e6c61af8cabd13dd6793b5"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvgrtp_1_1media__stream.html#a8796cb34e0e6c61af8cabd13dd6793b5">get_ssrc</a> () const</td></tr>
<tr class="memdesc:a8796cb34e0e6c61af8cabd13dd6793b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get SSRC identifier. You can use the SSRC value for example to find the report block belonging to this <a class="el" href="classuvgrtp_1_1media__stream.html" title="The media_stream is an entity which represents one RTP stream.">media_stream</a> in RTCP sender/receiver report. <br /></td></tr>
<tr class="separator:a8796cb34e0e6c61af8cabd13dd6793b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13b543a64861d06fc74c87aa51d1dbe9"><td class="memItemLeft" align="right" valign="top"><a id="a13b543a64861d06fc74c87aa51d1dbe9" name="a13b543a64861d06fc74c87aa51d1dbe9"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>get_ipv6</b> () const</td></tr>
<tr class="separator:a13b543a64861d06fc74c87aa51d1dbe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="classuvgrtp_1_1media__stream.html" title="The media_stream is an entity which represents one RTP stream.">media_stream</a> is an entity which represents one RTP stream. </p>
<p><a class="el" href="classuvgrtp_1_1media__stream.html" title="The media_stream is an entity which represents one RTP stream.">media_stream</a> is defined by the ports which are used for sending and/or receiving media. It is possible for <a class="el" href="classuvgrtp_1_1media__stream.html" title="The media_stream is an entity which represents one RTP stream.">media_stream</a> to be bi- or unidirectional. The unidirectionality is achieved by specifying RCE_SEND_ONLY or RCE_RECEIVE_ONLY flag when creating <a class="el" href="classuvgrtp_1_1media__stream.html" title="The media_stream is an entity which represents one RTP stream.">media_stream</a>.</p>
<p>If RCE_RTCP was given when creating <a class="el" href="classuvgrtp_1_1media__stream.html" title="The media_stream is an entity which represents one RTP stream.">media_stream</a>, you can get the <a class="el" href="classuvgrtp_1_1rtcp.html" title="RTCP instance handles all incoming and outgoing RTCP traffic, including report generation.">uvgrtp::rtcp</a> object with <a class="el" href="classuvgrtp_1_1media__stream.html#ab339f15d5a852beacd901b7b78e887ea" title="Get pointer to the RTCP object of the media stream.">get_rtcp()</a>-function.</p>
<p><a class="el" href="classuvgrtp_1_1media__stream.html" title="The media_stream is an entity which represents one RTP stream.">media_stream</a> corresponds to one RTP session in <a href="https://www.rfc-editor.org/rfc/rfc3550">RFC 3550</a>. </p>

<p class="definition">Definition at line <a class="el" href="media__stream_8hh_source.html#l00049">49</a> of file <a class="el" href="media__stream_8hh_source.html">media_stream.hh</a>.</p>
<p class="definition">Definition at line <a class="el" href="media__stream_8hh_source.html#l00050">50</a> of file <a class="el" href="media__stream_8hh_source.html">media_stream.hh</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a0950a91bd645cbf842d8218ae4171aed" name="a0950a91bd645cbf842d8218ae4171aed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0950a91bd645cbf842d8218ae4171aed">&#9670;&#160;</a></span>add_srtp_ctx()</h2>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/classuvgrtp_1_1rtcp-members.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down
4 changes: 2 additions & 2 deletions docs/html/classuvgrtp_1_1rtcp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down Expand Up @@ -141,7 +141,7 @@
<p>You can use the APP packet to test new RTCP packet types using the <a class="el" href="classuvgrtp_1_1rtcp.html#a0c092bca6edda19218a2cb84ed776c34" title="Send an RTCP APP packet.">send_app_packet()</a>-function. The APP packets are added to these periodically sent compound packets.</p>
<p>See <a href="https://www.rfc-editor.org/rfc/rfc3550#section-6" target="_blank">RFC 3550 section 6</a> for more details. </p>

<p class="definition">Definition at line <a class="el" href="rtcp_8hh_source.html#l00111">111</a> of file <a class="el" href="rtcp_8hh_source.html">rtcp.hh</a>.</p>
<p class="definition">Definition at line <a class="el" href="rtcp_8hh_source.html#l00118">118</a> of file <a class="el" href="rtcp_8hh_source.html">rtcp.hh</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a76cb98093acfb54050b50ff82106ca94" name="a76cb98093acfb54050b50ff82106ca94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76cb98093acfb54050b50ff82106ca94">&#9670;&#160;</a></span>install_app_hook() <span class="overload">[1/2]</span></h2>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/classuvgrtp_1_1session-members.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/classuvgrtp_1_1session.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/clock_8hh_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/context_8hh_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.2.0</span>
<div id="projectname">uvgRTP<span id="projectnumber">&#160;2.3.0</span>
</div>
<div id="projectbrief">An open-source library for RTP/SRTP media delivery</div>
</td>
Expand Down
Loading

0 comments on commit 1311cd7

Please sign in to comment.