[Live-devel] Live555 Proxy add/remove frequently
Gous Mulla
gmulla at nvidia.com
Mon Aug 12 22:42:19 PDT 2024
Below is the high-level implementation for creating and deleting proxies in an RTSP server.
The addProxy and removeProxy methods are invoked multiple times in a random order by the application.
int RtspServer::addProxy(const string& streamName)
{
std::lock_guard<std::mutex> lock(m_proxyLock);
// Check whether we already have a "ServerMediaSession" for this stream, Remove it.
m_rtspServer->lookupServerMediaSession(streamName.c_str(), ...)
m_sms = ProxyServerMediaSession::createNew(streamName, ..);
m_rtspServer->addServerMediaSession(m_sms);
proxyStreamURL = m_rtspServer->rtspURL(m_sms);
}
int RtspServer::removeProxy(const string& streamName)
{
std::lock_guard<std::mutex> lock(m_proxyLock);
// Find " ServerMediaSession " & delete it
GenericMediaServer::ServerMediaSessionIterator *iter =
new GenericMediaServer::ServerMediaSessionIterator(*this);
ServerMediaSession *sms = NULL;
while((sms = (ServerMediaSession *)iter->next()) != NULL) {
if (sms) {
if(strcmp(sms->streamName(), streamName) == 0) {
m_rtspServer ->deleteServerMediaSession(sms);
}
}
}
delete iter;
}
Thanks & Regards,
Gous Mulla
Senior Software Engineer, Nvidia
http://www.nvidia.com/
-----Original Message-----
From: live-devel <live-devel-bounces at us.live555.com> On Behalf Of Ross Finlayson
Sent: Tuesday, August 13, 2024 10:45 AM
To: LIVE555 Streaming Media - development & use <live-devel at us.live555.com>
Subject: Re: [Live-devel] Live555 Proxy add/remove frequently
External email: Use caution opening links or attachments
> On Aug 12, 2024, at 9:55 PM, Gous Mulla via live-devel <live-devel at us.live555.com> wrote:
>
> We’ve confirmed that the same crash occurs in the latest live version, 2024.08.01.
OK, it looks like there is a bug in the LIVE555 code that is causing this, because it should be OK for a (proxy) server to delete - using “deleteServerMediaSession()” - a “ServerMediaSession” that it had previously created by calling "ProxyServerMediaSession::createNew(). But it might be hard for me to reproduce this, because you have modified the supplied source code.
Can you say some more about how you are creating/deleting “ServerMediaSession”s (in situations where this crash occurs)? Do you ever see the crash when you create (and later delete) only a single “ServerMediaSession”? Or are you only seeing it when you create (and later delete) multiple “ServerMediaSession”s within your server?
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
More information about the live-devel
mailing list