From c8d9556e2aa8e64f956a5b516c8c80dbbc195b5d Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期二, 05 三月 2019 09:25:30 +0800 Subject: [PATCH] 添加GB28181模块 --- QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 56 insertions(+), 3 deletions(-) diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp index dd25e47..a5ea3b0 100644 --- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp +++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp @@ -114,9 +114,9 @@ * @return -1 娣诲姞澶辫触,0 娣诲姞鎴愬姛 */ int RtspAnalysManager::addCamera(const std::string &index, const std::string &rtsp) { +#ifndef GB28181 auto lst = m_lDBTool->searchCamDevTableAll(); Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo(); - if (m_controllers.find(index) == m_controllers.end()) { INFO("MYH DEBUG HERE"); if (m_currentCount >= m_maxCount) { @@ -139,6 +139,38 @@ //DBG("removeCamera " << index); return addCamera(index, rtsp); } +#else + //#todo + auto lst = m_lDBTool->searchCamDevTableAll(); + Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo(); + + //#todo end + if (m_controllers_videoCapElem.find(index) == m_controllers_videoCapElem.end()) { + INFO("MYH DEBUG HERE"); + if (m_currentCount >= m_maxCount) { + ERR("addCamera faild, camera's num is full!") + return -1; + } + INFO("RTSP: " << rtsp << " INDEX:" << index); + m_imgRedisControllers[index] = new RtspImageRedisElement(index); + m_imgRedisControllers[index]->start(); + + //VideoCaptureElementWithRtp(std::string &chanPubID, int fps, int streamTransType, int gpuIdx = -1) + m_controllers_videoCapElem[index] = new BASICGB28181::VideoCaptureElementWithRtp(const_cast<string &>(index), + 25, 1, 0); + m_controllers_videoCapElem[index]->start(); + m_controllers_videoCapElem[index]->SetVideoMinMaxSeconds(lst_dev.n_cut_min_duration, + lst_dev.n_cut_max_duration); + m_currentCount++; + return 0; + + } else { + removeCamera(index); + INFO("removeCamera " << index); + //DBG("removeCamera " << index); + return addCamera(index, rtsp); + } +#endif } /** @@ -148,6 +180,7 @@ */ int RtspAnalysManager::removeCamera(const std::string &index) { INFO("MYH DEBUG HERE"); +#ifndef GB28181 if (m_controllers.find(index) == m_controllers.end())return -1; auto controller = m_controllers[index]; controller->stop(); @@ -155,6 +188,16 @@ delete controller; m_controllers.erase(index); m_currentCount--; + +#else + if (m_controllers_videoCapElem.find(index) == m_controllers_videoCapElem.end())return -1; + auto controller = m_controllers_videoCapElem[index]; + controller->stop(); + controller->wait(); + delete controller; + m_controllers_videoCapElem.erase(index); + m_currentCount--; +#endif auto imgRedis = m_imgRedisControllers[index]; imgRedis->stop(); @@ -171,6 +214,7 @@ */ int RtspAnalysManager::removeAll() { INFO("MYH DEBUG HERE"); +#ifndef GB28181 for (auto controller: m_controllers) { controller.second->stop(); } @@ -179,9 +223,18 @@ delete controller.second; } m_controllers.clear(); +#else + for (auto controller: m_controllers_videoCapElem) { + controller.second->stop(); + } + for (auto controller: m_controllers_videoCapElem) { + controller.second->wait(); + delete controller.second; + } + m_controllers_videoCapElem.clear(); +#endif INFO("MYH DEBUG HERE"); - for (auto controller: m_imgRedisControllers) { controller.second->stop(); } @@ -189,7 +242,7 @@ controller.second->wait(); delete controller.second; } - m_controllers.clear(); + m_imgRedisControllers.clear(); m_currentCount = 0; -- Gitblit v1.8.0