1 | /* --------------------------------------------------------------------------- |
2 | ** This software is in the public domain, furnished "as is", without technical |
3 | ** support, and with no warranty, express or implied, as to its usefulness for |
4 | ** any purpose. |
5 | ** |
6 | ** ServerMediaSubsession.h |
7 | ** |
8 | ** -------------------------------------------------------------------------*/ |
9 | |
10 | #pragma once |
11 | |
12 | #include "ServerMediaSubsession.h" |
13 | |
14 | // ----------------------------------------- |
15 | // ServerMediaSubsession for Unicast |
16 | // ----------------------------------------- |
17 | class UnicastServerMediaSubsession : public OnDemandServerMediaSubsession , public BaseServerMediaSubsession |
18 | { |
19 | public: |
20 | static UnicastServerMediaSubsession* createNew(UsageEnvironment& env, StreamReplicator* replicator, const std::string& format); |
21 | |
22 | protected: |
23 | UnicastServerMediaSubsession(UsageEnvironment& env, StreamReplicator* replicator, const std::string& format) |
24 | : OnDemandServerMediaSubsession(env, False), BaseServerMediaSubsession(replicator), m_format(format) {}; |
25 | |
26 | virtual FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate); |
27 | virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource); |
28 | virtual char const* getAuxSDPLine(RTPSink* rtpSink,FramedSource* inputSource); |
29 | |
30 | protected: |
31 | const std::string m_format; |
32 | }; |
33 | |
34 | |
35 | |