From d9ffa50c7e8d6b8c3157690aef8e2a70af1d1695 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期三, 09 八月 2017 13:58:01 +0800 Subject: [PATCH] rtps server (not ok) --- RtspFace/FFmpegRTSPServer/LiveServerMediaSubsession.cpp | 50 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 37 insertions(+), 13 deletions(-) diff --git a/RtspFace/FFmpegRTSPServer/LiveServerMediaSubsession.cpp b/RtspFace/FFmpegRTSPServer/LiveServerMediaSubsession.cpp index 6d16082..d5204f7 100644 --- a/RtspFace/FFmpegRTSPServer/LiveServerMediaSubsession.cpp +++ b/RtspFace/FFmpegRTSPServer/LiveServerMediaSubsession.cpp @@ -7,23 +7,47 @@ // #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) + +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 = 5000;//#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()) { - FramedSource* source = m_replicator->createStreamReplica(); - return H264VideoStreamDiscreteFramer::createNew(envir(), source); + m_SDPLines.assign(OnDemandServerMediaSubsession::sdpLines()); + + H264FramedSource* framedSource = nullptr; + { + FramedSource* _framedSource = m_replicator->inputSource(); + framedSource = dynamic_cast<H264FramedSource*>(_framedSource); + }; + + if (framedSource != nullptr) + { + m_SDPLines.append(framedSource->getAuxLine()); + } } - - RTPSink* LiveServerMediaSubsession::createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource) - { - return H264VideoRTPSink::createNew(envir(), rtpGroupsock,rtpPayloadTypeIfDynamic); - } + + return m_SDPLines.c_str(); +} } -- Gitblit v1.8.0