<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div>When implementing liveMedia using multiple streams in one process I see two<br>choices:<br><br> 1. Each stream is kept totally separate. I.e. each stream have their own<br>TaskScheduler, UsageEnvironment, eventLoopWatchVariable and each<br>doEventLoop() is running in a separate thread.<br><br> 2. The rtspClient's share the same TaskScheduler, UsageEnvironment,<br>eventLoopWatchVariable and there is one doEventLoop() running (as in the<br>testRTSPClient project). <br></div></blockquote><div><br></div>Correct.  Those are the only two choices, *if* you have also chosen to use just one process.  (Note below.)</div><div><br></div><div><br><blockquote type="cite"><div>I've current implemented design 1, while I see option 2 being the intended<br>choice. The reason for picking 1 is the added "security" of keeping each<br>stream entirely independent, i.e. if an exception occurs for any reason only<br>one stream should be affected.<br></div></blockquote><div><br></div>Well, it depends on what you mean by "exception".  If one thread has a memory access error, then it will kill the entire process.  And there's nothing to prevent one thread (due to a bug somewhere) from stepping all over memory that's used by another thread.  So there's really not much 'security' here at all.</div><div><br></div><div>If your streams really are "entirely independent", then why not use one process for each stream?  That is by far the safest and most reliable approach.</div><div><br></div><div>But for some odd reason, here in the 21st century, the idea of structuring an application as multiple processes seems to have fallen our of favor...</div><div><br></div><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; font-size: medium; "><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; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>