pans
2017-08-30 71c92f101b6c8b4a678a8c3cfe2d8edbf488efa4
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
39
40
41
42
43
44
//
//  LiveServerMediaSubsession.h
//  FFmpegRTSPServer
//
//  Created by Mina Saad on 9/22/15.
//  Copyright (c) 2015 Mina Saad. All rights reserved.
//
 
#ifndef MESAI_Live_SERVER_MEDIA_SUBSESSION_HH
#define MESAI_Live_SERVER_MEDIA_SUBSESSION_HH
 
#include <liveMedia/OnDemandServerMediaSubsession.hh>
#include <liveMedia/StreamReplicator.hh>
#include <liveMedia/H264VideoRTPSink.hh>
#include <liveMedia/H264VideoStreamFramer.hh>
#include <liveMedia/H264VideoStreamDiscreteFramer.hh>
#include <UsageEnvironment/UsageEnvironment.hh>
#include <groupsock/Groupsock.hh>
#include <string>
 
namespace MESAI
{
 
class LiveServerMediaSubsession: public OnDemandServerMediaSubsession
{
public:
    static LiveServerMediaSubsession* createNew(UsageEnvironment& env, StreamReplicator* replicator);
 
protected:
    LiveServerMediaSubsession(UsageEnvironment& env, StreamReplicator* replicator)
            : OnDemandServerMediaSubsession(env, False), m_replicator(replicator), m_SDPLines()
    {}
 
    virtual FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate);
    virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock,  unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource);
    virtual char const* sdpLines();
    //virtual char const* getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource);
 
    StreamReplicator * m_replicator;
    std::string m_SDPLines;
};
 
}
#endif