<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: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=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:right;
        direction:rtl;
        unicode-bidi:embed;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
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;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
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 style='text-align:left;direction:ltr;unicode-bidi:embed'>Hi,
<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>We
are trying to stream from a live source with Live555. <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>We implement
our own DeviceSource class. In this class we implement doGetNextFrame in the following
(logic) way. We remove all the unnecessary implementation details so you can
see the idea <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>If no
frame is available do the following<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>&nbsp;
nextTask() = envir().taskScheduler().scheduleDelayedTask(30000,(TaskFunc*)nextTime,
this);<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>If a
frame is available do the following <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>If (fFrameSize
&lt; fMaxSize)<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>{<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;text-indent:36.0pt;direction:ltr;
unicode-bidi:embed'>memcpy(fTo, Buffer_getUserPtr(hEncBuf) ,fFrameSize); //
copy the frame to Live555 <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;text-indent:36.0pt;direction:ltr;
unicode-bidi:embed'>nextTask() = envir().taskScheduler().scheduleDelayedTask(0,(TaskFunc*)FramedSource::afterGetting,
this);<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>}<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>else
<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>{<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;text-indent:36.0pt;direction:ltr;
unicode-bidi:embed'>What should we do? (We do not understand what should we do
in this option) <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>}<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>As
you can see we would like to feed the Live555 frame by frame from the live source.
However, after some calls of the function doGetNextFrame the fMaxSize is
smaller than fFrameSize and the application is in deadlock state. <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>We
do not understand what should we do in order to eliminate this state. <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>We
can give part of a frame to Live555 but then it means that we are not going to
feed the Live555 library in frame by frame scenario. (We can build a byte buffer
between the live source and live555 but we do not sure it is the right way) <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>Please
let us know what is the preferred way of handing this issue <o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>Thanks,<o:p></o:p></p>

<p class=MsoNormal style='text-align:left;direction:ltr;unicode-bidi:embed'>Sagi<o:p></o:p></p>

</div>

</body>

</html>