派生自 development/c++

miyanhui
2019-02-15 ae5899dc884d8d7e1427e45c35e865d7ca51c34b
新的方式解决视频不录的问题
1个文件已添加
8个文件已修改
123 ■■■■ 已修改文件
QiaoJiaSystem/StructureApp/AppPipeController.cpp 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/AppPipeController.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/FaceExtractElement.cpp 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/FaceExtractElement.h 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/PerimeterElement.cpp 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/PerimeterElement.h 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/SaveVideoRpc.h 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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() ||
@@ -226,7 +227,7 @@
                               "crowdElement: "<<crowdElement.getTriggerState()<<"   "<<
                               "perHubElement: "<<perHubElement.getTriggerState()<<"   "<<
                               "perStaticElement: "<<perStaticElement.getTriggerState());
    }
    }*/
}
void AppPipeController::init() {
@@ -309,7 +310,7 @@
                imageDrawElement.submit();
            }
            //this->RecordVideo();
            if(faceRpcElement.getTriggerState() ||
            /*if(faceRpcElement.getTriggerState() ||
                 personElement.getTriggerState() ||
                 leftJudgment.getTriggerState() ||
                 rightJudgment.getTriggerState() ||
@@ -343,7 +344,7 @@
                    "crowdElement: "<<crowdElement.getTriggerState()<<"   "<<
                    "perHubElement: "<<perHubElement.getTriggerState()<<"   "<<
                    "perStaticElement: "<<perStaticElement.getTriggerState());
            }
            }*/
        }
    });
