22#ifndef _ON_DEMAND_SERVER_MEDIA_SUBSESSION_HH
23#define _ON_DEMAND_SERVER_MEDIA_SUBSESSION_HH
25#ifndef _SERVER_MEDIA_SESSION_HH
31#ifndef _BASIC_UDP_SINK_HH
46 virtual char const*
sdpLines(
int addressFamily);
48 struct sockaddr_storage
const& clientAddress,
49 Port const& clientRTPPort,
50 Port const& clientRTCPPort,
52 unsigned char rtpChannelId,
53 unsigned char rtcpChannelId,
55 struct sockaddr_storage& destinationAddress,
56 u_int8_t& destinationTTL,
61 virtual void startStream(
unsigned clientSessionId,
void* streamToken,
63 void* rtcpRRHandlerClientData,
64 unsigned short& rtpSeqNum,
65 unsigned& rtpTimestamp,
67 void* serverRequestAlternativeByteHandlerClientData);
68 virtual void pauseStream(
unsigned clientSessionId,
void* streamToken);
69 virtual void seekStream(
unsigned clientSessionId,
void* streamToken,
double& seekNPT,
double streamDuration, u_int64_t& numBytes);
70 virtual void seekStream(
unsigned clientSessionId,
void* streamToken,
char*& absStart,
char*& absEnd);
72 double streamEndTime, u_int64_t& numBytes);
73 virtual void setStreamScale(
unsigned clientSessionId,
void* streamToken,
float scale);
78 virtual void deleteStream(
unsigned clientSessionId,
void*& streamToken);
98 unsigned& estBitrate) = 0;
101 unsigned char rtpPayloadTypeIfDynamic,
107 unsigned char const* cname,
RTPSink* sink);
120 u_int8_t* appDependentData,
unsigned appDependentDataSize);
131 unsigned estBitrate);
159 Port const& rtpDestPort,
160 Port const& rtcpDestPort)
163 Destinations(
int tcpSockNum,
unsigned char rtpChanId,
unsigned char rtcpChanId,
190 TaskFunc* rtcpRRHandler,
void* rtcpRRHandlerClientData,
192 void* serverRequestAlternativeByteHandlerClientData);
195 u_int8_t* appDependentData,
unsigned appDependentDataSize);
void RTCPAppHandlerFunc(void *clientData, u_int8_t subtype, u_int32_t nameBytes, u_int8_t *appDependentData, unsigned appDependentDataSize)
void ServerRequestAlternativeByteHandler(void *instance, u_int8_t requestByte)
void TaskFunc(void *clientData)
unsigned char rtcpChannelId
unsigned char rtpChannelId
Destinations(int tcpSockNum, unsigned char rtpChanId, unsigned char rtcpChanId, TLSState *tlsSt)
struct sockaddr_storage addr
Destinations(struct sockaddr_storage const &destAddr, Port const &rtpDestPort, Port const &rtcpDestPort)
char const * name() const
Port const & serverRTCPPort() const
void sendRTCPAppPacket(u_int8_t subtype, char const *name, u_int8_t *appDependentData, unsigned appDependentDataSize)
Boolean fAreCurrentlyPlaying
StreamState(OnDemandServerMediaSubsession &master, Port const &serverRTPPort, Port const &serverRTCPPort, RTPSink *rtpSink, BasicUDPSink *udpSink, unsigned totalBW, FramedSource *mediaSource, Groupsock *rtpGS, Groupsock *rtcpGS)
FramedSource * fMediaSource
unsigned & referenceCount()
float streamDuration() const
RTPSink * rtpSink() const
void endPlaying(Destinations *destinations, unsigned clientSessionId)
void startPlaying(Destinations *destinations, unsigned clientSessionId, TaskFunc *rtcpRRHandler, void *rtcpRRHandlerClientData, ServerRequestAlternativeByteHandler *serverRequestAlternativeByteHandler, void *serverRequestAlternativeByteHandlerClientData)
FramedSource * mediaSource() const
OnDemandServerMediaSubsession & fMaster
Port const & serverRTPPort() const
RTCPInstance * fRTCPInstance
RTCPInstance * rtcpInstance() const