<div dir="ltr"><br>Thank you. That worked perfectly. I also had to overwrite createNew(), constructor and destructor as well to make it work properly.<br><div class="gmail_extra"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>You should not need to do this (especially if you want support on this mailing list).</div><div><br></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></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 style="white-space:pre-wrap">       </span>createNewClientSession()</div><div>virtual function (which gets called after each client’s first “SETUP” command), or the</div><div><span style="white-space:pre-wrap">      </span>RTSPClientSession::handleCmd_PLAY()</div><div>virtual function (which gets called each each client’s “PLAY” command).</div><span><font color="#888888"></font></span></div><a href="http://lists.live555.com/mailman/listinfo/live-devel" rel="noreferrer" target="_blank"></a>
<br></blockquote></div><br></div></div>