[Live-devel] Problem with doEventLoop() in Qt
antonio nunziante
nunzianteantonio at gmail.com
Mon Oct 31 01:58:56 PDT 2011
Hi,
i have the error the second time I call the method SingleStep(0) in my
doEventLoop() method.
It occurs in this block of instructions (exactly at the instruction (*
handler->handlerProc)(handler->clientData, resultConditionSet) )
if (handler == NULL && fLastHandledSocketNum >= 0) {
// We didn't call a handler, but we didn't get to check all of them,
// so try again from the beginning:
iter.reset();
while ((handler = iter.next()) != NULL) {
int sock = handler->socketNum; // alias
int resultConditionSet = 0;
if (FD_ISSET(sock, &readSet) && FD_ISSET(sock,
&fReadSet)/*sanity check*/) resultConditionSet |= SOCKET_READABLE;
if (FD_ISSET(sock, &writeSet) && FD_ISSET(sock,
&fWriteSet)/*sanity check*/) resultConditionSet |= SOCKET_WRITABLE;
if (FD_ISSET(sock, &exceptionSet) && FD_ISSET(sock,
&fExceptionSet)/*sanity check*/) resultConditionSet |=
SOCKET_EXCEPTION;
if ((resultConditionSet&handler->conditionSet) != 0 &&
handler->handlerProc != NULL) {
fLastHandledSocketNum = sock;
// Note: we set "fLastHandledSocketNum" before calling the handler,
// in case the handler calls "doEventLoop()" reentrantly.
(*handler->handlerProc)(handler->clientData, resultConditionSet);
break;
}
}
if (handler == NULL) fLastHandledSocketNum = -1;//because we
didn't call a handler
}
Could I attach my code?
Thank you
-Antonio
2011/10/28 Ross Finlayson <finlayson at live555.com>
> I'm trying to implement a GUI with QtWidget in order to show video frame
> from a rtsp camera.
>
> I started from the code of openRTSP and I modified it in order to have c++
> classes.
>
> After it runs:
>
> env->taskScheduler().doEventLoop();
>
> it comes back to the "continueAfterOPTIONS" member function. The problem
> is that all class variables lose their values, probably a problem with
> memory management.
>
>
> The problem is more likely to be that you're not using this function
> correctly. Note that the "continueAfterOPTIONS()" function (and the other
> "continueAfter...()" functions) take a "RTSPClient*" as the first
> parameter. In the current code, this parameter is not used (because we
> have only one "RTSPClient" object, which is a global variable
> "ourRTSPClient"). However, if you want to use this code in your own custom
> application - where the "RTSPClient" object is not a global variable (or
> there's more than one "RTSPClient" object) - then you will need to use this
> first parameter to the "continueAfter...()" functions; it will point to the
> "RTSPClient" object.
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
>
--
*
Antonio Nunziante
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20111031/083447af/attachment-0001.html>
More information about the live-devel
mailing list