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// -----------------------------------------
17class 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