[Live-devel] RTSPClient using the synchronous interface spinning on the processor

Matt Schuckmannn matt at schuckmannacres.com
Wed Jun 29 14:25:17 PDT 2011


Ok here's what it looks like is happening.
I'm initializing the TaskScheduler, the usageEnvironment, and my 
RTSPClient instance and then calling TaskSchedular::doEvenLoop() without 
having initiated any RTSP connection (I've been doing that later after 
the fact via an outside signal).

The first time BasicTaskScheduler::SingeStep is called the fReadSet, 
fWriteSet, and fExceptionSet are all empty and select() returns an error 
(WSAINVAL) and the code starting on line 86 of BasicTaskScheduler.cpp 
(did I mention I'm on Windows) gets invoked to create a dummySocket so 
that the error doesn't occur again. However, the problem is from then on 
select() will always return immediately indicating that dummySocket is 
ready for writing and that's why my client is spinning at 100 percent on 
the CPU.

So I realize that I'm doing things a little different that openRTSP() 
but I don't think I'm doing anything wrong and my code has worked just 
fine for the last 2 years. Is this a bug in the library (maybe the 
dummySocket shouldn't be added to the fWriteSet)  or should I change the 
way my code works?

Thanks,
Matt S.

On 6/29/2011 10:38 AM, Matt Schuckmannn wrote:
> I just updated my code to use the latest Live555 code and I 
> imeadiately noticed that my RTSP client application is spinning on the 
> processor and taking up 100% of the processor it's running on. I tried 
> running OpenRTSP against the same server and I don't the problem. The 
> main difference between OpenRTSP and my client is my client is still 
> using the synchronous interface and OpenRTSP isn't.
> The application seems to be spinning in the 
> taskScheduler().doEventLoop(), and or SingleStep() methods. It's 
> almost as if Select() is always returning immediately or something 
> like that.
> Did I miss something that I should have changed with my client?
>
> I did noticed that with the new synchronous interface I am nesting 
> calls to doEventLoop().
> i.e. my app cals doEventLoop() at start up and then each time I I need 
> to send a SET_PARAMETER command the synchronous interfaces calls 
> doEventLoop() again, Could this be the problem?
>
> I'll continue to debug and figure it out, but I appreciate any 
> suggestions.
>
> Matt S.
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel


More information about the live-devel mailing list