chenshijun
2019-03-30 b8c5eb8048b566d632b25391a79ccbd6ce33c010
1.3 增加nsq消息,解决进程重启
9个文件已修改
229 ■■■■■ 已修改文件
.gitignore 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/DataManagerServer/AppPipeController.cpp 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/DataManagerServer/http_configserver.cpp 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoToImageMulth/main.cpp 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoToImageMulth/pushStream/PushStreamAppPipeController.cpp 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/YoloServer/YoloDetectServerI.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -56,3 +56,5 @@
QiaoJiaSystem/build/\.fuse_hidden*
QiaoJiaSystem/enctest/cmake-build-debug/
QiaoJiaSystem/DataManagerServer/AppPipeController.cpp
@@ -1,17 +1,18 @@
#include "AppPipeController.h"
#include <basic/util/app/AppPreference.hpp>
#include <basic/util/app/AppConfig.h>
#include <basic/util/app/AppUtil.h>
//#include <sstream>
#include <algorithm>
AppPipeController::AppPipeController(int index, const Json::Value &json):
    videoCaptureElement(json["rtsp"].asString(), 25,3000,appPref.getIntData("gpu.index")),
    index(index), videoPublishElement(appPref.getStringData("publish.basepath")+".flv",
                        cv::Size(appPref.getIntData("pulish.width"),appPref.getIntData("pulish.height")),
                        cv::Size(appConfig.getIntProperty("pulish.width"),appConfig.getIntProperty("pulish.height")),
                        "flv", 25, appPref.getIntData("gpu.index"))
{
    if(appPref.getIntData("pulish.width") < 0 || appPref.getIntData("pulish.height") < 0)
    if(appConfig.getIntProperty("pulish.width") < 0 || appConfig.getIntProperty("pulish.height") < 0)
    {
        ERR("pulish.width:  "<<appPref.getIntData("pulish.width") <<"  Height: "<< appPref.getIntData("pulish.height"));
        ERR("pulish.width:  "<<appConfig.getIntProperty("pulish.width") <<"  Height: "<< appConfig.getIntProperty("pulish.height"));
    }
    videoCaptureElement.registerConnector([&]{
        //if(!videoPublishElement.isBusy()){
QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -22,6 +22,7 @@
#include <time.h>
#include <dirent.h>
#include "basic/pipe_element/ffmpeg/basic_struct_for_video_image.h"
#include <basic/timer_counter/Clocktimer.h>
#include "vss/controller/VssDevTblController.h"
#include "vss/controller/VssChannelTblController.h"
@@ -1171,8 +1172,8 @@
        std::string publish_basepath = rtmpAddr + "cam" + str_uuid;
        DBG("publish_basepath:" << publish_basepath);
        appPref.setStringData("publish.basepath", publish_basepath);
        appPref.setIntData("pulish.width", 640);
        appPref.setIntData("pulish.height", 360);
//        appPref.setIntData("pulish.width", 1920);
//        appPref.setIntData("pulish.height", 1080);
        if (m_rtmp.find(ip) != m_rtmp.end()) {
            if (m_rtmp[ip].appPC == nullptr) {
@@ -1224,8 +1225,8 @@
        std::string publish_basepath = rtmpAddr + "cam" + str_uuid;
        DBG("publish_basepath:" << publish_basepath);
        appPref.setStringData("publish.basepath", publish_basepath);
        appPref.setIntData("pulish.width", 640);
        appPref.setIntData("pulish.height", 360);
//        appPref.setIntData("pulish.width", 1920);
//        appPref.setIntData("pulish.height", 1080);
        if (m_rtmp.find(ip) != m_rtmp.end()) {
            if (m_rtmp[ip].appPC == nullptr) {
@@ -2679,6 +2680,7 @@
            std::string strSelectTemplate = R"#( -vf "select=eq(n\,%d)")#";
            sprintf(selectExpBuff, strSelectTemplate.c_str(), frameIdDiff - 1);
            if (videoSt.Valid() && imgSt.Valid()) {
                ClockTimer clockTimer1("ffmpeg getpic");
                std::string cmd("ffmpeg -i '" + videoPath + "'" + std::string(selectExpBuff) + " -vframes 1" + " -y '" +
                                str_imgName + "'");
                INFO("Video To Image Cmd: " << cmd);
@@ -2688,17 +2690,20 @@
                return "{\"error\":\"未查到视频路径\"}";
            }
            ClockTimer clockTimer2("cv::imread(str_imgName)");
            cv::Mat img = cv::imread(str_imgName);
            if (img.empty()) {
                ERR("{\"error\":\"Video File error\"}");
                return "{\"error\":\"视频文件错误\"}";
            }
            ClockTimer clockTimer3("CvUtil::cvMat2Buffer(img, buffer)");
            std::vector<unsigned char> buffer;
            CvUtil::cvMat2Buffer(img, buffer);
            std::string img_url = "http://";
            fdfsClient.rwLock.rdlock();
            if (fdfsClient.fastFds != nullptr) {
                ClockTimer clockTimer4("fdfsClient.fastFds->uploadFile");
                std::string t_strImg = "";
                if (!fdfsClient.fastFds->uploadFile(buffer, t_strImg, "jpg")) {
                    img_url = "upload image fail";
QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp
@@ -43,8 +43,8 @@
FaceDetect::Faces FaceDetectServerI::faceDetect(Ice::Int width, Ice::Int height, const std::string &shareMemoryName,
                                                const Ice::Current &) {
    ClockTimer ct("FaceDetectServerI::faceDetect");
    INFO("Face Detect");
//    ClockTimer ct("FaceDetectServerI::faceDetect");
//    INFO("Face Detect");
    FaceDetect::Faces faces;
    QSharedMemory shareMemory(QString(shareMemoryName.c_str()));
    if (shareMemory.attach()) {
@@ -53,6 +53,7 @@
        int channel = detectResourcesManager.getAvilableChannel(shareMemoryName);
        int faceNum = THFI_DetectFace(channel, (BYTE *) data, 24, width, height, facesPos, 30, m_ampleSize);
        if (faceNum > 0) {
            DBG("Face num is :" << faceNum);
            for (int i = 0; i < faceNum; i++) {
                FaceDetect::FacePos face;
                auto &pos = facesPos[i];
@@ -63,7 +64,7 @@
                faces.push_back(face);
            }
        } else {
            DBG("Face num is 0");
//            DBG("Face num is 0");
        }
    } else {
        ERR("shareMemory error  " << shareMemoryName);
QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
@@ -80,17 +80,33 @@
        appPref.setIntData("n_cut_max_duration", lst_dev.n_cut_max_duration);
        appPref.setIntData("n_cut_min_duration", lst_dev.n_cut_min_duration);
        if (lst.size() > 0) {
//        Json::Value json;
            for (auto &item : lst) {
                std::string t_camIdex = item.str_cam_dev_id.toStdString();
            Json::Value json;
            int startCamNO = appPref.getIntData("CamStartNO");
            int CamCount = appPref.getIntData("CamEndNO") - appPref.getIntData("CamStartNO") + 1;
            auto itor = lst.begin();
            if (startCamNO >= lst.size()) {
                ERR("startCamNO > lst.size()");
                return;
            }
            for (int i = 0; i < startCamNO; i++) {
                itor++;
            }
            for (int i = 0; i < CamCount; i++) {
                if (itor == lst.end()) {
                    ERR("itor == lst.end()");
                    return;
                }
                std::string t_camIdex = itor->str_cam_dev_id.toStdString();
                std::string rtsp_url = "GB28181";
//            rtspAddrBuild(item.str_ip.toStdString(), 554, item.str_username.toStdString(),
//                                                 item.str_password.toStdString(), item.str_brand.toStdString());
                SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id);
                SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(itor->str_cam_dev_id);
                for (auto &rule:ruleMap) {
                    rule.second.strAddr = item.str_addr;
                    rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first);
                    rule.second.strAddr = itor->str_addr;
                    rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(itor->str_cam_dev_id, rule.first);
                    if (rule.second.nSdkType == PerStaticSdk) {
                        float temp = 1 - (float) (rule.second.nThreshold) / 100;
@@ -103,14 +119,36 @@
                    DBG("fSensitivity" << rule.second.fSensitivity);
                }
                appPref.setStringData(t_camIdex + "rtsp", rtsp_url);
                // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString());
//            json["rtsp"] = rtsp_url;
                // json["addr"] = item.str_addr.toStdString();
                INFO("cam add is " << item.str_addr.toStdString());
                INFO("cam add is " << itor->str_addr.toStdString());
                addCamera(t_camIdex, ruleMap);
                itor++;
            }
//            for (auto &item : lst) {
//                std::string t_camIdex = item.str_cam_dev_id.toStdString();
//                std::string rtsp_url = "GB28181";
//
//                SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id);
//                for (auto &rule:ruleMap) {
//
//                    rule.second.strAddr = item.str_addr;
//                    rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first);
//
//                    if (rule.second.nSdkType == PerStaticSdk) {
//                        float temp = 1 - (float) (rule.second.nThreshold) / 100;
//                        rule.second.fSensitivity = (75 + 25 * temp) / 100;
//
//                    } else if (rule.second.nSdkType != FaceSdk) {
//                        float temp = 1 - (float) (rule.second.nThreshold) / 100;
//                        rule.second.fSensitivity = (5 + 90 * temp) / 100;
//                    }
//                    DBG("fSensitivity" << rule.second.fSensitivity);
//                }
//                appPref.setStringData(t_camIdex + "rtsp", rtsp_url);
//                INFO("cam add is " << item.str_addr.toStdString());
//                addCamera(t_camIdex, ruleMap);
//            }
        } else {
            ERR("searchCamDevTableAll size is 0");
        }
@@ -158,76 +196,15 @@
                        float temp = 1 - (float) (rule.second.nThreshold) / 100;
                        rule.second.fSensitivity = (5 + 90 * temp) / 100;
                    }
                    //                if (rule.second.nThreshold < 5 )
                    //                {
                    //                    rule.second.fSensitivity=0.95;
                    //                }
                    //                else if(rule.second.nThreshold > 95)
                    //                {
                    //                     rule.second.fSensitivity=0.05;
                    //                }
                    //                else
                    //                {
                    //                    rule.second.fSensitivity = 1-(float) (rule.second.nThreshold) / 100;
                    //                }
                    DBG("fSensitivity" << rule.second.fSensitivity);
                }
                appPref.setStringData(t_camIdex + "rtsp", rtsp_url);
                // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString());
                json["rtsp"] = rtsp_url;
                // json["addr"] = item.str_addr.toStdString();
                INFO("cam add is " << itor->str_addr.toStdString());
                addCamera(t_camIdex, ruleMap);
                itor++;
            }
            //        for (auto item : lst) {
            //            std::string t_camIdex = item.str_cam_dev_id.toStdString();
            //            std::string rtsp_url = rtspAddrBuild(item.str_ip.toStdString(), 554, item.str_username.toStdString(),
            //                                                 item.str_password.toStdString(), item.str_brand.toStdString());
            //            SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id);
            //            for (auto &rule:ruleMap) {
            //
            //                rule.second.strAddr = item.str_addr;
            //                rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first);
            //
            //                if(rule.second.nSdkType == PerStaticSdk)
            //                {
            //                    float temp=1-(float)(rule.second.nThreshold)/100;
            //                    rule.second.fSensitivity=(75+25*temp)/100;
            //
            //                }
            //                else if(rule.second.nSdkType != FaceSdk)
            //                {
            //                    float temp=1-(float)(rule.second.nThreshold)/100;
            //                     rule.second.fSensitivity=(5+90*temp)/100;
            //                }
            ////                if (rule.second.nThreshold < 5 )
            ////                {
            ////                    rule.second.fSensitivity=0.95;
            ////                }
            ////                else if(rule.second.nThreshold > 95)
            ////                {
            ////                     rule.second.fSensitivity=0.05;
            ////                }
            ////                else
            ////                {
            ////                    rule.second.fSensitivity = 1-(float) (rule.second.nThreshold) / 100;
            ////                }
            //
            //                DBG("fSensitivity" << rule.second.fSensitivity);
            //            }
            //            appPref.setStringData(t_camIdex + "rtsp", rtsp_url);
            //            // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString());
            //            json["rtsp"] = rtsp_url;
            //            // json["addr"] = item.str_addr.toStdString();
            //
            //            INFO("cam add is " << item.str_addr.toStdString());
            //
            //            addCamera(t_camIdex, ruleMap);
            //        }
        } else {
            ERR("searchCamDevTableAll size is 0");
        }
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
@@ -44,10 +44,29 @@
            DBG("searchCamDevTableByType size:" << lst.size());
            if (lst.size() > 0) {
                for (auto item : lst) {
                    std::string t_camIdex = item.str_cam_dev_id.toStdString();
                int startCamNO = appPref.getIntData("CamStartNO");
                int CamCount = appPref.getIntData("CamEndNO") - appPref.getIntData("CamStartNO") + 1;
                INFO("StartCamNO: " << startCamNO << " CamCount: " << CamCount);
                auto itor = lst.begin();
                if (startCamNO >= lst.size()) {
                    ERR("startCamNO > lst.size()");
                    return;
                }
                for (int i = 0; i < startCamNO; i++) {
                    itor++;
                }
                for (int i = 0; i < CamCount; i++) {
                    if (itor == lst.end()) {
                        ERR("itor == lst.end()");
                        return;
                    }
                    std::string t_camIdex = itor->str_cam_dev_id.toStdString();
                    DBG("-----camID:" << t_camIdex << "min:" << cut_min_duration << "max:" << cut_max_duration);
                    pthis->m_controllers_videoCapElem[t_camIdex]->SetVideoMinMaxSeconds(cut_min_duration, cut_max_duration);
                    itor++;
                }
            } else {
                ERR("searchCamDevTableByType size is 0");
@@ -127,14 +146,33 @@
        appPref.setIntData("n_cut_max_duration", lst_dev.n_cut_max_duration);
        appPref.setIntData("n_cut_min_duration", lst_dev.n_cut_min_duration);
        if (lst.size() > 0) {
            for (auto item : lst) {
                std::string t_camIdex = item.str_cam_dev_id.toStdString();
            int startCamNO = appPref.getIntData("CamStartNO");
            int CamCount = appPref.getIntData("CamEndNO") - appPref.getIntData("CamStartNO") + 1;
            INFO("StartCamNO: " << startCamNO << " CamCount: " << CamCount);
            auto itor = lst.begin();
            if (startCamNO >= lst.size()) {
                ERR("startCamNO > lst.size()");
                return;
            }
            for (int i = 0; i < startCamNO; i++) {
                itor++;
            }
            for (int i = 0; i < CamCount; i++) {
                if (itor == lst.end()) {
                    ERR("itor == lst.end()");
                    return;
                }
                std::string t_camIdex = itor->str_cam_dev_id.toStdString();
                std::string rtsp_url = "GB28181";
//            rtspAddrBuild(item.str_ip.toStdString(), 554, item.str_username.toStdString(),
//                                                 item.str_password.toStdString(), item.str_brand.toStdString());
                INFO("cam add is " << item.str_addr.toStdString());
                INFO("cam add is " << itor->str_addr.toStdString());
                addCamera(t_camIdex, rtsp_url);
                sleep(1);
                itor++;
            }
        } else {
            ERR("searchCamDevTableByType size is 0");
QiaoJiaSystem/VideoToImageMulth/main.cpp
@@ -66,8 +66,8 @@
//            std::string rtmpAddr = appConfig.getStringProperty("srsAddr");
//            std::string publish_basepath = rtmpAddr + "" ;
//            appPref.setStringData("publish.basepath", publish_basepath);
        appPref.setIntData("pulish.width", 640);
        appPref.setIntData("pulish.height", 360);
//        appPref.setIntData("pulish.width", 640);
//        appPref.setIntData("pulish.height", 480);
    }
//    int arg1 = atoi(argv[1]);
//
@@ -113,8 +113,13 @@
            BaseSqliteDao::setLDBTool(&ldbTool);
            t_value = VssLocalSettingTblSqliteDao::instance()->findAllVssLocalSettingTblList();
        }
        DBG("t_value.size():" << t_value.size());
        DBG("t_value[\"data\"].size():" << t_value["data"].size());//todo   bug here t_value["data"].size() = 0
        if (t_value.size() == 1 && t_value["data"].size() > 1) {
            assert("t_value.size()");
        }
        if (t_value["data"].size() == 0) {
            assert("t_value[\"data\"].size()");
        }
        DBG(t_value["data"].begin()->toStyledString());
        auto &t_cfg = *t_value["data"].begin();
@@ -160,6 +165,10 @@
    }
    DBG("test start");
    // #todo
//    BasicMsg::Nsq::NsqMsgConsumer nsqMsgConsumer("127.0.0.1", "4150", "test3", "ch2");
    //
    appPref.setStringData("user.loop.absolute.path", appConfig.getStringProperty("cutPath"));
    IceRpcServer<RtspAnalysManager> server("RtspAnalysServer", appPref.getIntData("RpcVTIMPort"), "tcp");
    server.setMessageSizeMax(1024 * 1024 * 50);
QiaoJiaSystem/VideoToImageMulth/pushStream/PushStreamAppPipeController.cpp
@@ -13,12 +13,12 @@
    videoPublishElement(nullptr) {
    string path = appConfig.getStringProperty("srsAddr") + "cam" + chanPubID + ".flv";
    cv::Size size_(appPref.getIntData("pulish.width"), appPref.getIntData("pulish.height"));
    cv::Size size_(appConfig.getIntProperty("pulish.width"), appConfig.getIntProperty("pulish.height"));
    int gupIdx = appPref.getIntData("gpu.index");
    videoPublishElement = new ffmpeg::VideoPublishElement(path, size_, "flv", 25, gupIdx);
    if (appPref.getIntData("pulish.width") < 0 || appPref.getIntData("pulish.height") < 0) {
        ERR("pulish.width:  " << appPref.getIntData("pulish.width") << "  Height: "
                              << appPref.getIntData("pulish.height"));
    if (appConfig.getIntProperty("pulish.width") < 0 || appConfig.getIntProperty("pulish.height") < 0) {
        ERR("pulish.width:  " << appConfig.getIntProperty("pulish.width") << "  Height: "
                              << appConfig.getIntProperty("pulish.height"));
    }
    videoCaptureElement.registerConnector([&] {
        //if(!videoPublishElement.isBusy()){
QiaoJiaSystem/YoloServer/YoloDetectServerI.cpp
@@ -14,7 +14,7 @@
::YoloDetect::ObjInfos
YoloDetectServerI::YoloDetect(::Ice::Int w, ::Ice::Int h, const ::std::string &shM, const ::Ice::Current &) {
    ClockTimer ct("YoloDetectServerI::YoloDetect");
//    ClockTimer ct("YoloDetectServerI::YoloDetect");
//    std::thread::id key = std::this_thread::get_id();
//    DBG("key is " << key);