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/FaceExtractElement.cpp |   56 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 41 insertions(+), 15 deletions(-)

diff --git a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
index e20d386..a8aa27e 100644
--- a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
@@ -37,7 +37,8 @@
     faceSearchRpcClient(appPref.getStringData("faceSear.proxy"), appPref.getStringData("faceSear.ip"),
                         appPref.getIntData("faceSear.port"), "tcp"),
 //    faceSearchRpcClient("faceCmServer", "", 10004, "tcp")
-    m_sdkRule(rule) {
+    m_sdkRule(rule),
+    m_rpcClient("RtspAnalysServer", "127.0.0.1", appPref.getIntData("RpcServerPort"), "tcp") {
     sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str()));
     if (!sharedMemory->create(4608 * 2592 * 4)) {
         sharedMemory->attach();
@@ -60,10 +61,14 @@
 }
 
 void FaceExtractElement::timerFunc() {
+    INFO("MYH Run Here");
     std::vector<FaceToExtract> faceExtractQueueTmp;
     {
         std::lock_guard<std::mutex> lg(imageQueueMutex);
-        if (faceExtractQueue.empty())return;
+        if (faceExtractQueue.empty()) {
+            ERR("faceExtractQueue.empty ");
+            return;
+        }
         faceExtractQueueTmp.swap(faceExtractQueue);
         faceExtractQueue.clear();
     }
@@ -99,7 +104,7 @@
 //                    cv::imwrite(string1, image);
 //                }
                 if (feature.empty()) {
-                    ERR("feature is empty");
+                    INFO("No Face Find: " << getProperty("imgKey"));
                     continue;
                 }
                 features.clear();
@@ -112,12 +117,15 @@
                     CvUtil::cvMat2Buffer(faceExtractQueueTmp[i].faceImages[j], buffer);
                     std::string strImgUrlTmp = "";
                     fdfsClient->fastFds->uploadFile(buffer, strImgUrlTmp, "jpg");
-                  //  strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
-                    DBG("strImgUrlTmp="<<strImgUrlTmp);
+                    //  strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
+                    DBG("strImgUrlTmp=" << strImgUrlTmp);
                     strImgUrl.clear();
                     strImgUrl = strImgUrlTmp;
 //                    strImgUrl.append("/").append(strImgUrlTmp);
                     fdfsClient->rwLock.unlock();
+                } else {
+                    strImgUrl = "";
+                    ERR("fdfsClient is nullptr ???");
                 }
 
                 //鎷兼帴json
@@ -133,29 +141,31 @@
 
                 //#鍦ㄥ姣斾腑娣诲姞鐗瑰緛鍊�
                 t_json["FaceFeature"] = "base64";
-                t_json["personId"] = "wait todo";//鍏宠仈搴曞簱浜哄憳id,浜鸿劯id
-                t_json["BaseName"] = "wait todo";//鍏宠仈搴曞簱琛ㄥ悕
+                t_json["personId"] = "";//鍏宠仈搴曞簱浜哄憳id,浜鸿劯id
+                t_json["BaseName"] = "";//鍏宠仈搴曞簱琛ㄥ悕
                 //#end
 //                t_json["likePer"] = faceExtractQueueTmp[i].scoredRects[j].score;//浜哄憳鐩镐技搴� Score
                 t_json["likeDate"] = AppUtil::getTimeSecString();//"2018-01-01 01:01:01";//姣旇緝鏃堕棿
 
-                t_json["picName"] = "wait todo";
+                t_json["picName"] = "";
 
 
-                t_json["personPicUrl"] = "wait todo";//浜哄憳鍥剧墖 store
+                t_json["personPicUrl"] = "";//浜哄憳鍥剧墖 store
                 t_json["picAddress"] = getProperty("str_addr");//鎶撴媿鍦板潃
-                  DBG("picAddress="<< t_json["picAddress"] );
-                t_json["picMaxUrl"] = "wait todo";//澶у浘璺緞
-                t_json["picLocalUrl"] = "wait todo";//鏈湴璺緞
+                DBG("picAddress=" << t_json["picAddress"]);
+                t_json["picMaxUrl"] = "";//澶у浘璺緞
+                t_json["picLocalUrl"] = "";//鏈湴璺緞
                 t_json["picSmUrl"] = strImgUrl;//浜哄憳鎶撳皬鍥�
                 //#todo
                 t_json["picDate"] = faceExtractQueueTmp[i].scoredRects[j].properties["time"];
                 DBG("picDate=" << t_json["picDate"].asString());
-//                DBG("timeC ::::B" << t_json["picDate"].asString());
+//                DBG("timeC ::::B" << t_json["picDate"m_bIsMask].asString());
 //                t_json["picDate"] = AppUtil::getTimeSecString();
 
-                t_json["content"] = "wait todo";
-                t_json["viType"] = "1";//鍙湁4绉嶇被鍨� 1:personface 2:personbody 3:car 4:bicycle 5:none 鏈煡绫诲瀷
+                t_json["content"] = "";
+                //t_json["viType"] = "2";//鍙湁4绉嶇被鍨� 1:personface 2:personbody 3:car 4:bicycle 5:none 鏈煡绫诲瀷
+                t_json["sdkType"] = std::to_string(
+                    m_sdkRule.nSdkType);//鍙湁4绉嶇被鍨� 1:personface 2:personbody 3:car 4:bicycle 5:none 鏈煡绫诲瀷
                 t_json["personIsHub"] = "4";//1: 鎶ヨ  2: 鍙枒  3: 瀹夊叏  4: 鏈煡
 
 
@@ -210,6 +220,22 @@
                 t_json["indeviceid"] = appPref.getStringData("fxDevID");
                 t_json["indevicename"] = appPref.getStringData("fxDevNAME");
 
+                std::string strImageKey = faceExtractQueueTmp[i].scoredRects[j].properties["imgKey"];
+                INFO("SaveImageKey To ES: " << strImageKey);
+                t_json["imgKey"] = strImageKey;
+
+                try {
+                    auto server = m_rpcClient.getServer();
+                    if (!server) {
+                        ERR("server is null");
+                        //return;
+                    }
+                    INFO("Record Video " << strImageKey);
+                    server->recordVideo(strImageKey);
+                } catch (std::exception &e) {
+                    ERR("Record Video Err: " << strImageKey << "   Message: " << e.what());
+                    //return;
+                }
                 auto faceSearchServer = faceSearchRpcClient.getServer();
                 if (!faceSearchServer) {
                     ERR("faceSearchServer is null");

--
Gitblit v1.8.0