chenshijun
2019-04-15 a2ea58c567a078bb97a9e45a56fe50df41438d22
整合c++ver1.3的修改代码进入该分支
11个文件已修改
92 ■■■■ 已修改文件
QiaoJiaSystem/DataManagerServer/http_configserver.cpp 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/FaceDetectServer/main_detect.cpp 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/FaceDetectServer/main_extract.cpp 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/LocalDBTool/SqliteToolkit.hpp 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/FaceExtractElement.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/PerimeterElement.cpp 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -1164,11 +1164,11 @@
                                        std::string brand) const {
    if (brand == "haikang") {
        bool ret = getHKDevSerialNumber(ip.c_str(), port, username.c_str(), passwd.c_str());
        if (!ret) {
            ERR("getHKDevSerialNumber ERR");
            return false;
        }
//        bool ret = getHKDevSerialNumber(ip.c_str(), port, username.c_str(), passwd.c_str());
//        if (!ret) {
//            ERR("getHKDevSerialNumber ERR");
//            return false;
//        }
        //调用rtsp流rtsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
        port = 554;//TODO
//        std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":" + std::to_string(port) +
@@ -1218,11 +1218,11 @@
        return false;//TODO
    } else if (brand == "yushi") {
//        rtsp://admin:admin@192.168.8.8:554/video1
        bool ret = getUVDevSerialNumber(ip.c_str(), username.c_str(), passwd.c_str());
        if (!ret) {
            ERR("getUVDevSerialNumber ERR");
            return false;
        }
//        bool ret = getUVDevSerialNumber(ip.c_str(), username.c_str(), passwd.c_str());
//        if (!ret) {
//            ERR("getUVDevSerialNumber ERR");
//            return false;
//        }
        port = 554;
//        std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":" + std::to_string(port) +
QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp
@@ -50,5 +50,6 @@
        ERR("shareMemory attach faild");
//        throw std::runtime_error("shareMemory attach faild");
    }
    return feature;
}
QiaoJiaSystem/FaceDetectServer/main_detect.cpp
@@ -57,7 +57,8 @@
    IceRpcServer<FaceDetectServerI> server("faceServer", appPref.getIntData("RpcFDPort"), "tcp");
    server.setMessageSizeMax(1024 * 1024 * 50);
    server.setPoolInitSize(appPref.getIntData("thread.max"));
    server.setPoolMaxSize(appPref.getIntData("thread.max"));
    DBG("MaxPoolSize: " << std::max(appPref.getIntData("thread.max")*2, 32));
    server.setPoolMaxSize(std::max(appPref.getIntData("thread.max")*2, 32));
    server.runWaitShutDown();
    return 0;
}
QiaoJiaSystem/FaceDetectServer/main_extract.cpp
@@ -58,7 +58,8 @@
    IceRpcServer<FaceExtractServerI> server("faceExtractServer", appPref.getIntData("RpcFEPort"), "tcp");
    server.setMessageSizeMax(1024 * 1024 * 50);
    server.setPoolInitSize(appPref.getIntData("thread.max"));
    server.setPoolMaxSize(appPref.getIntData("thread.max"));
    DBG("MaxPoolSize: " << std::max(appPref.getIntData("thread.max")*2, 32));
    server.setPoolMaxSize(std::max(appPref.getIntData("thread.max")*2, 32));
    server.runWaitShutDown();
    return 0;
}
QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp
@@ -278,6 +278,10 @@
//        BASICGB28181::avframe_to_cvmat(frame).copyTo(p_this->m_image);
            p_this->m_image = std::move(BASICGB28181::avframe_to_cvmat(p_this->frame));
            if(p_this->m_image.empty()) {
                ERR("camID:" << p_this->m_camIdx << " frameW:" << p_this->frame->width);
                continue;
            }
