<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><blockquote type="cite">Thank you for your answer, you right, I modify data source class and, I<br>think, problem solved.<br><br>Class Frame is sublass FramedSource.<br>void Frame::doGetNextFrame()<br>{<br>    fFrameSize = 0;<br>    fNumTruncatedBytes = 0;<br><br>    get data code<br><br>    if (fFrameSize)<br>        FramedSource::afterGetting(this);<br>    else<br>        doGetNextFrame();<br><br>}<br><br>But I not sure what this method optimal.<br></blockquote><div><br></div></div>The problem with this is that you're making (potentially) infinite recursive calls.  If the next frame doesn't become available 'soon', you'll overflow the call stack.  It'd be better to turn this into a loop - i.e.:<div><br></div><div>void Frame::doGetNextFrame()<br>{<br>   fFrameSize = 0;<br>   fNumTruncatedBytes = 0;<br><br>  do {</div><div>     get data code</div><div>  } while (fFrameSize == 0);<br><br>   FramedSource::afterGetting(this);<br>}<br></div><div><br></div><div>But even this is suboptimal, because it chews up CPU time (in the loop) when no frame is available.  During that time, you won't be returning to the event loop to handle other events.  It'd be better to do asynchronous I/O, e.g, as illustrated in our "DeviceSource.cpp" example code.</div><br><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>