<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000">I have been experimenting with a multicast to unicast RTSP relay, as
    demonstrated in testOnDemandRTSPServer.<br></div></blockquote><div><br></div>Since the "testOnDemandRTSPServer" demonstrates how to stream from *files* to (unicast) clients, it does not 'demonstrate' multicast to unicast RTSP relaying at all.  Therefore, you must have modified the supplied application's code in some (unspecified) way.  So I don't really see how I can help you.</div><div><br></div><div>However (because you are apparently a professional developer, and not some @<a href="http://gmail.com">gmail.com</a> nobody) I'll give it a try...</div><div><br></div><div><br><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000">However, if <i><b>all</b></i> clients leave, the multicast source
    seems to become closed</div></blockquote><div><br></div></div>Once again, you haven't said how you have modified the supplied code, but it sounds like you added a new "OnDemandServerMediaSubsession" subclass that (1) correctly sets "reuseFirstSource" to True, and (2) redefines the "createNewStreamSource()" virtual function to create a new input source object (of some unspecified type...).<div><br></div><div><div>If you do this, then, yes, the input source object will get closed (and its destructor called) whenever the last RTSP client leaves.  This is the proper behavior, because we want the input source to be closed when noone is requesting its data.  (Similarly, when another client arrives later, "createNewStreamSource()" will get called again, and a new input source object will get created.)</div></div><div><br></div><div>So, you need to figure out how to get your (unspecified) input source object to behave the way you want when (1) an object of this type is constructed, and (2) an object of this type is destroyed.</div><br><br><div apple-content-edited="true">
<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; font-size: medium; "><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; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>