//            将i帧保存为快照
            if (p_this->m_SnapshotNotSaveRet && (p_this->pkt.flags & AV_PKT_FLAG_KEY)) {
                try {
@@ -434,7 +438,7 @@
        if (!m_packetsVec.empty()) {
            auto iter = m_packetsVec.begin();
            while (iter->m_frameId < lastFrameId) {
                INFO("DropFrame: " << iter->m_frameId);
//                INFO("DropFrame: " << iter->m_frameId);
                delete iter->m_packet.data;
                iter = m_packetsVec.erase(iter);
            }
@@ -464,7 +468,7 @@
bool BASICGB28181::FFmpegDecoderJPG::SaveVideo(std::string path, int64_t lastFrameId) {
    std::lock_guard<std::mutex> lock(g_mutex);
    INFO("SaveVideo: " << path << "m_packetsVec.size : " << m_packetsVec.size());
//    INFO("SaveVideo: " << path << "m_packetsVec.size : " << m_packetsVec.size());
    if (!m_packetsVec.empty()) {
        startWrite(path.c_str());
        int64_t firstKeyFramePts = m_packetsVec[0].m_packet.pts;
@@ -472,7 +476,7 @@
        unsigned long int frame_index = 0;
        for (const auto &item:m_packetsVec) {
            if (item.m_frameId < lastFrameId) {
                DBG("item.m_frameId < lastFrameId   " << item.m_frameId << "  " << lastFrameId);
//                DBG("item.m_frameId < lastFrameId   " << item.m_frameId << "  " << lastFrameId);
                conversion(const_cast<AVPacket *> (&item.m_packet), firstKeyFramePts, firstKeyFrameDts, video_st,
                           frame_index);
                frame_index++;
@@ -618,7 +622,7 @@
        AVPacket *pkg = static_cast<AVPacket *>(packet);
        DBG("frame_index==%d\n" << frame_index);
//        DBG("frame_index==\n" << frame_index);
        //Write PTS
        AVRational time_base1 = inStream->time_base;
        //Duration between 2 frames (us)
QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
@@ -63,7 +63,7 @@
                            p_this->videoPublishElement = new ffmpeg::VideoPublishElement(path, size_, "flv", 25, gupIdx);
                            p_this->videoPublishElement->start();
                        } else {
                            DBG("videoPublishElement->setImage() : " << p_this->m_chanPubID);
//                            DBG("videoPublishElement->setImage() : " << p_this->m_chanPubID);
                            if (!p_this->m_image.empty()) {
                                p_this->videoPublishElement->setImage(p_this->m_image);
                            } else {
@@ -78,7 +78,7 @@
                            delete p_this->videoPublishElement;
                            p_this->videoPublishElement = nullptr;
                        }else{
                            DBG("videoPublishElement null :" << p_this->m_chanPubID);
//                            DBG("videoPublishElement null :" << p_this->m_chanPubID);
                        }
                    }
                }
@@ -98,7 +98,7 @@
                    cv::Mat copyMat;
                    std::string imageName = p_this->m_fFmpegDecoderJPG.GetImageName();
                    p_this->m_image.copyTo(copyMat);
                    m_pManager->SaveImageToRedis(p_this->m_chanPubID, imageName, copyMat);
                    p_this->m_pManager->SaveImageToRedis(p_this->m_chanPubID, imageName, copyMat);
                }
                /*********/
@@ -162,7 +162,7 @@
                        } else {
                            //todo 业务死锁
                            usleep((6 - reopenTime--) * 1000000);
                            INFO("grabFrame faild, try reopen video: ");
                            INFO("grabFrame faild, try reopen video, reopenTime:" << reopenTime);
                            //关闭ffmpeg解码模块
                            p_this->m_fFmpegDecoderJPG.stopThd();
@@ -285,7 +285,7 @@
void BASICGB28181::VideoCaptureElementWithRtp::SaveVideo(const std::string &strImageName) {
    INFO("SaveVideo: " << strImageName);
//    INFO("SaveVideo: " << strImageName);
    std::string strTimeStamp = AppUtil::getTimeUSecString();
    std::string strPath = MakeDir(strTimeStamp);
    m_fFmpegDecoderJPG.SaveVideoByImageName(strPath, strImageName);
QiaoJiaSystem/LocalDBTool/SqliteToolkit.hpp
@@ -241,11 +241,6 @@
//        %%      ALTER TABLE sys_o_tables ADD COLUMN uploadFlag varchar(255) DEFAULT 0;
//        %%      ALTER TABLE sys_o_tables ADD COLUMN cmpThreshold varchar(255) DEFAULT 60;
//        %%      ALTER TABLE sys_o_tables ADD COLUMN enabled varchar(255) DEFAULT 1;
//        %%      ALTER TABLE "0cd82a8b-5285-5737-ab19-8c07247c797e" ADD COLUMN uploadFlag varchar(255) DEFAULT 0;
//        %%      ALTER TABLE "0cd82a8b-5285-5737-ab19-8c07247c797e" ADD COLUMN cmpThreshold varchar(255) DEFAULT 60;
//        %%      ALTER TABLE "0cd82a8b-5285-5737-ab19-8c07247c797e" ADD COLUMN enabled varchar(255) DEFAULT 1;
        std::string sql = "CREATE TABLE \"main\".\"sys_o_tables\" (";
        sql.append(" uuid        varchar(255) PRIMARY KEY, ");
//        sql.append(" ClusterName varchar(255) DEFAULT NULL,");//本地库不需要
@@ -278,6 +273,10 @@
            return "tableName is NULL";
        }
        // 人员信息表
        //ALTER TABLE '0cd82a8b-5285-5737-ab19-8c07247c797e' ADD COLUMN uploadFlag varchar(255) DEFAULT 0;
        //ALTER TABLE '0cd82a8b-5285-5737-ab19-8c07247c797e' ADD COLUMN cmpThreshold varchar(255) DEFAULT 60;
        //ALTER TABLE '0cd82a8b-5285-5737-ab19-8c07247c797e' ADD COLUMN enabled varchar(255) DEFAULT 1;
        //ALTER TABLE '0cd82a8b-5285-5737-ab19-8c07247c797e' ADD COLUMN monitorLevel    varchar(255)      DEFAULT 0;
        std::string sql = "CREATE TABLE " + g_dbName + ".'";
        sql.append(tableName);
        sql.append("' (  uuid        varchar(255) PRIMARY KEY,");
QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
@@ -54,7 +54,7 @@
void FaceExtractElement::submitFaceExtract(FaceToExtract faceToExtract) {
    std::lock_guard<std::mutex> lg(imageQueueMutex);
    if (faceExtractQueue.size() >= VECTOR_MAX) {
        ERR("FaceExtractElement::submitFaceExtract too fast, imageQueue.size()>=QUEUE_MAX")
        ERR("FaceExtractElement::submitFaceExtract too fast, imageQueue.size()>=QUEUE_MAX : " << faceExtractQueue.size())
        return;
    }
    faceExtractQueue.push_back(faceToExtract);
@@ -66,7 +66,7 @@
    {
        std::lock_guard<std::mutex> lg(imageQueueMutex);
        if (faceExtractQueue.empty()) {
            ERR("faceExtractQueue.empty ");
//            ERR("faceExtractQueue.empty ");
            return;
        }
        faceExtractQueueTmp.swap(faceExtractQueue);
QiaoJiaSystem/StructureApp/PerimeterElement.cpp
@@ -124,17 +124,17 @@
            //state = num > 0 ;
            state =( num !=mRealNum);
          //  DBG("num="<<num<< "time="<< picDate);
            INFO("SDK Type: PerimeterSdk");
//            INFO("SDK Type: PerimeterSdk");
            break;
        case CrowdSdk:
            state = num > m_sdkRule.nAlarmNumLowerLimit && num !=mRealNum;
            INFO("SDK Type: CrowdSdk");
//            INFO("SDK Type: CrowdSdk");
            break;
        case PerHubSdk:
            state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num !=mRealNum;
            INFO("SDK Type: PerHubSdk");
//            INFO("SDK Type: PerHubSdk");
//         if(m_sdkRule.nAlarmNumLowerLimit>=0)
//         {
@@ -166,7 +166,7 @@
        default:
            break;
    }
    INFO("State:"<<state<<" Num:"<<num<<" mRealNum:"<<mRealNum<<" LowerLimit :"<<m_sdkRule.nAlarmNumLowerLimit<<" HightLimit: "<<m_sdkRule.nAlarmNumUpperLimit);
//    INFO("State:"<<state<<" Num:"<<num<<" mRealNum:"<<mRealNum<<" LowerLimit :"<<m_sdkRule.nAlarmNumLowerLimit<<" HightLimit: "<<m_sdkRule.nAlarmNumUpperLimit);
    m_triggerElement.setState(state);
    m_triggerElement.triggerOnce();
    if (m_triggerElement.getTriggerState())
@@ -194,7 +194,7 @@
            std::string imgUrl = uploadImgToFdfs(image);
            saveInfoToEs(imgUrl, picDate,imgKey);
        }
        DBG("num=" << num << " lastnum=" << mRealNum);
//        DBG("num=" << num << " lastnum=" << mRealNum);
        mRealNum = num;
        //todo 重置报警trigger
@@ -285,8 +285,8 @@
        {
             mPolygon << (QPoint(x, y));
        }
        DBG("width="<<sizeW);
        DBG("height="<<sizeH);
//        DBG("width="<<sizeW);
//        DBG("height="<<sizeH);
    }
@@ -295,7 +295,7 @@
QJsonArray PerimeterElement::getJsonArrayFromQString(const QString &strJson) {
    QJsonDocument jsonDocument = QJsonDocument::fromJson(strJson.toLocal8Bit());
    if (jsonDocument.isNull()) {
        DBG("please check the string" << strJson.toStdString());
        ERR("please check the string" << strJson.toStdString());
        return QJsonArray();
    }
    QJsonArray jsonArray = jsonDocument.array();
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
@@ -325,7 +325,7 @@
        //    auto lst = m_lDBTool->searchCamDevTableAll();
        Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
        if (m_controllers.find(index) == m_controllers.end()) {
            INFO("MYH DEBUG HERE");
//            INFO("MYH DEBUG HERE");
            if (m_currentCount >= m_maxCount) {
                ERR("addCamera faild, camera's num is full!")
                return -1;
@@ -356,7 +356,7 @@
 * @return 总是0
 */
int RtspAnalysManager::removeCamera(const std::string &index) {
    INFO("MYH DEBUG HERE");
//    INFO("MYH DEBUG HERE");
    if (m_GB28181_Enable) {
        if (m_controllers_videoCapElem.find(index) == m_controllers_videoCapElem.end())return -1;
        auto controller = m_controllers_videoCapElem[index];
@@ -382,7 +382,7 @@
    delete imgRedis;
    m_imgRedisControllers.erase(index);
    m_imgRedisCRwLock.unlock();
    INFO("MYH DEBUG HERE");
//    INFO("MYH DEBUG HERE");
    return 0;
}
@@ -443,7 +443,7 @@
//录取视频的RPC的接口函数
::std::string RtspAnalysManager::recordVideo(const ::std::string &name, const ::Ice::Current &) {
    INFO("Record Video For: " << name);
//    INFO("Record Video For: " << name);
    ImageName_s_t nameSt = ImageName_s_t::fromString(name);
    if (nameSt.Valid()) {
        if (m_GB28181_Enable) {
QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp
@@ -30,13 +30,13 @@
//继承自父类,线程初始化的一些工作
void RtspImageRedisElement::threadInitial()
{
    INFO("MYH DEBUG HERE");
//    INFO("MYH DEBUG HERE");
}
//继承自父类,线程结束的时候调用
void RtspImageRedisElement::threadClosing()
{
    INFO("MYH DEBUG HERE");
//    INFO("MYH DEBUG HERE");
}
//保存图片到队列中,
@@ -50,7 +50,7 @@
        m_imageQueue.push(NameImagePair_s_t(imageName,img));
    }
    else{
        ERR("SaveImage Failed ImgName:"<<imageName);
//        ERR("SaveImage Failed ImgName:"<<imageName);
    }
    return true;
}