Okay, let me try being more specific:



1) The application streams RTSP H264 video. 

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().

3) The application is using pull, rather than push, model, so after calling


            videoSubsession->readSource()->getNextFrame(

                                                    data,

                                                    size,

                                                    OnData,

                                                    this,

                                                    OnClose,

                                                    this );




it blocks using the following code





        TaskScheduler& scheduler = envir().taskScheduler();




        eventLoopWatchVariable = 0;


        taskRunning = 1;

        if( timeout > 0 ) {

            /* Create a task that will be called if we wait more than timeout 
ms */

            timeoutTask = scheduler.scheduleDelayedTask( timeout*1000,

                                                        OnTimeout,

                                                        this );

        }

        scheduler.doEventLoop(&eventLoopWatchVariable);

        if( timeout > 0 ) {

            scheduler.unscheduleDelayedTask( timeoutTask );

        }




OnTimeout callback, if it occurs, then simply sets eventLoopWatchVariable (and 
a variable to determine a timeout had occurred).




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.




Hope this makes things clearer. Thanks!









—
Sent from Mailbox

On Fri, May 1, 2015 at 1:24 PM, Ross Finlayson <finlay...@live555.com>
wrote:

>> 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).
> 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’?
> 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.
> 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.
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to