From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001
From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 18 八月 2017 18:12:17 +0800
Subject: [PATCH] H264 NALU解析  并在RTSPServer判断

---
 VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp |   88 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 70 insertions(+), 18 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
index eabf9dc..1636105 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
@@ -2,52 +2,104 @@
 // Created by pansen on 2017/8/4.
 //
 #include "AppConfig.h"
-#include "RemoteFunc.h"
 #include "RemoteFuncServer.h"
+#include "RemoteFunc.h"
 #include "RtspNativeCodecJNIServer.h"
 
-RemoteServer<RtspFaceViewImpl> remoteServer("127.0.0.1", 8112);
-RtspFaceDetectClient rtspFaceDetectClient;
+#include <string>
+#include <iostream>
+using namespace std;
+
+AppConfig config("data/config.cfg");
+RemoteServer<RtspFaceViewImpl> remoteServer(config.getStringValue("local_ip"), config.getIntValue("local_port"));
+//RemoteServer<RtspFaceViewImpl> remoteServer("192.168.1.97", 8112);
+static RtspFaceDetectClient* rtspFaceDetectClient = nullptr;
 
 void startRemoteServer()
 {
-	AppConfig config;
-	config.loadConfig("data/config.cfg");
-	remoteServer.start();
+    remoteServer.start();
 }
 
-RtspFaceDetectClient &getRtspFaceDetectClient()
+RtspFaceDetectClient * getRtspFaceDetectClient()
 {
-	return rtspFaceDetectClient;
+    if(rtspFaceDetectClient == nullptr)
+        rtspFaceDetectClient = new RtspFaceDetectClient;
+    return rtspFaceDetectClient;
 }
 
-//#todo
+//#todo 鏋勯�犲嚱鏁颁慨鏀�
 RtspFaceDetectClient::RtspFaceDetectClient() :
-		rpcClient("127.0.0.1", 8111), RtspFaceDetect::Client(rpcClient.getMain<RtspFaceDetect>())
-{}
+        rpcClient(nullptr)
+{
+}
+
+RtspFaceDetect::Client* RtspFaceDetectClient::getClient()
+{
+    LOG_INFO << "new client @ " << (int*)client << LOG_ENDL;
+
+    if (client == nullptr) {
+        LOG_INFO << "new client 2" << LOG_ENDL;
+        try
+        {
+            client = new RtspFaceDetect::Client(getEzRpcClient()->getMain<RtspFaceDetect>());
+        }
+        catch (const kj::Exception& e)
+        {
+            LOG_ERROR << "new client error" << LOG_ENDL;
+            delete client;
+            client = nullptr;
+            throw e;
+        }
+    }
+    return client;
+}
 
 ::kj::WaitScope &RtspFaceDetectClient::getWaitScope()
 {
-	return rpcClient.getWaitScope();
+    return getEzRpcClient()->getWaitScope();
+}
+
+capnp::EzRpcClient * RtspFaceDetectClient::getEzRpcClient()
+{
+    if (rpcClient == nullptr) {
+        try
+        {
+            // rpcClient = new capnp::EzRpcClient("192.168.1.97", 8111);
+            rpcClient = new capnp::EzRpcClient(config.getStringValue("server_ip"), config.getIntValue("server_port"));
+        }
+        catch (const kj::Exception& e)
+        {
+            delete rpcClient;
+            rpcClient = nullptr;
+            throw e;
+        }
+    }
+    return rpcClient;
 }
 
 ::kj::Promise<void> RtspFaceViewImpl::getFaceList(GetFaceListContext context)
 {
+    LOG_ERROR <<"getFaceList :start !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
 	auto results = context.getResults();
 	remoteGetFaceList(context.getParams(), results);
-	context.setResults(results);
+
+    return kj::READY_NOW;
 }
 
 ::kj::Promise<void> RtspFaceViewImpl::getFaceImages(GetFaceImagesContext context)
 {
-	auto results = context.getResults();
+    auto results = context.getResults();
 	remoteGetFaceListImage(context.getParams(), results);
-	context.setResults(results);
+    LOG_ERROR <<"getFaceImages : !!!!!!!!!!!!!!"<< LOG_ENDL;
+    return kj::READY_NOW;
 }
 
 ::kj::Promise<void> RtspFaceViewImpl::setFaceLabel(SetFaceLabelContext context)
 {
-	auto results = context.getResults();
-	remoteSetFaceLabel(context.getParams(), results);
-	context.setResults(results);
+    LOG_ERROR <<"setFaceLabel : !!!!!!!!!!!!"<< LOG_ENDL;
+    auto results = context.getResults();
+
+    remoteSetFaceLabel(context.getParams(), results);
+
+    return kj::READY_NOW;
 }

--
Gitblit v1.8.0