Dear Sir! I upgrade my old version of live555 on one latest (from 2011/Jan/24) and pay attention on small difference in functionality in RTSP server that I don't clearly understood. I mean this API:
void RTSPServer::RTSPClientSession ::livenessTimeoutTask(RTSPClientSession* clientSession); As written in new version of live555 client session object always deleted, even this is multicast session. But "old version" of live555 delete the client session object on timeout only in unicast mode. This is fragment from "old' version: ===================== void RTSPServer::RTSPClientSession ::livenessTimeoutTask(RTSPClientSession* clientSession) { // If this gets called, the client session is assumed to have timed out, // so delete it: // However, we don't timeout multicast sessions, because to do so would require // closing all client sessions that have requested the stream - not just this one. // Also, the multicast stream itself would usually not be halted, in any case. if (clientSession->isMulticast()) return; #ifdef DEBUG fprintf(stderr, "RTSP client session from %s has timed out (due to inactivity)\n", our_inet_ntoa(clientSession->fClientAddr.sin_addr)); #endif delete clientSession; } And this code fragment form latest version of live555: ======================== void RTSPServer::RTSPClientSession ::livenessTimeoutTask(RTSPClientSession* clientSession) { if (clientSession->isMulticast()) return; // If this gets called, the client session is assumed to have timed out, // so delete it: delete clientSession; clientSession = NULL; } Maybe I don't clearly understood how live555 service the multicast client, but I would be very glad on your explain why multicast checking removed from livenessTimeoutTask API??? Best regards, Marat Shchuchinsky DSP software engineer
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel