From c90d8c9cbd9175a689265af9b4036f28b9815cde Mon Sep 17 00:00:00 2001
From: miyanhui <dennismi1024@gmail.com>
Date: 星期四, 14 二月 2019 14:19:13 +0800
Subject: [PATCH] 去掉AppPipeController里面的VideoCapture的Ffmpeg代码

---
 QiaoJiaSystem/StructureApp/AppPipeController.cpp |   78 +++++++++++++++++++++++++++++++++++----
 1 files changed, 70 insertions(+), 8 deletions(-)

diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
index 6e0ac75..148d0e6 100644
--- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp
+++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
@@ -31,7 +31,8 @@
     triggerElement(25, 10),
     recordVideoElement(-1, ""),
     bRecordVideoEnable(false),
-    rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp")
+    rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"),
+    m_bSetWH(false)
 {
 
     init();
@@ -176,6 +177,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};
@@ -203,27 +255,29 @@
     //  int max=appPref.getIntData("n_cut_max_duration");
     // recordInit(40,100);
     videoCaptureElement.registerConnector([&] {
-        cv::Mat imageTemp;
+
         std::string imgKey;
         m_hiredisTool.listRpop(m_camId,imgKey);
         if(imgKey.empty())
         {
-            //DBG("imgKey.empty()");
+            ERR("CamId  "<<m_camId<<" No ImgKey");
             return;
         }
 
-
+        cv::Mat imageTemp;
+        m_hiredisTool.getKeyImage(imgKey,imageTemp);
         if(!m_bSetWH)
         {
+            INFO("SetWidth:"<<imageTemp.cols<<"  Height:"<<imageTemp.rows);
             appPref.setIntData(m_camId+"width",imageTemp.cols);
             appPref.setIntData(m_camId+"height",imageTemp.rows);
             m_bSetWH=true;
         }
-        m_hiredisTool.getKeyImage(imgKey,imageTemp);
+
         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();
@@ -254,7 +308,7 @@
                 imageDrawElement.setImage(imageTemp);
                 imageDrawElement.submit();
             }
-
+            //this->RecordVideo();
             if(faceRpcElement.getTriggerState() ||
                  personElement.getTriggerState() ||
                  leftJudgment.getTriggerState() ||
@@ -300,14 +354,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", [&] {
@@ -318,6 +378,8 @@
                                               faceRpcElement.getTriggerFaces(),
                                               faceRpcElement.getTriggerScoreRects(),
                                               faceRpcElement.getTriggerMats()});
+        //INFO("Record Video By Face");
+        //this->RecordVideo();
     });
 
     imageDrawElement.registerConnector([&] {
@@ -347,7 +409,7 @@
     }
 
    // registerElement(newRecordVideoElement);
-    videoCaptureElement.setOutPutInterval(3);
+    //videoCaptureElement.setOutPutInterval(3);
     faceExtractElement.setProperty("index", to_string(m_index));
     registerElement(yoloRpcElement);
     //#todo setProperty

--
Gitblit v1.8.0