From eb69d9c33b307bfc2d6c7f46a210f98c5fa306c5 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 11 八月 2017 14:31:01 +0800 Subject: [PATCH] bug fix for client --- VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp | 33 ++++++++++++++++----------------- 1 files changed, 16 insertions(+), 17 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp index 7c1adbd..ff81d66 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp @@ -1,4 +1,5 @@ #include "CameraWrapperServer.h" +#include "RemoteFuncServer.h" #include <logger.h> #include <Logger/src/logger.hpp> #include <MaterialBuffer.h> @@ -9,8 +10,7 @@ #include <PL_BlockGrouping.h> #include <PL_ColorConv.h> #include <PL_AndroidMediaCodecEncoder.h> -#include <PL_RTSPServer.h> - +#include <PL_RTSPServer2.h> CameraWrapper::~CameraWrapper() { stop(); @@ -104,7 +104,7 @@ PipeLine::register_global_elem_creator("PL_V4L2Source", create_PL_V4L2Source); PipeLine::register_global_elem_creator("PL_BlockGrouping", create_PL_BlockGrouping); PipeLine::register_global_elem_creator("PL_AndroidMediaCodecEncoder", create_PL_AndroidMediaCodecEncoder); - PipeLine::register_global_elem_creator("PL_RTSPServer", create_PL_RTSPServer); + PipeLine::register_global_elem_creator("PL_RTSPServer2", create_PL_RTSPServer2); bool ret = initPl_DecoderPl(); if (!ret) @@ -169,8 +169,8 @@ return false; } - PL_RTSPServer* plRtspServer = (PL_RTSPServer*)pipeLineRender->push_elem("PL_RTSPServer"); - RTSPServerConfig rtspServerConfig; + PL_RTSPServer2* plRtspServer = (PL_RTSPServer2*)pipeLineRender->push_elem("PL_RTSPServer2"); + RTSPServer2Config rtspServerConfig; //rtspServerConfig.syncDeliverFrame = false; ret = plRtspServer->init(&rtspServerConfig); if (!ret) @@ -372,18 +372,25 @@ bool cw_pm_breaker_ptr_face(const PipeMaterial* pm, void* args) { CameraWrapper& cameraWrapper = *(CameraWrapper*)args; - if (cameraWrapper.faceCacheLocked) return false; int faceCount = cameraWrapper.faceCache.getFaceCount(*pm); if (faceCount <= 0 || cameraWrapper.faceCallbackFunc == 0) return false; - cameraWrapper.faceCache.cachePm(*pm); - invokeCallback(cameraWrapper, faceCount); + //remote call start, 涓轰簡淇濊瘉閫氱敤鎬э紝鏈皢浠ヤ笅姝ラ灏佸叆RtspFaceDetectClient + RtspFaceDetectClient* client = getRtspFaceDetectClient(); + if (client == nullptr) + return false; - return false; + auto request = client->fireFaceCountListenerRequest(); + request.setCameraIndex(cameraWrapper.cameraIdx); + request.setFaceCount(cameraWrapper.faceCache.getFaceCount(*pm)); + auto sendAct = request.send(); + sendAct.wait(client->getWaitScope()); + //remote call end + return true; } void test_paint(CameraWrapper& cameraWrapper) @@ -409,14 +416,6 @@ cameraWrapper.plplContext.params.push_back(100); cameraWrapper.plplContext.params.push_back(100); } - -//struct ScopeMutexLocker -//{ -// pthread_mutex_t* mut; -// ScopeMutexLocker(pthread_mutex_t* _mut) : mut(_mut){pthread_mutex_lock(mut);}; -// ~ScopeMutexLocker(){pthread_mutex_unlock(mut);} -// //ScopeMutexLocker(&(cameraWrapper.live_daemon_mut)); -//}; void cw_elem_destory_func(PipeLineElem* elem) { -- Gitblit v1.8.0