<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-cite-prefix">On 9/27/2012 7:06 AM, Ross Finlayson
wrote:<br>
</div>
<blockquote
cite="mid:CABA41FF-0F6A-4235-B97E-0DB6AA07F953@live555.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<div>Note that, in contrast, an "OnDemandServerMediaSubsession"
object is the *wrong* thing to be inspecting, because that class
represents a piece of media that can be streamed, possibly
several different times (sequentially or concurrently), to many
different clients (which might have request TCP streaming, or
UDP streaming).</div>
<div><br>
</div>
<div>And a "StreamState" object is also the wrong thing to be
inspecting, because that class represents the state of a
currently ongoing stream (from the piece of media represented by
an "OnDemandServerMediaSubsession" object), *possibly to several
different concurrent clients* (if the "reuseFirstSource"
parameter was set to True).</div>
<div><br>
</div>
</blockquote>
<br>
<blockquote
cite="mid:CABA41FF-0F6A-4235-B97E-0DB6AA07F953@live555.com"
type="cite">
<div>In fact, I'm not convinced that any developer needs to have
the "StreamState" class (or the "Destinations" class) visible,
so there's a good chance that this visibility will be removed in
future releases of the software. (So if you, or anyone,
believes that they really need these classes to remain visible,
then please let us know ASAP.)</div>
<br>
</blockquote>
<br>
For an example, our sever session status widget displays, among
other things the RTP and RTCP ports for UDP that are in use for each
stream in each client session. Right or wrong the way we did it
before was by sub-classing RTSPClientSession so we'd have access to
the void* streamToken for each stream and then through
OnDemaindMediaSubsession (or a subclass there of) inspecting the
values in the StreamState object. Each RTSPClientSession object has
a list of StreamState objects that appears to hold all of this kind
of information and it appears to be specific to the client session.
Looking at OnDemandServerMediaSubsession::getStreamParameters() it
looks like the StreamState and Destinations objects do get shared if
fReuseFirstSource is true otherwise a new set of each gets created
for each client session. In our case fReuseFirstSource is never true
so any sharing have states has never been a problem.<br>
I'm not quite sure how it works if fReuseFirstSource is set and one
client requests a TCP connection and another a UDP? <br>
Spending a few minutes looking at the code this morning I can't see
another easy way to do this.<br>
<br>
In looking at the change log, in June of last year you intentionally
moved the definition of StreamState to
OnDemandServerMediaSubsession.hh so that subclasses of
OnDemandServerMediaSubsession could access them. I remember when you
did this and I thought it was due to a specific request from the
mailing list but I can't find the thread now. <br>
<br>
Matt S. <br>
<br>
<blockquote
cite="mid:CABA41FF-0F6A-4235-B97E-0DB6AA07F953@live555.com"
type="cite"><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; 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 moz-do-not-send="true" href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
live-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:live-devel@lists.live555.com">live-devel@lists.live555.com</a>
<a class="moz-txt-link-freetext" href="http://lists.live555.com/mailman/listinfo/live-devel">http://lists.live555.com/mailman/listinfo/live-devel</a>
</pre>
</blockquote>
<br>
</body>
</html>