From f2327d66d762a2279bf7b725a818a17a213e9e0b Mon Sep 17 00:00:00 2001
From: pans <pans@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 09 八月 2017 14:57:48 +0800
Subject: [PATCH] add RemoteMethod.capnp etc.
---
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