<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><blockquote type="cite"><div style="font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Thank you Ross for clarification, its more clear now. Now I am facing issue that i have separate thread that pushes audio packets for my device source to stream. I trigger event each time I push packet to that queue. I noticed that on VLC my audio comes for about a second and then stops. When I debugged my code I found that I have more than 1000 packets in my audio queue waiting to be streamed by devicesource.<br><br>I think what is happening is that whenever I trigger an event and that event is already happening it ignores it, is it correct? Whats is the correct way to handle this. I think the audio packets should be streamed at the same rate as they are being encoded from live source.<br></div></blockquote><div><br></div>This should all be OK, provided that your "doGetNextFrame()" implementation knows to check for (queued) data that is immediately available, rather than always waiting for a triggered event.  Note this code on lines 87-90 of "DeviceSource.cpp":</div><div><br></div><div><div style="margin: 0px; font-size: 12px; font-family: Monaco;">  // If a new frame of data is immediately available to be delivered, then do this now:</div><div style="margin: 0px; font-size: 12px; font-family: Monaco;">  if (0 /* a new frame of data is immediately available to be delivered*/ /*%%% TO BE WRITTEN %%%*/) {</div><div style="margin: 0px; font-size: 12px; font-family: Monaco;">    deliverFrame();</div><div style="margin: 0px; font-size: 12px; font-family: Monaco;">  }</div><div><br></div><div>Replace the "0" with some test that checks whether queued data is immediately available.  (Remember that because your queue data structure is also being written to by the encoding thread, it needs to be 'thread safe'.)</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;  "><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>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>