From 25f94726888e19d6efed7b393217d9f56a0ca767 Mon Sep 17 00:00:00 2001 From: chenshijun <chenshijun@aiotlink.com> Date: 星期五, 15 三月 2019 18:44:46 +0800 Subject: [PATCH] Merge branch 'yw.1.2.fixbug' of ssh://192.168.1.226:29418/development/c++ into yw.1.2.fixbug --- QiaoJiaSystem/StructureApp/AppPipeController.cpp | 92 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 76 insertions(+), 16 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp index 18c22b4..c2d8a16 100644 --- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp +++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp @@ -9,7 +9,7 @@ #include <basic/pipe_element/ffmpeg/basic_struct_for_video_image.h> //AppPipeController::AppPipeController(std::string folderPath, const Json::Value &json) : -// videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")), m_index(0), +// videoCaptureElement("filePath", 25, -1, appPref.getIntData("gpu.index")), m_index(0), // m_folderPath(folderPath), // m_json(json), fdfsClient(nullptr), yoloRpcElement(folderPath + "yoloRpc"), faceRpcElement(folderPath + "faceRpc"), // faceExtractElement(folderPath + "faceExtract"), triggerElement(25, 10), @@ -19,7 +19,8 @@ //} AppPipeController::AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap) : - videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")), + m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcVTIMPort"),"tcp"), + videoCaptureElement("filePath", 25, -1, appPref.getIntData("gpu.index")), // videoCaptureElement(40), m_index(0), m_folderPath(folderPath), @@ -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) { @@ -39,7 +40,7 @@ } //AppPipeController::AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable) : -// videoCaptureElement(json["rtsp"].asString(), 25, 3000, appPref.getLongData("gpu.index"), RecordVideoEnable), +// videoCaptureElement(json["rtsp"].asString(), 25, 3000, appPref.getIntData("gpu.index"), RecordVideoEnable), // m_index(index), fdfsClient(nullptr), yoloRpcElement(to_string(index) + "yoloRpc"), // faceRpcElement(to_string(index) + "faceRpc"), m_json(json), faceExtractElement(to_string(index) + "faceExtract"), // triggerElement(25, 4), recordVideoElement(index, json["rtsp"].asString()), bRecordVideoEnable(RecordVideoEnable) { @@ -48,7 +49,7 @@ //AppPipeController::AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable) : -// videoCaptureElement(json["rtsp"].asString(), 25, 3000, appPref.getLongData("gpu.index")), +// videoCaptureElement(json["rtsp"].asString(), 25, 3000, appPref.getIntData("gpu.index")), // m_index(0), // m_camId(camId), // fdfsClient(nullptr), @@ -69,7 +70,8 @@ // intKeepRight(); //} AppPipeController::AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable) : - videoCaptureElement(appPref.getStringData(camId + "rtsp"), 25, 3000, appPref.getLongData("gpu.index")), + m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcVTIMPort"),"tcp"), + videoCaptureElement(appPref.getStringData(camId + "rtsp"), 25, 3000, appPref.getIntData("gpu.index")), // videoCaptureElement(40), m_index(0), m_camId(camId), @@ -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