2021-01-07 00:26:08 +08:00
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
** This software is in the public domain, furnished "as is", without technical
|
|
|
|
** support, and with no warranty, express or implied, as to its usefulness for
|
|
|
|
** any purpose.
|
|
|
|
**
|
|
|
|
** ServerMediaSubsession.h
|
|
|
|
**
|
|
|
|
** -------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "zm_rtsp_server_server_media_subsession.h"
|
|
|
|
|
|
|
|
// -----------------------------------------
|
|
|
|
// ServerMediaSubsession for Unicast
|
|
|
|
// -----------------------------------------
|
|
|
|
class UnicastServerMediaSubsession :
|
|
|
|
public OnDemandServerMediaSubsession,
|
|
|
|
public BaseServerMediaSubsession
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
static UnicastServerMediaSubsession* createNew(
|
|
|
|
UsageEnvironment& env,
|
|
|
|
StreamReplicator* replicator,
|
|
|
|
const std::string& format);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
UnicastServerMediaSubsession(
|
|
|
|
UsageEnvironment& env,
|
|
|
|
StreamReplicator* replicator,
|
|
|
|
const std::string& format)
|
|
|
|
:
|
2021-01-23 09:24:12 +08:00
|
|
|
OnDemandServerMediaSubsession(env, true
|
|
|
|
/* Boolean reuseFirstSource, portNumBits initialPortNum=6970, Boolean multiplexRTCPWithRTP=False */
|
|
|
|
),
|
2021-01-07 00:26:08 +08:00
|
|
|
BaseServerMediaSubsession(replicator),
|
|
|
|
m_format(format) {};
|
|
|
|
|
|
|
|
virtual FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate);
|
|
|
|
virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource);
|
2021-01-23 09:24:12 +08:00
|
|
|
virtual char const* getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource);
|
2021-01-07 00:26:08 +08:00
|
|
|
|
|
|
|
protected:
|
|
|
|
const std::string m_format;
|
|
|
|
};
|