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