<span id="mailbox-conversation"><div>Okay, let me try being more specific:</div>
<div><br></div>
<div>1) The application streams RTSP H264 video. </div>
<div>2) The source is a stock source created by the stack while initializing H264 RTP stream for RTSP session. Not subclassing for it at all. A very rudimentary “do-nothing” sink is subclassed from MediaSink. The only method the app ever calls on it is startPlaying().</div>
<div>3) The application is using pull, rather than push, model, so after calling</div>
<div>
<div>            videoSubsession->readSource()->getNextFrame(</div>
<div>                                                    data,</div>
<div>                                                    size,</div>
<div>                                                    OnData,</div>
<div>                                                    this,</div>
<div>                                                    OnClose,</div>
<div id="mb-reply">                                                    this );</div>
<div id="mb-reply"><br></div>
<div id="mb-reply">it blocks using the following code</div>
<div id="mb-reply"><br></div>
<div id="mb-reply">
<div>        TaskScheduler& scheduler = envir().taskScheduler();</div>
<div><br></div>
<div>        eventLoopWatchVariable = 0;<br></div>
<div>        taskRunning = 1;</div>
<div>        if( timeout > 0 ) {</div>
<div>            /* Create a task that will be called if we wait more than timeout ms */</div>
<div>            timeoutTask = scheduler.scheduleDelayedTask( timeout*1000,</div>
<div>                                                        OnTimeout,</div>
<div>                                                        this );</div>
<div>        }</div>
<div>        scheduler.doEventLoop(&eventLoopWatchVariable);</div>
<div>        if( timeout > 0 ) {</div>
<div>            scheduler.unscheduleDelayedTask( timeoutTask );</div>
<div id="mb-reply">        }</div>
<div id="mb-reply"><br></div>
<div id="mb-reply">OnTimeout callback, if it occurs, then simply sets eventLoopWatchVariable (and a variable to determine a timeout had occurred).</div>
<div id="mb-reply"><br></div>
<div id="mb-reply">4) The timeout scenario seems to occur, when running against a stock live555 server, which loops on a movie clip. In between the clips, depending on the timing of session termination, a timeout may occur, followed by another attempt to getNextFrame.</div>
<div id="mb-reply"><br></div>
<div id="mb-reply">Hope this makes things clearer. Thanks!</div>
<div><br></div>
</div>
</div></span><div class="mailbox_signature">
<br>—<br>Sent from <a href="https://www.dropbox.com/mailbox">Mailbox</a>
</div>
<br><br><div class="gmail_quote"><p>On Fri, May 1, 2015 at 1:24 PM, Ross Finlayson <span dir="ltr"><<a href="mailto:finlayson@live555.com" target="_blank">finlayson@live555.com</a>></span> wrote:<br></p><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div>
<blockquote type="cite" class=""><div class=""><div class=""><span id="mailbox-conversation" class=""><div class="">Have been seeing some errors, where if a timeout occurs in getNextFrame, the next getNextFrame call will result in an abort() call (due to fIsCurrentlyAwaitingData being set).</div></span></div></div></blockquote>
<div><br class=""></div>What object is this?  Is this a subclass of “FramedSource” that you have written yourself - e.g., to deliver data from a device?  What are you trying to do?  And what is causing this ‘timeout’?</div>
<div><br class=""></div>
<div>Please, everybody - this is the second time today that we’ve seen a vague question with very few details about exactly how the “LIVE555 Streaming Media” code is being used.  Please remember that this code is used by thousands of developers around the world, for a variety of different purposes - for developing media player clients, media servers (including network cameras), proxy servers, and probably many other ways as well.</div>
<div><br class=""></div>
<div>If you ask a question about the “LIVE555 Streaming Media” code, please try to be specific about exactly what you’re trying to use it for, and where you might be having a problem.</div>
<br class=""><br class=""><div class="">
<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 class="">Live Networks, Inc.<br class=""><a href="http://www.live555.com/" class="">http://www.live555.com/</a></span></span>
</div>
<br class=""></div></blockquote></div><br>