[Live-devel] When streaming RTP over TCP, Live555 Proxy Server sometimes does not reconnect to 'back end' device

Erik Montnemery erik at montnemery.com
Sat Jan 7 02:44:43 PST 2017


>> The problem frequently occurs in the following scenarios:
>> 1) ProxyRTSPClient::continueAfterLivenessCommand called from within
>> the stack frame of SocketDescriptor::tcpReadHandler.
>> 2) A client to the proxy server issues PLAY while the connection to the
>> 'back end' is being reestablished.
> It seems the 2nd issue was already corrected by the change in
> RTSPClient.cpp introduced in the 2016.11.28 version of live555.
This was not correct, both issues are present also in the latest version.

I've attached a patch which:
1. Adds a new member function scheduleReset() to ProxyRTSPClient
This function is used to ensure the reset (including reconnection to
'back-end') is not done from within call stack of
SocketDescriptor::tcpReadHandler.
2. Overrides RTSPClient::connectToServer in ProxyRTSPClient
The overriding version will reset the ProxyRTSPClient if DESCRIBE has
previously been sent.
The purpose is to prevent a client to the Proxy from doing PLAY while
reconnection to the 'back-end' is in progress. If this is allowed,
RTSPClient::connectionHandler is replaced by SocketDescriptor::tcpReadHandler
before the connectionHandler is called, meaning the RTSPClient is not
functional.

/Erik
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Proxyserver_TCP_reconnect.patch
Type: application/octet-stream
Size: 10460 bytes
Desc: not available
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20170107/2d1d2c7c/attachment.obj>


More information about the live-devel mailing list