<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Aug 13, 2015, at 5:16 AM, Usama Shah <<a href="mailto:usama.shah@gorillabox.net" class="">usama.shah@gorillabox.net</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I need to send some extra data `sendIframes` when a new client connects to our RTSP server. This is what I have found and done so far<br class=""><br class="">    env->taskScheduler().scheduleDelayedTask(5000000, (TaskFunc*)sendIframes, NULL); //failed<br class="">    //delaying is useless as we need to send only to the new client connects<br class=""><br class="">    EventTriggerId eId = env->taskScheduler().createEventTrigger((TaskFunc*)sendIframes); <br class="">    env->taskScheduler().triggerEvent(eId,NULL);//failed<br class="">    //how do we trigger it when new client connects or when streaming starts for the new client?<br class=""><br class="">    env->taskScheduler().setBackgroundHandling(0, SOCKET_READABLE|SOCKET_WRITABLE,(TaskScheduler::BackgroundHandlerProc*)&sendIframes,NULL);//how to use this?<br class="">    //this looks like the right way to do what we want but how exactly?<br class="">    <br class="">    env->taskScheduler().doEventLoop(); // does not return<br class="">    <br class="">`doEventLoop()` handles new connections and send stream to the new clients all be itself.<br class=""><br class="">At the moment only thing I can think of is to edit the source code of Live555. <br class=""></div></div></blockquote><div><br class=""></div>You should not need to do this (especially if you want support on this mailing list).</div><div><br class=""></div><div>If you don’t have “reuseFirstSource” set to True in your “OnDemandServerMediaSubsession” subclass(es), then a new instance of your media source object will be created each time a new client connects.  In that case you can simply insert the ‘I frames’ at the start of the data that your media source object delivers.</div><div><br class=""></div><div>If, however, you have "reuseFirstSource” set to True in your “OnDemandServerMediaSubsession” subclass(es) - e.g., because you’re streaming from a live source - then things get more complicated (because the media source object doesn’t learn directly when the 2nd (and later) concurrent client connects to the server).  In that case, you could subclass your “RTSPServer”, and reimplement either the</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>createNewClientSession()</div><div>virtual function (which gets called after each client’s first “SETUP” command), or the</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>RTSPClientSession::handleCmd_PLAY()</div><div>virtual function (which gets called each each client’s “PLAY” command).</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><div class=""><br class="webkit-block-placeholder"></div>
<br class=""></body></html>