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/CameraWrapperServer.cpp |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp
index 6218451..0cf6a61 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp
@@ -6,11 +6,12 @@
 #include <PL_Gainer.h>
 #include <PL_Paint.h>
 #include <PL_Scale.h>
-#include <PL_V4L2Source.h>
 #include <PL_BlockGrouping.h>
 #include <PL_ColorConv.h>
 #include <PL_AndroidMediaCodecEncoder.h>
 #include <PL_RTSPServer2.h>
+#include <iostream>
+
 CameraWrapper::~CameraWrapper()
 {
 	stop();
@@ -101,7 +102,6 @@
     PipeLine::register_global_elem_creator("PL_Scale", create_PL_Scale);
     PipeLine::register_global_elem_creator("PL_ColorConv", create_PL_ColorConv);
     PipeLine::register_global_elem_creator("PL_Paint", create_PL_Paint);
-    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_RTSPServer2", create_PL_RTSPServer2);
@@ -277,7 +277,6 @@
 {
     if (faceLabels.size() > 32)
         faceLabels.clear();
-
     faceLabels.insert(std::make_pair(st_track_id, label));
 }
 
@@ -373,7 +372,46 @@
 
 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);
+    //remote call start, 涓轰簡淇濊瘉閫氱敤鎬э紝鏈皢浠ヤ笅姝ラ灏佸叆RtspFaceDetectClient
+    //#todo 浼樺寲灏佽
+    try
+    {
+        LOG_INFO <<"try start"<< LOG_ENDL;
 
+//        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(faceCount);
+       LOG_INFO <<"!!!!!"<<cameraWrapper.cameraIdx << "+" << faceCount << LOG_ENDL;
+       LOG_INFO <<"call client : i have face!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
+       auto sendAct = request.send();
+       sendAct.ignoreResult().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;
 }
 
 void test_paint(CameraWrapper& cameraWrapper)

--
Gitblit v1.8.0