<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I am using Live555 library for hosting RTSP url to multiple RTSP clients.<o:p class=""></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">In case all Clients for particular RTSP url (server session) go out of network due to any reasons, how RTSP server will know about “no client is accessing the stream”.</div></div></div></blockquote><div><br class=""></div>This will happen automatically (assuming that you used a non-zero value (e.g., the default value of 65) for the “reclamationTestSeconds” parameter in “RTSPServer::createNew()”).</div><div><br class=""></div><div>If the server sees no activity (RTSP commands or RTCP “RR” packets) from the client in “reclamationTestSeconds” seconds, it will automatically stop streaming to that client.</div><div><br class=""></div><div>When the *final* client goes away, then (assuming that you set “reuseFirstSource” to “True” in your “ OnDemandServerMediaSubsession” subclass’s constructor, when it called the “OnDemandServerMediaSubsession” constructor) the server will automatically close the input source - i.e., it will automatically call “Medium::close()” - and thus the destructor of - whatever ‘input source’ object you created in your implementation of the “createNewStreamSource()” virtual function.</div><div><br class=""></div><div>I.e., if you defined your own “FramedSource” subclass for your ‘input data source’, and create an object of this subclass in your implementation of the “createNewStreamSource()” virtual function, the you should make sure that this subclass's destructor shuts down the input data source.</div><br class=""><br class=""><div apple-content-edited="true" class="">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">Ross Finlayson<br class="">Live Networks, Inc.<br class=""><a href="http://www.live555.com/" class="">http://www.live555.com/</a></span></span>
</div>
<br class=""></body></html>