Hello Ross,
Could you please advise me how to shutdown RTSP server completely and free all
resources used by it?
Code example:
////////////////////
RTSPServer* rtspServer = MirasysRTSPServer::createNew(*env, port, authDB);
if (rtspServer == NULL) {
*env << "Failed to create RTSP server: " << env->getResultMsg() << "\n";
exit(1);
}
// Adding server sessions and subsessions
env->taskScheduler().doEventLoop(&stop); // does not return
// close RTSP server
Medium::close(rtspServer);
// free environment & scheduler
auto res = env->reclaim();
delete scheduler;
////////////////////
But env->reclaim() call returns False, because of this:
Boolean UsageEnvironment::reclaim() {
// We delete ourselves only if we have no remainining state:
if (liveMediaPriv == NULL && groupsockPriv == NULL) {
delete this;
return True;
}
return False;
}
liveMediaPriv is not null, so it is not removed.
Could you please advise me how to make this liveMediaPriv null? What should be
called to do this?
Best regards,
-----------------------------------------
Victor Vitkovskiy
Senior software developer
mailto: [email protected]
www.mirasys.com
-----Original Message-----
From: live-devel <[email protected]> On Behalf Of Ross Finlayson
Sent: Wednesday, 26 January 2022 19:19
To: LIVE555 Streaming Media - development & use <[email protected]>
Subject: Re: [Live-devel] [Mirasys] Live555 RTSP server questions
EXTERNAL
> On Jan 27, 2022, at 2:37 AM, Victor Vitkovskiy
> <[email protected]> wrote:
>
> Hello Ross,
>
> So, if I understood correctly, if OutPacketBuffer::maxSize is smaller then
> frame, then all that is more then this value will be lost in any way?
Yes.
> I thought that if frame is bigger then buffer then I need to pass this
> buffer part by part in each doGetNextFrame call using fNumTruncatedBytes
> value to define how much data is still remained to send.
No. “doGetNextFrame()” must deliver (or attempt to deliver) only one frame[*]
at a time. But you can’t deliver a frame larger than “fMaxSize”.
[* ]Strictly speaking, in the case of H.264/H.265 video, this is one "NAL unit”
at a time. If you have a very large H.264/H.265 frame, it is best if you can
configure your encoder to break it up into multiple ’slice’ NAL units, and
deliver one of those at a time.
> But according to your last email this fNumTruncatedBytes parameter is useless
> if upper level components just lose all data that is bigger than
> OutPacketBuffer::maxSize.
“fNumTruncatedBytes” is not completely ‘useless’; it gives information to the
downstream object about how much data was lost. But this data is just that -
lost.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel