-
Notifications
You must be signed in to change notification settings - Fork 0
/
H264LiveMediaSubsession.hh
38 lines (30 loc) · 1.16 KB
/
H264LiveMediaSubsession.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#pragma once
#include <string>
#include "OnDemandServerMediaSubsession.hh"
#include "StreamReplicator.hh"
#include "LiveMediaTypeDef.h"
#include "LiveMediaSubsession.hh"
namespace LiveRTSP {
class H264LiveMediaSubsession : public LiveMediaSubsession {
public:
static H264LiveMediaSubsession *
createNew(UsageEnvironment &env, StreamReplicator *replicator, const ParamTypeKeyValMap &tkv);
// Used to implement "getAuxSDPLine()":
void pollingAuxSDPLine1();
void afterPlayingDummy1();
protected:
H264LiveMediaSubsession(UsageEnvironment &env, StreamReplicator *replicator);
virtual ~H264LiveMediaSubsession();
void setDoneFlag() { pollingDoneFlag = ~0; pollingCount = 0; }
protected:
virtual char const* getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource) override;
virtual FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate) override;
virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock,
unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource) override;
private:
std::string auxSDPLine;
char pollingDoneFlag;
int pollingCount;
RTPSink *dummyRTPSink;
};
}