From ae5899dc884d8d7e1427e45c35e865d7ca51c34b Mon Sep 17 00:00:00 2001
From: miyanhui <dennismi1024@gmail.com>
Date: 星期五, 15 二月 2019 14:56:24 +0800
Subject: [PATCH] 新的方式解决视频不录的问题

---
 QiaoJiaSystem/StructureApp/AppPipeController.cpp |   44 +++++++++++++++++++++++++-------------------
 1 files changed, 25 insertions(+), 19 deletions(-)

diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
index fc5db6f..880a7c9 100644
--- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp
+++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
@@ -19,6 +19,7 @@
 
 //}
 AppPipeController::AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap) :
+    m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"),
     videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")),
 //    videoCaptureElement(40),
     m_index(0),
@@ -27,11 +28,11 @@
     fdfsClient(nullptr),
     yoloRpcElement(folderPath + "yoloRpc"),
     faceRpcElement(folderPath + "faceRpc", ruleMap[FaceSdk]),
-    faceExtractElement(folderPath + "faceExtract", ruleMap[FaceSdk]),
+    faceExtractElement(folderPath + "faceExtract", ruleMap[FaceSdk],m_rpcClient),
     triggerElement(25, 10),
     recordVideoElement(-1, ""),
     bRecordVideoEnable(false),
-    rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"),
+
     m_bSetWH(false)
 {
 
@@ -69,6 +70,7 @@
 //    intKeepRight();
 //}
 AppPipeController::AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable) :
+    m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"),
     videoCaptureElement(appPref.getStringData(camId + "rtsp"), 25, 3000, appPref.getLongData("gpu.index")),
 //    videoCaptureElement(40),
     m_index(0),
@@ -76,19 +78,18 @@
     fdfsClient(nullptr),
     yoloRpcElement(camId + "yoloRpc"),
     faceRpcElement(camId + "faceRpc", ruleMap[FaceSdk]),
-    faceExtractElement(camId + "faceExtract", ruleMap[FaceSdk]),
+    faceExtractElement(camId + "faceExtract", ruleMap[FaceSdk],m_rpcClient),
     triggerElement(25, 4),
     recordVideoElement(camId, appPref.getStringData(camId + "rtsp")),
     newRecordVideoElement(camId),
-    perimeterElement(ruleMap[PerimeterSdk]),
-    crowdElement(ruleMap[CrowdSdk]),
+    perimeterElement(ruleMap[PerimeterSdk],m_rpcClient),
+    crowdElement(ruleMap[CrowdSdk],m_rpcClient),
     perStaticElement(ruleMap[PerStaticSdk]),
-    perHubElement(ruleMap[PerHubSdk]),
-    leftJudgment(ruleMap[KeepRightSdk]),
-    rightJudgment(ruleMap[KeepRightSdk]),
+    perHubElement(ruleMap[PerHubSdk],m_rpcClient),
+    leftJudgment(ruleMap[KeepRightSdk],m_rpcClient),
+    rightJudgment(ruleMap[KeepRightSdk],m_rpcClient),
     bRecordVideoEnable(RecordVideoEnable),
     m_sdkRuleMap(ruleMap),
-    rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"),
     m_bSetWH(false)
 
   {
@@ -179,7 +180,7 @@
 
 
 void AppPipeController::RecordVideo() {
-    std::string imgKeyYolo = yoloRpcElement.getProperty("imgKey");
+    /*std::string imgKeyYolo = yoloRpcElement.getProperty("imgKey");
 
     std::string imgKeyFace = faceRpcElement.getProperty("imgKey");
     if(faceRpcElement.getTriggerState() ||
@@ -217,6 +218,7 @@
         }
     }
     else {
+        INFO("ImageNoFace Yolo:"<<imgKeyYolo<<"   Face:"<<imgKeyFace);
         INFO("faceRpcElement: "<< faceRpcElement.getTriggerState() <<" "<<
                                "personElement: "<<personElement.getTriggerState() <<"  "<<
                                "leftJudgment: "<<leftJudgment.getTriggerState() <<"   "<<
@@ -225,7 +227,7 @@
                                "crowdElement: "<<crowdElement.getTriggerState()<<"   "<<
                                "perHubElement: "<<perHubElement.getTriggerState()<<"   "<<
                                "perStaticElement: "<<perStaticElement.getTriggerState());
-    }
+    }*/
 }
 void AppPipeController::init() {
 
@@ -259,7 +261,7 @@
         m_hiredisTool.listRpop(m_camId,imgKey);
         if(imgKey.empty())
         {
-            ERR("imgKey.empty()  "<<imgKey);
+            ERR("CamId  "<<m_camId<<" No ImgKey");
             return;
         }
 
@@ -276,7 +278,7 @@
         m_hiredisTool.delKey(imgKey);
         if(imageTemp.empty())
         {
-            ERR("No Image Data In: "<<imgKey);
+            ERR("No Image Data In: "<<m_camId<<"   ImgKey:"<<imgKey);
             return;
         }
         std::string  strNewTime = AppUtil::getTimeUSecString();
@@ -307,7 +309,7 @@
                 imageDrawElement.setImage(imageTemp);
                 imageDrawElement.submit();
             }
-
+            //this->RecordVideo();
             /*if(faceRpcElement.getTriggerState() ||
                  personElement.getTriggerState() ||
                  leftJudgment.getTriggerState() ||
@@ -353,18 +355,20 @@
             personElement.setObjsResults(yoloRpcElement.getLastScoreRects());
             personElement.submit();
         }
-        INFO("Record Video By Yolo");
-        this->RecordVideo();
+        //INFO("Record Video By Yolo");
+        //this->RecordVideo();
     });
 
     faceRpcElement.registerConnector([&] {
         imageDrawElement.setFaces(faceRpcElement.getLastScoreRects());
-        INFO("Record Video By Face");
-        this->RecordVideo();
+        //INFO("Record Video By Face");
+        //this->RecordVideo();
     });
 
     yoloRpcElement.registerConnector("YoloTrigger", [&] {
 //        auto images = yoloRpcElement.getTriggerMats();
+        //INFO("Record Video By Yolo");
+        //this->RecordVideo();
     });
 
     faceRpcElement.registerConnector("FaceTrigger", [&] {
@@ -375,6 +379,8 @@
                                               faceRpcElement.getTriggerFaces(),
                                               faceRpcElement.getTriggerScoreRects(),
                                               faceRpcElement.getTriggerMats()});
+        //INFO("Record Video By Face");
+        //this->RecordVideo();
     });
 
     imageDrawElement.registerConnector([&] {
@@ -404,7 +410,7 @@
     }
 
    // registerElement(newRecordVideoElement);
-    videoCaptureElement.setOutPutInterval(3);
+    //videoCaptureElement.setOutPutInterval(3);
     faceExtractElement.setProperty("index", to_string(m_index));
     registerElement(yoloRpcElement);
     //#todo setProperty

--
Gitblit v1.8.0