// // LiveServerMediaSubsession.cpp // FFmpegRTSPServer // // Created by Mina Saad on 9/22/15. // Copyright (c) 2015 Mina Saad. All rights reserved. // #include "LiveServerMediaSubsession.h" #include "H264FramedSource.h" namespace MESAI { LiveServerMediaSubsession * LiveServerMediaSubsession::createNew(UsageEnvironment& env, StreamReplicator* replicator) { return new LiveServerMediaSubsession(env,replicator); } FramedSource* LiveServerMediaSubsession::createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate) { FramedSource* source = m_replicator->createStreamReplica(); estBitrate = 512 * 1024 * 8;//#todo return H264VideoStreamDiscreteFramer::createNew(envir(), source); } RTPSink* LiveServerMediaSubsession::createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource) { return H264VideoRTPSink::createNew(envir(), rtpGroupsock,rtpPayloadTypeIfDynamic); } char const* LiveServerMediaSubsession::sdpLines() { if (m_SDPLines.empty()) { m_SDPLines.assign(OnDemandServerMediaSubsession::sdpLines()); H264FramedSource* framedSource = nullptr; { FramedSource* _framedSource = m_replicator->inputSource(); framedSource = dynamic_cast(_framedSource); }; if (framedSource != nullptr) { m_SDPLines.append(framedSource->getAuxLine()); } } return m_SDPLines.c_str(); } }