From e26a5550539fa0cad91313bf9670df605199a324 Mon Sep 17 00:00:00 2001 From: pans <pans@454eff88-639b-444f-9e54-f578c98de674> Date: 星期二, 15 八月 2017 13:55:25 +0800 Subject: [PATCH] capnproto fix bug --- VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp | 79 +++++++++++++++++++++++++-------------- 1 files changed, 51 insertions(+), 28 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp index 0a44174..7266e3d 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp @@ -11,6 +11,8 @@ #include <PL_ColorConv.h> #include <PL_AndroidMediaCodecEncoder.h> #include <PL_RTSPServer2.h> +#include <iostream> + CameraWrapper::~CameraWrapper() { stop(); @@ -95,8 +97,8 @@ PipeLine::register_global_elem_creator("PL_RTSPClient", create_PL_RTSPClient); PipeLine::register_global_elem_creator("PL_AndroidMediaCodecDecoder", create_PL_AndroidMediaCodecDecoder); PipeLine::register_global_elem_creator("PL_AndroidSurfaceViewRender", create_PL_AndroidSurfaceViewRender); - PipeLine::register_global_elem_creator("PL_SensetimeFaceTrack", create_PL_SensetimeFaceTrack); - //PipeLine::register_global_elem_creator("PL_SensetimeFaceTrackMitiTrd", create_PL_SensetimeFaceTrackMultiTrd); + //PipeLine::register_global_elem_creator("PL_SensetimeFaceTrack", create_PL_SensetimeFaceTrack); + PipeLine::register_global_elem_creator("PL_SensetimeFaceTrackMitiTrd", create_PL_SensetimeFaceTrackMultiTrd); PipeLine::register_global_elem_creator("PL_Gainer", create_PL_Gainer); PipeLine::register_global_elem_creator("PL_Scale", create_PL_Scale); PipeLine::register_global_elem_creator("PL_ColorConv", create_PL_ColorConv); @@ -162,16 +164,16 @@ // return false; //} - PL_Paint_Config plPaintCfg; - plPaintCfg.fontPath = fontPath; - plPaintCfg.plplCtx = &plplContext; - PL_Paint* plPaint = (PL_Paint*)pipeLineRender->push_elem("PL_Paint"); - ret = plPaint->init(&plPaintCfg); - if (!ret) - { - LOG_ERROR << "pipeLineRender.plPaint init error" << LOG_ENDL; - return false; - } +// PL_Paint_Config plPaintCfg; +// plPaintCfg.fontPath = fontPath; +// plPaintCfg.plplCtx = &plplContext; +// PL_Paint* plPaint = (PL_Paint*)pipeLineRender->push_elem("PL_Paint"); +// ret = plPaint->init(&plPaintCfg); +// if (!ret) +// { +// LOG_ERROR << "pipeLineRender.plPaint init error" << LOG_ENDL; +// return false; +// } //PL_AndroidSurfaceViewRender* asvRender = (PL_AndroidSurfaceViewRender*)pipeLineRender->push_elem("PL_AndroidSurfaceViewRender"); //ret = asvRender->init(&asvrConfig); @@ -242,20 +244,20 @@ //} #ifdef USE_ST_SDK - PL_SensetimeFaceTrack *sfTrack = (PL_SensetimeFaceTrack *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrack");//#todo use multi +// PL_SensetimeFaceTrack *sfTrack = (PL_SensetimeFaceTrack *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrack");//#todo use multi +// ret = sfTrack->init(&sftConfig); +// if (!ret) +// { +// LOG_ERROR << "pipeLineDecoderDetector.sfTrack.init error" << LOG_ENDL; +// return false; +// } + PL_SensetimeFaceTrackMultiTrd *sfTrack = (PL_SensetimeFaceTrackMultiTrd *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrackMitiTrd"); ret = sfTrack->init(&sftConfig); if (!ret) { LOG_ERROR << "pipeLineDecoderDetector.sfTrack.init error" << LOG_ENDL; return false; } - //PL_SensetimeFaceTrackMultiTrd *sfTrack = (PL_SensetimeFaceTrackMultiTrd *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrackMitiTrd"); - //ret = sfTrack->init(&sftConfig); - //if (!ret) - //{ - // LOG_ERROR << "pipeLineDecoderDetector.sfTrack.init error" << LOG_ENDL; - // return false; - //} #endif return ret; @@ -380,15 +382,36 @@ return false; cameraWrapper.faceCache.cachePm(*pm); //remote call start, 涓轰簡淇濊瘉閫氱敤鎬э紝鏈皢浠ヤ笅姝ラ灏佸叆RtspFaceDetectClient - RtspFaceDetectClient* client = getRtspFaceDetectClient(); - if (client == nullptr) - return false; + //#todo 浼樺寲灏佽 + try + { + LOG_INFO <<"try start"<< LOG_ENDL; - auto request = client->fireFaceCountListenerRequest(); - request.setCameraIndex(cameraWrapper.cameraIdx); - request.setFaceCount(cameraWrapper.faceCache.getFaceCount(*pm)); - auto sendAct = request.send(); - sendAct.wait(client->getWaitScope()); +// RtspFaceDetect::Client* rClient = getRtspFaceDetectClient()->getClient(); +// auto& waitScope = getRtspFaceDetectClient()->getWaitScope(); + + RtspFaceDetectClient* client = getRtspFaceDetectClient(); + RtspFaceDetect::Client rClient = client->getEzRpcClient()->getMain<RtspFaceDetect>(); + auto& waitScope = client->getWaitScope(); + + auto request = rClient.fireFaceCountListenerRequest(); + request.setCameraIndex(cameraWrapper.cameraIdx); + request.setFaceCount(cameraWrapper.faceCache.getFaceCount(*pm)); + LOG_INFO <<"call client : i have face!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL; + auto sendAct = request.send(); + + sendAct.wait(waitScope); + } + catch (const kj::Exception& e) + { + LOG_INFO <<"catch!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL; + LOG_ERROR << "catch!!!" <<e.getDescription().cStr() << LOG_ENDL; + std::cout << e.getDescription().cStr() << std::endl; + return false; + } + catch (std::exception e){ + LOG_ERROR << "catch!!!" <<e.what() << LOG_ENDL; + } //remote call end return true; } -- Gitblit v1.8.0