From d3b7bbe7102cd089680a828f5d8f6402c8cf6342 Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 07 三月 2019 14:43:28 +0800
Subject: [PATCH] GB28181集成完成,集成推流模块

---
 QiaoJiaSystem/StructureApp/AppPipeController.cpp |   82 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 71 insertions(+), 11 deletions(-)

diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
index 18c22b4..710118b 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",appPref.getIntData("RpcServerPort"),"tcp"),
     videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")),
 //    videoCaptureElement(40),
     m_index(0),
@@ -29,9 +30,9 @@
     faceRpcElement(folderPath + "faceRpc", ruleMap[FaceSdk]),
     faceExtractElement(folderPath + "faceExtract", ruleMap[FaceSdk]),
     triggerElement(25, 10),
-    recordVideoElement(-1, ""),
+//    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",appPref.getIntData("RpcServerPort"),"tcp"),
     videoCaptureElement(appPref.getStringData(camId + "rtsp"), 25, 3000, appPref.getLongData("gpu.index")),
 //    videoCaptureElement(40),
     m_index(0),
@@ -78,8 +80,8 @@
     faceRpcElement(camId + "faceRpc", ruleMap[FaceSdk]),
     faceExtractElement(camId + "faceExtract", ruleMap[FaceSdk]),
     triggerElement(25, 4),
-    recordVideoElement(camId, appPref.getStringData(camId + "rtsp")),
-    newRecordVideoElement(camId),
+//    recordVideoElement(camId, appPref.getStringData(camId + "rtsp")),
+//    newRecordVideoElement(camId),
     perimeterElement(ruleMap[PerimeterSdk]),
     crowdElement(ruleMap[CrowdSdk]),
     perStaticElement(ruleMap[PerStaticSdk]),
@@ -88,7 +90,6 @@
     rightJudgment(ruleMap[KeepRightSdk]),
     bRecordVideoEnable(RecordVideoEnable),
     m_sdkRuleMap(ruleMap),
-    rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"),
     m_bSetWH(false)
 
   {
@@ -177,6 +178,57 @@
 
 string test_str;
 
+
+void AppPipeController::RecordVideo() {
+    /*std::string imgKeyYolo = yoloRpcElement.getProperty("imgKey");
+
+    std::string imgKeyFace = faceRpcElement.getProperty("imgKey");
+    if(faceRpcElement.getTriggerState() ||
+       personElement.getTriggerState() ||
+       leftJudgment.getTriggerState() ||
+       rightJudgment.getTriggerState() ||
+       perimeterElement.getTriggerState() ||
+       crowdElement.getTriggerState() ||
+       perHubElement.getTriggerState() ||
+       perStaticElement.getTriggerState())
+    {
+        try {
+            auto server = rpcClient.getServer();
+            if (!server)
+            {
+                ERR("server is null");
+                return;
+            }
+
+            if(imgKeyFace != imgKeyYolo)
+            {
+                server->recordVideo(imgKeyFace);
+                server->recordVideo(imgKeyYolo);
+                INFO("Record Video Face: "<<imgKeyFace);
+                INFO("Record Video Yolo: "<<imgKeyYolo);
+            } else {
+                INFO("Record Video: "<<imgKeyYolo);
+                server->recordVideo(imgKeyFace);
+            }
+        }
+        catch (std::exception &e)
+        {
+            ERR("Record Video ImgKeyFace: "<<imgKeyFace <<" ImgKeyYolo :"<<imgKeyYolo <<"   Message: "<<e.what());
+            return ;
+        }
+    }
+    else {
+        INFO("ImageNoFace Yolo:"<<imgKeyYolo<<"   Face:"<<imgKeyFace);
+        INFO("faceRpcElement: "<< faceRpcElement.getTriggerState() <<" "<<
+                               "personElement: "<<personElement.getTriggerState() <<"  "<<
+                               "leftJudgment: "<<leftJudgment.getTriggerState() <<"   "<<
+                               "leftJudgment: "<<rightJudgment.getTriggerState() <<"    "<<
+                               "perimeterElement: "<<perimeterElement.getTriggerState()<<"  "<<
+                               "crowdElement: "<<crowdElement.getTriggerState()<<"   "<<
+                               "perHubElement: "<<perHubElement.getTriggerState()<<"   "<<
+                               "perStaticElement: "<<perStaticElement.getTriggerState());
+    }*/
+}
 void AppPipeController::init() {
 
     unsigned char ip_old[15] = {0};
@@ -209,7 +261,7 @@
         m_hiredisTool.listRpop(m_camId,imgKey);
         if(imgKey.empty())
         {
-            ERR("imgKey.empty()  "<<imgKey);
+            ERR("CamId  "<<m_camId<<" No ImgKey");
             return;
         }
 
@@ -226,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();
@@ -257,8 +309,8 @@
                 imageDrawElement.setImage(imageTemp);
                 imageDrawElement.submit();
             }
-
-            if(faceRpcElement.getTriggerState() ||
+            //this->RecordVideo();
+            /*if(faceRpcElement.getTriggerState() ||
                  personElement.getTriggerState() ||
                  leftJudgment.getTriggerState() ||
                  rightJudgment.getTriggerState() ||
@@ -292,7 +344,7 @@
                     "crowdElement: "<<crowdElement.getTriggerState()<<"   "<<
                     "perHubElement: "<<perHubElement.getTriggerState()<<"   "<<
                     "perStaticElement: "<<perStaticElement.getTriggerState());
-            }
+            }*/
         }
     });
 
@@ -303,14 +355,20 @@
             personElement.setObjsResults(yoloRpcElement.getLastScoreRects());
             personElement.submit();
         }
+        //INFO("Record Video By Yolo");
+        //this->RecordVideo();
     });
 
     faceRpcElement.registerConnector([&] {
         imageDrawElement.setFaces(faceRpcElement.getLastScoreRects());
+        //INFO("Record Video By Face");
+        //this->RecordVideo();
     });
 
     yoloRpcElement.registerConnector("YoloTrigger", [&] {
 //        auto images = yoloRpcElement.getTriggerMats();
+        //INFO("Record Video By Yolo");
+        //this->RecordVideo();
     });
 
     faceRpcElement.registerConnector("FaceTrigger", [&] {
@@ -321,6 +379,8 @@
                                               faceRpcElement.getTriggerFaces(),
                                               faceRpcElement.getTriggerScoreRects(),
                                               faceRpcElement.getTriggerMats()});
+        //INFO("Record Video By Face");
+        //this->RecordVideo();
     });
 
     imageDrawElement.registerConnector([&] {
@@ -350,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