<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div>So my question is, how can i be able to detect when the proxy has<br>finished with it's configuration and added the camera connection<br>ProxyServerMediaSubsessions?</div></blockquote><div><br></div>First, please add the following - as a public member function - to "liveMedia/include/ProxyServerMediaSession.hh":</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">  Boolean hasBeenInitialized() const { return fProxyRTSPClient != NULL;   }</span></div><div><br></div><div>(I'll include this addition in the next release of the software.)  This function will let you check whether the proxy's back-end "DESCRIBE" command has completed yet.</div><div><br></div><div>Then you'll need to add code like the following to your "lookupServerMediaSession()" implementation, after you've created (or looked up) the "ProxyServerMediaSession" object.  This will 'poll' the "ProxyServerMediaSession" object until its initialization has completed:</div><div><br></div><div>while (!proxyServerMediaSession->hasBeenInitialized()) {</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>int uSecsToDelay = 100000; // 100 ms (polling interval)</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>env->taskScheduler().scheduleDelayedTask(uSecsToDelay, (TaskFunc*)pollProxyServerMediaSession, NULL);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">  </span>env->taskScheduler().doEventLoop(&doneFlag);</div><div><span class="Apple-tab-span" style="white-space:pre">          </span>// where "doneFlag" is a "char" - initialized to 0</div><div>}</div><div><br></div><div>Then define "pollProxyServerMediaSession" to be something like:</div><div><br></div><div><div>static void pollProxyServerMediaSession(void* clientData) {</div><div>    // Signal the event loop that we're done:</div><div>    doneFlag = ~0;</div><div>}</div><div><br></div></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>