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 | 137 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 105 insertions(+), 32 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp index b768f8a..1636105 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp @@ -1,32 +1,105 @@ -// -// Created by pansen on 2017/8/4. -// -#include "RemoteFuncServer.h" - -RtspFaceDetectClient rtspFaceDetectClient; - -const RtspFaceDetectClient& getRtspFaceDetectClient(){ - return rtspFaceDetectClient; -} - -//#todo -RtspFaceDetectClient::RtspFaceDetectClient():rpcClient("127.0.0.1",8111), - client(rpcClient.getMain<RtspFaceDetect>()) -{} -void RtspFaceDetectClient::fireFaceCountListener(int cameraIndex, int faceCount){ - auto req = client.fireFaceCountListenerRequest(); - req.setCameraIndex(cameraIndex); - req.setFaceCount(faceCount); - auto send = req.send(); - send.wait(rpcClient.getWaitScope()); -} - - - -//#todo -::kj::Promise<void> RtspFaceViewImpl::RtspFaceViewImpl() {} -::kj::Promise<void> RtspFaceViewImpl::~RtspFaceViewImpl(){} - -::kj::Promise<void> RtspFaceViewImpl::getFaceList(GetFaceListContext context) override{} -::kj::Promise<void> RtspFaceViewImpl::getFaceImages(GetFaceImagesContext context) override{} -::kj::Promise<void> RtspFaceViewImpl::setFaceLabel(SetFaceLabelContext context) override {} +// +// Created by pansen on 2017/8/4. +// +#include "AppConfig.h" +#include "RemoteFuncServer.h" +#include "RemoteFunc.h" +#include "RtspNativeCodecJNIServer.h" + +#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() +{ + remoteServer.start(); +} + +RtspFaceDetectClient * getRtspFaceDetectClient() +{ + if(rtspFaceDetectClient == nullptr) + rtspFaceDetectClient = new RtspFaceDetectClient; + return rtspFaceDetectClient; +} + +//#todo 鏋勯�犲嚱鏁颁慨鏀� +RtspFaceDetectClient::RtspFaceDetectClient() : + 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 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); + + return kj::READY_NOW; +} + +::kj::Promise<void> RtspFaceViewImpl::getFaceImages(GetFaceImagesContext context) +{ + auto results = context.getResults(); + remoteGetFaceListImage(context.getParams(), results); + LOG_ERROR <<"getFaceImages : !!!!!!!!!!!!!!"<< LOG_ENDL; + return kj::READY_NOW; +} + +::kj::Promise<void> RtspFaceViewImpl::setFaceLabel(SetFaceLabelContext context) +{ + LOG_ERROR <<"setFaceLabel : !!!!!!!!!!!!"<< LOG_ENDL; + auto results = context.getResults(); + + remoteSetFaceLabel(context.getParams(), results); + + return kj::READY_NOW; +} -- Gitblit v1.8.0