From 5cf652629fb40796cd2e0ab17c3617ed52365473 Mon Sep 17 00:00:00 2001
From: pans <pans@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 18 八月 2017 10:32:05 +0800
Subject: [PATCH] capnp client fix bug
---
RtspFace/FFmpegRTSPServer/LiveRTSPServer.cpp | 36 +++++++++++++++++++++---------------
1 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/RtspFace/FFmpegRTSPServer/LiveRTSPServer.cpp b/RtspFace/FFmpegRTSPServer/LiveRTSPServer.cpp
index 2f6790a..16af86c 100644
--- a/RtspFace/FFmpegRTSPServer/LiveRTSPServer.cpp
+++ b/RtspFace/FFmpegRTSPServer/LiveRTSPServer.cpp
@@ -6,12 +6,14 @@
// Copyright (c) 2015 Mina Saad. All rights reserved.
//
+#include "../logger.h"
#include "LiveRTSPServer.h"
namespace MESAI
{
LiveRTSPServer::LiveRTSPServer( IEncoder * a_Encoder, int port, int httpPort )
- : m_Encoder (a_Encoder), portNumber(port), httpTunnelingPort(httpPort)
+ : env(nullptr), framedSource(nullptr),
+ m_Encoder (a_Encoder), portNumber(port), httpTunnelingPort(httpPort)
{
quit = 0;
}
@@ -21,16 +23,20 @@
}
+ void LiveRTSPServer::init()
+ {
+ TaskScheduler* scheduler = BasicTaskScheduler::createNew();
+ env = BasicUsageEnvironment::createNew(*scheduler);
+ }
+
void LiveRTSPServer::run()
{
- TaskScheduler *scheduler;
- UsageEnvironment *env ;
+ if (env == nullptr)
+ init();
+
char RTSP_Address[1024];
RTSP_Address[0]=0x00;
- scheduler = BasicTaskScheduler::createNew();
- env = BasicUsageEnvironment::createNew(*scheduler);
-
UserAuthenticationDatabase* authDB = NULL;
// if (m_Enable_Pass){
@@ -43,11 +49,10 @@
if (rtspServer == NULL)
{
- *env <<"LIVE555: Failed to create RTSP server: %s\n", env->getResultMsg();
+ LOG_ERROR <<"LIVE555: Failed to create RTSP server: " << env->getResultMsg() << LOG_ENDL;
}
- else {
-
-
+ else
+ {
if(httpTunnelingPort)
{
rtspServer->setUpTunnelingOverHTTP(httpTunnelingPort);
@@ -55,15 +60,16 @@
char const* descriptionString = "MESAI Streaming Session";
- FFmpegH264Source * source = FFmpegH264Source::createNew(*env,m_Encoder);
- StreamReplicator * inputDevice = StreamReplicator::createNew(*env, source, false);
-
+ if (framedSource == nullptr)
+ framedSource = FFmpegH264Source::createNew(*env,m_Encoder);
+ StreamReplicator * inputDevice = StreamReplicator::createNew(*env, framedSource, false);
+
ServerMediaSession* sms = ServerMediaSession::createNew(*env, RTSP_Address, RTSP_Address, descriptionString);
sms->addSubsession(MESAI::LiveServerMediaSubsession::createNew(*env, inputDevice));
rtspServer->addServerMediaSession(sms);
char* url = rtspServer->rtspURL(sms);
- *env << "Play this stream using the URL \"" << url << "\"\n";
+ LOG_INFO << "Play this stream using the URL " << url << LOG_ENDL;
delete [] url;
//signal(SIGNIT,sighandler);
@@ -74,6 +80,6 @@
}
env->reclaim();
- delete scheduler;
+ //delete scheduler; // #todo
}
}
\ No newline at end of file
--
Gitblit v1.8.0