miyanhui
2019-02-18 8ac7f0ec5873c84c44d4cb2bc0a1d1247d6ae5ba
增加日志,查找重启的问题
3个文件已修改
29 ■■■■■ 已修改文件
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
@@ -9,6 +9,7 @@
using std::string;
RtspAnalysManager::RtspAnalysManager(LDBTool *_dbTool) : m_lDBTool(nullptr), m_maxCount(50), m_currentCount(0) {
    INFO("MYH DEBUG HERE");
    m_lDBTool=new LDBTool;
    init();
@@ -39,7 +40,7 @@
//初始化函数
void RtspAnalysManager::init() {
    NFO("MYH DEBUG HERE")
    auto lst = m_lDBTool->searchCamDevTableAll();
    Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
@@ -50,6 +51,7 @@
        for (auto item : lst)
        {
            INFO("MYH DEBUG HERE");
            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());
@@ -65,7 +67,9 @@
}
RtspAnalysManager::~RtspAnalysManager() {
    INFO("Program Exit");
    for (auto controller: m_controllers) {
        INFO("Delete Controller: "<<controller.first);
        delete controller.second;
    }
    m_controllers.clear();
@@ -84,6 +88,7 @@
    Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
    if (m_controllers.find(index) == m_controllers.end()) {
        INFO("MYH DEBUG HERE");
        if (m_currentCount >= m_maxCount) {
            ERR("addCamera faild, camera's num is full!")
            return -1;
@@ -111,6 +116,7 @@
 * @return 总是0
 */
int RtspAnalysManager::removeCamera(const std::string &index) {
    INFO("MYH DEBUG HERE");
    if (m_controllers.find(index) == m_controllers.end())return -1;
    auto controller = m_controllers[index];
    controller->stop();
@@ -124,6 +130,7 @@
    imgRedis->wait();
    delete imgRedis;
    m_imgRedisControllers.erase(index);
    INFO("MYH DEBUG HERE");
    return 0;
}
@@ -132,6 +139,7 @@
 * @return
 */
int RtspAnalysManager::removeAll() {
    INFO("MYH DEBUG HERE");
    for (auto controller: m_controllers) {
        controller.second->stop();
    }
@@ -140,6 +148,7 @@
        delete controller.second;
    }
    m_controllers.clear();
    INFO("MYH DEBUG HERE");
    for (auto controller: m_imgRedisControllers) {
@@ -153,6 +162,7 @@
    m_currentCount = 0;
    INFO("MYH DEBUG HERE");
    return 0;
}
@@ -191,11 +201,16 @@
//保存视频到RtspImageRedis的队列,由RtspCaptureElement调用
bool RtspAnalysManager::SaveImageToRedis(const std::string& camId,const std::string& imageName,const cv::Mat& img)
{
    INFO("MYH DEBUG HERE");
    auto item = m_imgRedisControllers.find(camId);
    if(item!=m_imgRedisControllers.end())
    {
        INFO("Save Succeed Cam: "<<camId<<" ImageKey: "<<imageName);
        item->second->SaveImage(imageName,img);
    } else {
        ERROR("Save Failed Cam: "<<camId<<" ImageKey: "<<imageName);
    }
    INFO("MYH DEBUG HERE");
    return true;
}
QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp
@@ -82,6 +82,7 @@
}
void RtspCaptureElement::SaveVideo(const std::string &strImageName)
{
    INFO("SaveVideo: "<<strImageName);
    std::string strTimeStamp= AppUtil::getTimeUSecString();
    std::string strPath=MakeDir(strTimeStamp);
    m_capture->SaveVideoByImageName(strPath,strImageName);
@@ -93,16 +94,19 @@
    if(m_gpuIndex>=0){
        setenv("CUDA_VISIBLE_DEVICES", std::to_string(m_gpuIndex).c_str(),0);
    }
    INFO("Open Video "<<m_path<<"  GPU_Index: "<<m_gpuIndex);
    m_capture->open(m_path.c_str(),m_gpuIndex>=0);
}
void RtspCaptureElement::threadInitial()
{
    INFO("MYH DEBUG");
    openVideo();
}
void RtspCaptureElement::threadClosing()
{
    INFO("MYH DEBUG");
    m_capture->close();
    delete m_capture;
    m_capture = nullptr;
QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp
@@ -23,18 +23,20 @@
        m_redisTool.setKeyImage(item.m_imgName,item.m_image);
        m_redisTool.listLpush(m_camId, item.m_imgName);
        m_imageQueue.pop();
        INFO("SaveImage To Redis Succeed CamID:"<<m_camId<<" ImageName:"<<item.m_imgName);
    }
}
//继承自父类,线程初始化的一些工作
void RtspImageRedisElement::threadInitial()
{
    INFO("MYH DEBUG HERE");
}
//继承自父类,线程结束的时候调用
void RtspImageRedisElement::threadClosing()
{
    INFO("MYH DEBUG HERE");
}
//保存图片到队列中,
@@ -44,7 +46,11 @@
    //保证队列中的图片不要过多
    if(m_imageQueue.size() < M_CAM_PIC_MAX_COUNT)
    {
        INFO("SaveImage Succeed ImgName:"<<imageName);
        m_imageQueue.push(NameImagePair_s_t(imageName,img));
    }
    else{
        ERR("SaveImage Failed ImgName:"<<imageName);
    }
    return true;
}