xuxiuxi
2017-05-11 109ffe9a777658936a38d0c146579a67c60a0d17
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
//
//  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 <OnDemandServerMediaSubsession.hh>
#include <StreamReplicator.hh>
#include <H264VideoRTPSink.hh>
#include <H264VideoStreamFramer.hh>
#include <H264VideoStreamDiscreteFramer.hh>
#include <UsageEnvironment.hh>
#include <Groupsock.hh>
 
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) {};
      
      virtual FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate);
      virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock,  unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource);    
 
      StreamReplicator * m_replicator;
  };
 
}
#endif