Thanks! That put me on the right track, one last question. Once I
have a list of RTSPClientSession objects, what's the best way to
grab it's FramedSource? There doesn't seem to be a straight forward
way to acquire it.
You're right - there isn't, unfortunately. This information isn't
exposed to the "RTSPServer" code, because it's not needed there.
Instead, it's used by the "ServerMediaS(ubs)ession" object for the
stream, via the 'streamToken' pointer (which the "RTSPServer" code
treats as opaque).
Here's what I would do. Unfortunately it requires first moving the
definition of "class StreamState" from
"OnDemandServerMediaSubsession.cpp" to
"include/OnDemandServerMediaSubsession.hh". (I might make that
change in a future release of the code.)
1/ Have your "OnDemandServerMediaSubsession" subclass export a function
FramedSource* framedSource(void* streamToken) {
StreamState* streamState = (StreamState*)streamToken;
return streamState->mediaSource();
}
2/ In your "RTSPServer" subclass, for each RTSPClientSession* clientSession :
for (unsigned i = 0; i < fNumStreamStates; ++i) {
YourOnDemandServerMediaSubsession* subsession
= (YourOnDemandServerMediaSubsession*)
(fStreamStates[i].subsession);
FramedSource* source =
subsession->framedSource(fStreamStates[i].streamToken);
}
--
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel