<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
h2
        {mso-style-priority:9;
        mso-style-link:"Heading 2 Char";
        margin-top:10.0pt;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:0in;
        margin-bottom:.0001pt;
        page-break-after:avoid;
        font-size:13.0pt;
        font-family:"Cambria","serif";
        color:#4F81BD;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
        {mso-style-priority:1;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.Heading2Char
        {mso-style-name:"Heading 2 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 2";
        font-family:"Cambria","serif";
        color:#4F81BD;
        font-weight:bold;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>You shouldn&#8217;t try to modify the code of the library unless
you find a bug. The library send the packets at the appropriate time following
the RTP specification unless the OS timer resolution create an issue. The
library does indeed call the sendPacketIfNecessary routine to send the packets.
>From what I remember the library does a good job at computing the time when the
Mpeg2 TS RTP packets are to be sent. I suggest you try to use the function gettimeofday()
to log the time and the delay requested when nextTask() =
envir().taskScheduler().scheduleDelayedTask(&#8230;)  is called in function sendPacketIfNecessary()
in file MultiFramedTPSink.  Then log the time again with gettimeofday() in
function MultiFramedRTPSink::sendNext. Then check check that you were called at
the time requested by the library scheduler. If you are not then you know the
problem is likely to be a timer resolution issue with the OS. This is how I was
able to find my issue and find why the library was bursting the RTP packets.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>GB</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
live-devel-bounces@ns.live555.com [mailto:live-devel-bounces@ns.live555.com] <b>On
Behalf Of </b>Lambert Marc<br>
<b>Sent:</b> Monday, July 12, 2010 6:31<br>
<b>To:</b> LIVE555 Streaming Media - development &amp; use<br>
<b>Subject:</b> Re: [Live-devel] RTP packet lost whenLive555MediaServerstreamsforward
Dektec DTE3114<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>I just tried to modify the fDurationInMicroseconds but it doesn't
work.</span><o:p></o:p></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>Actually, It seems the task sends packet through
&quot;sendPacketIfNecessary&quot; as soon as the packet is prepared when I
would like to wait for 3 or 4 packets ready before to send them on the network.</span><o:p></o:p></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>I tried to find a way to skip to send data but when I do that, it
seems also than the packet is lost...</span><o:p></o:p></p>

<div>

<p class=MsoNormal>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>It looks like the output buffer gathers frames and when there are
enough frames to do a packet the RTP packet is done and sent, could I let
prepare many packets and wait for few to effectively send them ?</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>&nbsp;<o:p></o:p></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<div class=MsoNormal align=center style='text-align:center'><span lang=FR>

<hr size=2 width="100%" align=center>

</span></div>

<p class=MsoNormal style='margin-bottom:12.0pt'><b><span lang=FR
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>De&nbsp;:</span></b><span
lang=FR style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
live-devel-bounces@ns.live555.com [mailto:live-devel-bounces@ns.live555.com] <b>De
la part de</b> BONNEAU Guy<br>
<b>Envoyé&nbsp;:</b> dimanche 11 juillet 2010 05:51<br>
<b>À&nbsp;:</b> LIVE555 Streaming Media - development &amp; use<br>
<b>Objet&nbsp;:</b> Re: [Live-devel] RTP packet lost when
Live555MediaServerstreamsforward Dektec DTE3114</span><span lang=FR><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>This &nbsp;problem seems to be very similar to one I have had
about 1 year ago while trying to stream a Mpeg2 TS with the live555 library
with a very high datarate. Unfortunately I do not remember all the details but
I eventually pinpointed the problem to the scheduler of Windows. (My testing
application was Windows based). If a remember &nbsp;the library would compute a
delay to callback a routine to schedule a new RTP packet to be sent over the
network. I believe that was done through a select or sleep() function. The
computing of the delay was well done by the library. But the timer resolution
of Windows is 15 or 10 ms by default and the requested delay in my case was
much lower given the requested bitrate from the Mpeg2 TS stream. The jitter of
the packets over the network was terrible and the library much of the time was
trying to catch-up from the misbehavior of the Windows Timer default resolution
of 15 ms by bursting the RTP packets over the network.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I solved that problem by using the TimeBeginPeriod(1) to change
the Windows period of the timer to 1 ms. The callback function would then
wakeup much faster and the jitter of the packets went down to an acceptable
level.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Guy Bonneau<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>Just to complet my explaination, please find the 2 IO Graphs
Qvidium vs Live555 rtp streaming.</span><o:p></o:p></p>

<p class=MsoNormal>&nbsp;<o:p></o:p></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>Regards</span><o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<div class=MsoNormal align=center style='text-align:center'><span lang=FR>

<hr size=2 width="100%" align=center>

</span></div>

<p class=MsoNormal style='margin-bottom:12.0pt'><b><span lang=FR
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>De&nbsp;:</span></b><span
lang=FR style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Lambert
Marc <br>
<b>Envoyé&nbsp;:</b> vendredi 9 juillet 2010 15:35<br>
<b>À&nbsp;:</b> 'live-devel@lists.live555.com'<br>
<b>Objet&nbsp;:</b> RTP packet lost when Live555MediaServer streams forward
Dektec DTE3114</span><span lang=FR><o:p></o:p></span></p>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Hello,</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>First
of all, I'm certainly not the first to say that but thank you for this very
nice software.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I
use live555MediaServer in the context of my job and I compilled it with the
option &quot;RTSP_ALLOW_CLIENT_DESTINATION_SETTING&quot; to make me able to
control the server from a device connected on the network and to stream forward
an IPtoTS modulator (DTE-3114 from Dektec) providing a DVB-C signal to a TV.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>My
client is working well and everything is working perfectly with VLC but...</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>When
I replace VLC by the DTE-3114, the outgoing signal is not good with many RTP
packet loss.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Then,
I tryed to change many parameters on each sides but nothing is fixing that.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I
also used the DTE-3114 with the QVidium file streamer (it doesn't have the rtsp
server, just the rtp streamer) and, in that case, I succeed to stream perfectly
until 25Mbps...</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I
captured with Wireshark and there is a difference between the 2 streaming
methodes, the Qvidium&nbsp;seems to allow more time&nbsp;before to send the
next frame and the frame is composed of many UDP packet when Live555 try to
gather perfectly the packets during the time and I guess it is stressing too
much the DTE-3114 to treat this bandwidth on the fly.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Then,
I would like to know if it is possible to change the way to send packet on the
network to try to make my test bench working.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Thank's
in advance</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>&nbsp;<o:p></o:p></p>

</div>

</div>

</div>

</div>

</body>

</html>