<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<meta content="text/html; charset=UTF-8">
<style type="text/css" style="">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p>Ok, thanks for the answer!</p>
<p><br>
</p>
<p>Sorin.<br>
</p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> live-devel <live-devel-bounces@us.live555.com> on behalf of Ross Finlayson <finlayson@live555.com><br>
<b>Sent:</b> Monday, May 11, 2020 12:41:18 PM<br>
<b>To:</b> LIVE555 Streaming Media - development & use<br>
<b>Subject:</b> Re: [Live-devel] Is memmove() necessary when using blocking call?</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText"><br>
<br>
> On May 11, 2020, at 9:19 PM, Avramoni, Sorin <sorin.avramoni@intel.com> wrote:<br>
> <br>
> I am wonder since I have a blocking mechanism it is possible to not use memmove() and just use a reference to my buffers?<br>
<br>
Generally speaking, no, because the data in your buffer is not the only data that gets sent in a RTP packet.  There is also the RTP header, which the LIVE555 library puts in each outgoing UDP packet, before your payload data.  Therefore it would not be possible
 to send a RTP packet by just passing a pointer to your payload data, without copying the data.<br>
<br>
Things get even more complicated if your payload data is too large to fit in an outgoing UDP packet.  In that case, the LIVE555 library has to construct a RTP header (and perhaps an extra ‘fragmentation header’, depending on the RTP payload type) for each outgoing
 packet.  Your payload data will end up being split among multiple outgoing RTP packets.<br>
<br>
(Yes, it might be possible to avoid some data copying using a ‘scatter-gather’ I/O interface (e.g., using “sendmmsg()”), but that would require a major (and non-backward-compatible) overhaul of LIVE555’s buffering mechanism - something that’s not likely to
 happen anytime soon.)<br>
<br>
<br>
Ross Finlayson<br>
Live Networks, Inc.<br>
<a href="http://www.live555.com/">http://www.live555.com/</a><br>
<br>
<br>
_______________________________________________<br>
live-devel mailing list<br>
live-devel@lists.live555.com<br>
<a href="http://lists.live555.com/mailman/listinfo/live-devel">http://lists.live555.com/mailman/listinfo/live-devel</a><br>
</div>
</span></font>
</body>
</html>