[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