<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=""><div><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Now, our RTSP server stream H264+AAC works well with one client.</div>
<div class="">If there is the second client to connect our server, first client’s video will freeze.</div></div></div></blockquote><div><br class=""></div>If you’re streaming from a live source, then your subclass of “OnDemandServerMediaSubsession” needs to set the “reuseFirstSource” parameter to “True” when it calls the “OnDemandServerMediaSubsession” constructor.  (This tells the server to use the same stream data for all concurrent clients.)</div><div><br class=""></div><div><br class=""></div><div><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I got the reason because doGetNextFrame will be blocked</div></div></div></blockquote><div><br class=""></div>No, the “doGetNextFrame()” function should never ‘block’ (or ‘spin wait’) for data.  If no data is immediately available when “doGetNextFrame()” is called, then “doGetNextFrame()” should return immediately.  Note the example code (and comments) in “liveMedia/DeviceSource.cpp”.</div><div><br class=""></div><div>Once again:</div><div>Unfortunately, we’ve probably now reached the limit for how much assistance I can provide you ‘for free’ on this mailing list.  If your company is interested in having me consult further on your project, then please have your management let me know (via separate email).</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>
<br class=""></body></html>