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
49 Port const& clientRTPPort,
50 Port const& clientRTCPPort,
52 unsigned char rtpChannelId,
53 unsigned char rtcpChannelId,
55 u_int8_t& destinationTTL,
60 virtual void startStream(
unsigned clientSessionId,
void* streamToken,
62 void* rtcpRRHandlerClientData,
63 unsigned short& rtpSeqNum,
64 unsigned& rtpTimestamp,
66 void* serverRequestAlternativeByteHandlerClientData);
67 virtual void pauseStream(
unsigned clientSessionId,
void* streamToken);
68 virtual void seekStream(
unsigned clientSessionId,
void* streamToken,
double& seekNPT,
double streamDuration, u_int64_t& numBytes);
69 virtual void seekStream(
unsigned clientSessionId,
void* streamToken,
char*& absStart,
char*& absEnd);
70 virtual void nullSeekStream(
unsigned clientSessionId,
void* streamToken,
71 double streamEndTime, u_int64_t& numBytes);
72 virtual void setStreamScale(
unsigned clientSessionId,
void* streamToken,
float scale);
77 virtual void deleteStream(
unsigned clientSessionId,
void*& streamToken);
97 unsigned& estBitrate) = 0;
100 unsigned char rtpPayloadTypeIfDynamic,
106 unsigned char const* cname,
RTPSink* sink);
119 u_int8_t* appDependentData,
unsigned appDependentDataSize);
130 unsigned estBitrate);
156 Port const& rtpDestPort,
157 Port const& rtcpDestPort)
160 Destinations(
int tcpSockNum,
unsigned char rtpChanId,
unsigned char rtcpChanId)
184 TaskFunc* rtcpRRHandler,
void* rtcpRRHandlerClientData,
186 void* serverRequestAlternativeByteHandlerClientData);
189 u_int8_t* appDependentData,
unsigned appDependentDataSize);
float streamDuration() const
FramedSource * mediaSource() const
void TaskFunc(void *clientData)
Destinations(struct in_addr const &destAddr, Port const &rtpDestPort, Port const &rtcpDestPort)
unsigned & referenceCount()
FramedSource * fMediaSource
Destinations(int tcpSockNum, unsigned char rtpChanId, unsigned char rtcpChanId)
void endPlaying(Destinations *destinations, unsigned clientSessionId)
Port const & serverRTCPPort() const
Port const & serverRTPPort() const
unsigned char rtcpChannelId
void startPlaying(Destinations *destinations, unsigned clientSessionId, TaskFunc *rtcpRRHandler, void *rtcpRRHandlerClientData, ServerRequestAlternativeByteHandler *serverRequestAlternativeByteHandler, void *serverRequestAlternativeByteHandlerClientData)
Boolean fAreCurrentlyPlaying
unsigned char rtpChannelId
void sendRTCPAppPacket(u_int8_t subtype, char const *name, u_int8_t *appDependentData, unsigned appDependentDataSize)
RTCPInstance * fRTCPInstance
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)
StreamState(OnDemandServerMediaSubsession &master, Port const &serverRTPPort, Port const &serverRTCPPort, RTPSink *rtpSink, BasicUDPSink *udpSink, unsigned totalBW, FramedSource *mediaSource, Groupsock *rtpGS, Groupsock *rtcpGS)
RTCPInstance * rtcpInstance() const
RTPSink * rtpSink() const
OnDemandServerMediaSubsession & fMaster
char const * name() const