<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;"><br><div><div>On Aug 22, 2014, at 6:34 AM, Barry Folse <<a href="mailto:barry.folse@gmail.com">barry.folse@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">The purpose of my app is to generate 2 video streams from video generated by the same app.  The video is from 2 different eyepoints using OpenGL to create the views. The views are generated and updated concurrently. <div>
<br></div><div>The problem is that only one stream is valid when I use VLC to view them.</div></div></blockquote><div><br></div>Before using VLC to test your server(s), you should use "testRTSPClient" or "openRTSP".  (VLC is not our software.)</div><div><br></div><div><br><blockquote type="cite"><div dir="ltr"><div>In the app, I have set up a Stream class which encapsulates an input view, a thread, an RTSP server, an environment and task scheduler / event loop.</div>
<div><br></div><div>When an Stream object  is created/configured, it starts the thread, which creates the environment / task scheduler / event loop.    When the Stream's input view is finished rendering, it sends a triggerEvent() to the Stream's task scheduler.</div>
<div><br></div><div>Each Stream has a different destination address, RTP/RTCP Port, and RTSP port/URL.</div><div><br></div><div>The second Stream's event handler never gets called by its event loop.</div><div><br></div>
<div>Is it possible that one event loop is handling the triggerEvents from both Streams?</div></div></blockquote><div><br></div>No, not if each thread has its own "UsageEnvironment" and "TaskScheduler" objects (and thus also its own event loop).  I assume you've read</div><div><span class="Apple-tab-span" style="white-space:pre">    </span><a href="http://www.live555.com/liveMedia/faq.html#threads">http://www.live555.com/liveMedia/faq.html#threads</a></div><div><br></div><div>In any case, there's probably no reason for you to use separate threads for each of your servers.  You can run multiple servers (with different ports, of course) within the same (single-threaded) event loop.</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>