<html><head><base href="x-msg://370/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; 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; "><div lang="EN-GB" link="blue" vlink="purple"><div class="WordSection1" style="page: WordSection1; "><pre style="margin-top: 0cm; margin-right: 0cm; margin-left: 0cm; margin-bottom: 0.0001pt; font-size: 10pt; font-family: 'Courier New'; ">>In your "OnDemandServerMediaSubsession" subclass constructor, are you setting the "reuseFirstSource" parameter (in the parent class constructor) to True?  This is important if - as in your case - you're streaming from a live input source.  It prevents a new input source object from being created each time a new client connects.<o:p></o:p></pre><div style="margin-top: 0cm; margin-right: 0cm; margin-left: 0cm; margin-bottom: 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; "><span style="font-size: 10pt; font-family: 'Courier New'; "><o:p> </o:p></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-left: 0cm; margin-bottom: 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">Yes, I believe I am setting this flag to true, so I can’t understand why I’m getting more source objects (and an increasing reference count).</div></div></div></span></blockquote><div><br></div></div>OK.  However, it turns out that your "createNewStreamSource()" function gets called twice (but no more), even if you've set the "reuseFirstParameter" to True.  The first call is used to create 'dummy' source objects that might (depending upon the codec) be needed in order to determine the stream's SDP description (which the server will return in the response to the RTSP "DESCRIBE" command).  Then this dummy source object gets closed.  And then afterwards, when the first client does a RTSP "PLAY", "createNewStreamSource()" will get called again.  (But because you've set "reuseFirstSource" to True, it won't get called again, even if more clients connect.)<div><br></div><div>So, your code needs to be prepared for the following, in order:</div><div>1/ Your "createNewStreamSource()" gets called.</div><div>2/ The destructor of your source object (the one that was returned by the first call to "createNewStreamSource()") gets called.</div><div>3/ Your "createNewStreamSource()" gets called again.</div><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>