QiaoJiaSystem/StructureApp/AppPipeController.h
@@ -19,7 +19,7 @@
#include "PerStaticElement.h"
#include <jsoncpp/json/json.h>
#include "DBStruct.h"
#include <RtspAnalysServer.h>
#include "SaveVideoRpc.h"
class AppPipeController : public PipeController {
public:
    /***
@@ -79,6 +79,7 @@
    void initPerHub();
private:
    SaveVideoRpcClient_t m_rpcClient;
    ffmpeg::VideoCaptureElement videoCaptureElement;
    YoloRpcElement yoloRpcElement;
    FaceRpcElement faceRpcElement;
@@ -112,7 +113,7 @@
    std::mutex mutex;
    bool m_bSetWH;
    HiredisTool m_hiredisTool;
    IceRpcClient<RtspAnalys::RtspAnalysServerPrx> rpcClient;
};
#endif // APPPIPECONTROLLER_H
QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
@@ -45,6 +45,11 @@
    }
}
FaceExtractElement::FaceExtractElement(std::string shareMemoryName, const SdkRule &rule,
                                       SaveVideoRpcClient_t &rpcClient):FaceExtractElement(shareMemoryName,rule)
{
    m_rpcClient=rpcClient;
}
FaceExtractElement::~FaceExtractElement() {
    if (sharedMemory) {
        delete sharedMemory;
@@ -216,6 +221,21 @@
                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");
QiaoJiaSystem/StructureApp/FaceExtractElement.h
@@ -1,6 +1,7 @@
#ifndef FACEEXTRACTELEMENT_H
#define FACEEXTRACTELEMENT_H
#include "SaveVideoRpc.h"
#include <FaceServer.h>
#include <FaceSearchServer.h>
#include <basic/pipe/TimerElement.h>
@@ -28,7 +29,8 @@
class FaceExtractElement : public TimerElement {
public:
    FaceExtractElement(std::string shareMemoryName,const SdkRule& rule);
    FaceExtractElement(std::string shareMemoryName,const SdkRule& rule,SaveVideoRpcClient_t& rpcClient);
    ~FaceExtractElement();
@@ -42,6 +44,7 @@
    std::vector<::FaceDetect::Data> getFeatures() const;
private:
    FaceExtractElement(std::string shareMemoryName,const SdkRule& rule);
    virtual void timerFunc() override;
    IceRpcClient<FaceDetect::FaceExtractServerPrx> faceExtractRpcClient;
@@ -56,6 +59,7 @@
    Base64 base64;
    SdkRule m_sdkRule;
    SaveVideoRpcClient_t& m_rpcClient;
};
QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
@@ -20,6 +20,11 @@
    pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
}
JudgmentRetrogradeTool::JudgmentRetrogradeTool(const SdkRule &rule, SaveVideoRpcClient_t &rpcClient):JudgmentRetrogradeTool(rule)
{
    m_rpcClient = rpcClient;
}
JudgmentRetrogradeTool::~JudgmentRetrogradeTool() {
    if (pManagerEsDB) {
        delete pManagerEsDB;
@@ -304,8 +309,25 @@
    t_json["videoIp"] = getProperty("local_ip");//当前服务器IP地址
    t_json["ack_alarm"] = m_triggerElement.getTriggerState() ? "0" : "";  //  que ren shi fou bao jing
    t_json["cluster_id"] = appPref.getStringData("clusterID");; // ji qun id
    t_json["imgKey"]=obj.properties["imgKey"];
    std::string imgKey = obj.properties["imgKey"];
    t_json["imgKey"]=imgKey;
    INFO("SaveImageKey ToES:  "<<obj.properties["imgKey"]);
    try {
        auto server = m_rpcClient.getServer();
        if (!server)
        {
            ERR("server is null");
            return false;
        }
        INFO("Record Video "<<imgKey);
        server->recordVideo(imgKey);
    }
    catch (std::exception &e)
    {
        ERR("Record Video Err: "<<imgKey <<"   Message: "<<e.what());
        return false;
    }
    bool retface = false;
    if (pManagerEsDB)
        retface = pManagerEsDB->insertData("personaction", "perVideoAction", t_json.toStyledString(), str_uuid);
QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h
@@ -5,6 +5,7 @@
#ifndef JUDGINGRETROGRADE_JUDGMENTRETROGRADETOOL_H
#define JUDGINGRETROGRADE_JUDGMENTRETROGRADETOOL_H
#include "SaveVideoRpc.h"
#include <iostream>
#include <map>
#include <list>
@@ -55,7 +56,8 @@
public:
    JudgmentRetrogradeTool() {}
    JudgmentRetrogradeTool(const SdkRule &rule);
    JudgmentRetrogradeTool(const SdkRule &rule,SaveVideoRpcClient_t& rpcClient);
    virtual ~JudgmentRetrogradeTool();
@@ -74,6 +76,7 @@
    void setImage(const cv::Mat &value);
private:
    JudgmentRetrogradeTool(const SdkRule &rule);
    bool setMask(QString area, QString line);
    void setPerPoint(const long &, cv::Point2f);
@@ -146,6 +149,7 @@
    QString m_area;
    QString m_line;
    bool m_bSetWH;
    SaveVideoRpcClient_t& m_rpcClient;
};
QiaoJiaSystem/StructureApp/PerimeterElement.cpp
@@ -30,6 +30,9 @@
    pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
}
PerimeterElement::PerimeterElement(const SdkRule &rule,SaveVideoRpcClient_t &rpcClient):PerimeterElement(rule){
    m_rpcClient=rpcClient;
}
PerimeterElement::~PerimeterElement() {
    if (pManagerEsDB) {
        delete pManagerEsDB;
@@ -382,6 +385,21 @@
    t_json["ack_alarm"] = m_triggerElement.getTriggerState() ? "0" : "";  //  que ren shi fou bao jing
    t_json["cluster_id"] = appPref.getStringData("clusterID");; // ji qun id
    t_json["imgKey"] = imgKey;
    try {
        auto server = m_rpcClient.getServer();
        if (!server)
        {
            ERR("server is null");
            return false;
        }
        INFO("Record Video "<<imgKey);
        server->recordVideo(imgKey);
    }
    catch (std::exception &e)
    {
        ERR("Record Video Err: "<<imgKey <<"   Message: "<<e.what());
        return false;
    }
    INFO("SaveImgKeyToES: "<<imgKey);
    bool retface = false;
    if (pManagerEsDB)
QiaoJiaSystem/StructureApp/PerimeterElement.h
@@ -12,11 +12,12 @@
#include "DBStruct.h"
#include <basic/db/Elasticsearch/EsDBTool.h>
#include "IntAreaCalcUtil.h"
#include "SaveVideoRpc.h"
class PerimeterElement : public basic::PipeElement
{
public:
    PerimeterElement(){}
    PerimeterElement(const SdkRule& rule);
    PerimeterElement(const SdkRule& rule,SaveVideoRpcClient_t& rpcClient);
public:
    ~PerimeterElement();
@@ -52,7 +53,7 @@
    void setImage(const cv::Mat &value) const;
private:
    PerimeterElement(const SdkRule& rule);
    virtual void threadInitial()override;
@@ -89,6 +90,7 @@
   std::vector<Point> poly1;
   bool m_bSetWH;
   cv::Point2i* pointArray;
   SaveVideoRpcClient_t& m_rpcClient;
};
QiaoJiaSystem/StructureApp/SaveVideoRpc.h
New file
@@ -0,0 +1,11 @@
//
// Created by basic on 19-2-15.
//
#ifndef QIAOJIASYSTEM_SAVEVIDEORPC_H
#define QIAOJIASYSTEM_SAVEVIDEORPC_H
#include "../../../BasicPlatForm/basic/rpc/IceRpc.hpp"
#include "../VideoToImage/rpc/RtspAnalysServer.h"
using SaveVideoRpcClient_t = IceRpcClient<RtspAnalys::RtspAnalysServerPrx>;
#endif //QIAOJIASYSTEM_SAVEVIDEORPC_H