From 684b55231257011c11caacc5ae72b0f0977c6114 Mon Sep 17 00:00:00 2001
From: chenshijun <chenshijun@aiotlink.com>
Date: 星期五, 15 三月 2019 15:14:22 +0800
Subject: [PATCH] 整合代码
---
QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h | 15
QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h | 2
QiaoJiaSystem/DataManagerServer/vss/controller/VssChannelTblController.h | 6
QiaoJiaSystem/build/FaceSearchServer | 0
QiaoJiaSystem/DataManagerServer/vss/controller/VssDomainUnitTblController.h | 4
QiaoJiaSystem/build/runAll.sh | 143 +++++++-
QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h | 15
QiaoJiaSystem/build/TestCilent | 0
QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.h | 56 +++
QiaoJiaSystem/build/syncDBClient | 0
QiaoJiaSystem/DataManagerServer/vss/controller/CamDevController.h | 26 +
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp | 5
QiaoJiaSystem/build/DataWebServer | 0
QiaoJiaSystem/FaceSearchServer/main.cpp | 2
QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt | 2
QiaoJiaSystem/DataManagerServer/vss/controller/VssDevTblController.h | 19 +
QiaoJiaSystem/build/scpToSer.sh | 11
QiaoJiaSystem/FaceSearchServer/AlarmServer.hpp | 23 +
QiaoJiaSystem/build/YoloServer | 0
QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h | 15
QiaoJiaSystem/build/YoloDetectClientTest | 0
QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp | 84 +++--
QiaoJiaSystem/VideoToImage/CMakeLists.txt | 2
QiaoJiaSystem/build/FaceDetectServer | 0
QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h | 5
QiaoJiaSystem/DataManagerServer/vss/controller/VssUpperSvrTblController.h | 4
QiaoJiaSystem/build/FaceDetectResourcesTest | 0
/dev/null | 4
QiaoJiaSystem/build/FaceExtractServer | 0
QiaoJiaSystem/DataManagerServer/http_configserver.cpp | 125 ++++--
QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp | 2
QiaoJiaSystem/FaceSearchServer/CMakeLists.txt | 1
QiaoJiaSystem/build/VideoAnalysFromHC | 0
QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h | 1
QiaoJiaSystem/DataManagerServer/vss/dao/CamDevSqliteDao.h | 24 +
QiaoJiaSystem/DataManagerServer/HttpSrvRetRecieve.hpp | 6
QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h | 3
QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp | 300 +++++++++++-------
QiaoJiaSystem/StructureApp/FaceExtractElement.cpp | 5
39 files changed, 647 insertions(+), 263 deletions(-)
diff --git a/QiaoJiaSystem/DataManagerServer/HttpSrvRetRecieve.hpp b/QiaoJiaSystem/DataManagerServer/HttpSrvRetRecieve.hpp
index cbff042..da91454 100644
--- a/QiaoJiaSystem/DataManagerServer/HttpSrvRetRecieve.hpp
+++ b/QiaoJiaSystem/DataManagerServer/HttpSrvRetRecieve.hpp
@@ -43,7 +43,11 @@
std::string strInfo = request->path;
auto func = m_map_TASKFUNC[strInfo];
if(func != nullptr){
- std::string strRet = func(request->remote_endpoint_address(),request->remote_endpoint_port(),request->content.string(),response);
+ std::cout << "url "<< strInfo << std::endl;
+ std::string content = request->content.string();
+ std::cout << "content " << content << std::endl;
+ std::string strRet = func(request->remote_endpoint_address(),request->remote_endpoint_port(),content,response);
+ std::cout << "strRet " << strRet << std::endl;
if(strRet.size() > 0){
DBG("strRet.size() > 0");
response->write(strRet);
diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index f93e4e0..0750366 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -1003,11 +1003,24 @@
elem["str_latitude"] = iter->str_latitude.toStdString();
elem["str_ip"] = iter->str_ip.toStdString();
elem["n_port"] = iter->n_port;
+ elem["type"] = iter->type;
elem["str_username"] = iter->str_username.toStdString();
elem["str_password"] = iter->str_password.toStdString();
elem["str_brand"] = iter->str_brand.toStdString();
elem["str_reserved"] = iter->str_reserved.toStdString();
+ SdkRuleMap ruleMap = db_c.searchSdkRuleByCamId(iter->str_cam_dev_id);
+
+ int count = ruleMap.size();
+ elem["nSdkTypes"] = Json::arrayValue;
+
+ if (count > 0) {
+ for (auto rule:ruleMap) {
+ if (rule.second.nIsRun == 1) {
+ elem["nSdkTypes"].append(rule.second.nSdkType);
+ }
+ }
+ }
// Record_Cam_Sdk rec_sdk = db_c.searchCamSdkTableByCamId(iter->str_cam_dev_id);
// elem["str_sdks"] = rec_sdk.str_sdks.toStdString();
// elem["str_det_thr"] = rec_sdk.str_det_thr.toStdString();
@@ -1052,7 +1065,7 @@
if ((!ret) || (serialnumber[0] == 0)) {
return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
}
-
+ rec.type = 0;
rec.str_cam_dev_id = QString::fromLatin1((const char *) serialnumber);//鎽勫儚鏈篿d cam_mac
rec.str_name = QString::fromStdString(value["str_name"].asString());
rec.str_addr = QString::fromStdString(value["str_addr"].asString());
@@ -1272,26 +1285,35 @@
Json::Reader reader;
Json::Value value_reader;
-
+ std::string out;
if (!reader.parse(content, value_reader)) {
return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
}
+ Json::Value value;
+ if (value_reader.isMember("id")) {
+ if (value_reader["id"].isNull()) return "{\"ret_status\": \"id鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+ value["connect_status"] = "True";
+ std::string rtmp_url = appConfig.getStringProperty("srsAddr");
+ rtmp_url.append("cam").append(value_reader["id"].asCString());
+ value["video_url"] = rtmp_url;
+ out = value.toStyledString();
- //TODO
- //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
+ } else {
+ //TODO
+ //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
// std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":" + std::to_string(port) + "/h264/ch1/main/av_stream";
- bool ret = cam_connect_video_start(value_reader["str_ip"].asString(), value_reader["n_port"].asInt(), \
+ bool ret = cam_connect_video_start(value_reader["str_ip"].asString(), value_reader["n_port"].asInt(), \
value_reader["str_username"].asString(), value_reader["str_password"].asString(), \
value_reader["str_brand"].asString());
- if (!ret) {
- return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
- }
+ if (!ret) {
+ return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+ }
- std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
- Json::Value value;
- value["connect_status"] = "True";
- value["video_url"] = rtmp_url;
- std::string out = value.toStyledString();
+ std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
+ value["connect_status"] = "True";
+ value["video_url"] = rtmp_url;
+ out = value.toStyledString();
+ }
return out;
}
@@ -1934,6 +1956,7 @@
ret = erlangDbTool->createDatabase(Uuid, fieldValues);
} else if (SyncType == 0) {
TableName.insert(0, "lt_");
+ fieldValues["tableName"] = TableName;
//鏈湴搴�
ret = m_SqliteFaceEncap.createTable(TableName, fieldValues);
}
@@ -2408,26 +2431,27 @@
std::string BwType = value["BwType"].asString();
std::string StartTime = value["StartTime"].asString();
std::string EndTime = value["EndTime"].asString();
-
+ //#鏇存柊搴曞簱绠$悊琛�
+ FieldValues fieldValues;
+ fieldValues.insert(std::make_pair("uuid", Uuid));
+ fieldValues.insert(std::make_pair("tableName", TableName));
+// fieldValues.insert(std::make_pair("tableDesc", "ceshi2"));
+ fieldValues.insert(std::make_pair("tableType", TableType));
+ fieldValues.insert(std::make_pair("bwType", BwType));
+ fieldValues.insert(std::make_pair("startTime", StartTime));
+ fieldValues.insert(std::make_pair("endTime", EndTime));
+// fieldValues.insert(std::make_pair("create_by", "who"));
bool ret = false;
if (SyncType == 1) {
//鍚屾搴�
- ret = erlangDbTool->updateDatabase(Uuid, TableType, TableName, SyncType, BwType, StartTime, EndTime);
+ ret = erlangDbTool->updateDatabase("sys_o_tables", fieldValues);
} else if (SyncType == 0) {
//鏈湴搴�
- //#鏇存柊搴曞簱绠$悊琛�
- FieldValues fieldValues;
- fieldValues.insert(std::make_pair("uuid", Uuid));
if (TableName.find("lt_") != 0) {
TableName.insert(0, "lt_");
}
- fieldValues.insert(std::make_pair("tableName", TableName));
-// fieldValues.insert(std::make_pair("tableDesc", "ceshi2"));
- fieldValues.insert(std::make_pair("tableType", TableType));
- fieldValues.insert(std::make_pair("bwType", BwType));
- fieldValues.insert(std::make_pair("startTime", StartTime));
- fieldValues.insert(std::make_pair("endTime", EndTime));
-// fieldValues.insert(std::make_pair("create_by", "who"));
+ fieldValues["tableName"] = TableName;
+
ret = m_SqliteFaceEncap.updateTable("sys_o_tables", fieldValues);
}
@@ -3318,17 +3342,22 @@
Json::Value value;
if (reader.parse(content, value)) {
+ std::string str_imgName = "";
- std::string ip = value["str_ip"].asString();
+ if (value.isMember("id")) {
+ if (value["id"].isNull()) return "{\"ret_status\": \"id鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+ str_imgName.append("./").append(value["id"].asString()).append(".jpg");
+ } else {
+ std::string ip = value["str_ip"].asString();
// int port= value["n_port"].asInt();
- int port = 554;
- std::string username = value["str_username"].asString();
- std::string pass = value["str_password"].asString();
- std::string brand = value["str_brand"].asString();
- std::string rtsp_url = rtspAddrBuild(ip, port, username, pass, brand);
- if (rtsp_url.empty()) {
- return "{\"ret_status\":\"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
- }
+ int port = 554;
+ std::string username = value["str_username"].asString();
+ std::string pass = value["str_password"].asString();
+ std::string brand = value["str_brand"].asString();
+ std::string rtsp_url = rtspAddrBuild(ip, port, username, pass, brand);
+ if (rtsp_url.empty()) {
+ return "{\"ret_status\":\"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+ }
// unsigned char serialnumber[SERIALNO_LEN] = {0};
// int ret = getDevSerialNumber(ip.c_str(), port,username.c_str(),pass.c_str(),brand.c_str(),serialnumber);
@@ -3340,20 +3369,22 @@
// std::string str_cam_dev_id = std::string((char *) serialnumber);//鎽勫儚鏈篿d cam_mac
- std::string str_imgName = appConfig.getStringProperty("cutPath");
- if (str_imgName.back() != '/') {
- str_imgName.push_back('/');
- }
- str_imgName += ip;
- str_imgName += "-";
- str_imgName += "snapshot.jpg";
- //admin:a1234567@192.168.1.201:554/h264/ch1/main/av_stream -r 1/25 -f image2 -s 1920*1080 /home/basic/work_src/a.jpg
- std::string cmd(
- "ffmpeg -i " + rtsp_url + " -vf select='eq(pict_type\\,I)',setpts='N/(25*TB)' -f image2 -s 1920*1080 -y " +
- str_imgName);
+ str_imgName = appConfig.getStringProperty("cutPath");
+ if (str_imgName.back() != '/') {
+ str_imgName.push_back('/');
+ }
+ str_imgName += ip;
+ str_imgName += "-";
+ str_imgName += "snapshot.jpg";
+ //admin:a1234567@192.168.1.201:554/h264/ch1/main/av_stream -r 1/25 -f image2 -s 1920*1080 /home/basic/work_src/a.jpg
+ std::string cmd(
+ "ffmpeg -i " + rtsp_url +
+ " -vf select='eq(pict_type\\,I)',setpts='N/(25*TB)' -f image2 -s 1920*1080 -y " +
+ str_imgName);
// std::string cmd("ffmpeg -i " + rtsp_url + " -r 1/25 -f image2 -s 1920*1080 -y " + str_imgName);
- DBG(cmd);
- system(cmd.c_str());
+ DBG(cmd);
+ system(cmd.c_str());
+ }
cv::Mat img = cv::imread(str_imgName);
diff --git a/QiaoJiaSystem/DataManagerServer/vss/controller/CamDevController.h b/QiaoJiaSystem/DataManagerServer/vss/controller/CamDevController.h
index a8675c4..22aa644 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/controller/CamDevController.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/controller/CamDevController.h
@@ -18,15 +18,17 @@
private:
/** 鎽勫儚澶磋澶囨瀯閫犲嚱鏁� */
CamDevController() {}
+
public:
/** 鎽勫儚澶磋澶囧崟渚嬫ā寮� */
- static CamDevController* instance() {
+ static CamDevController *instance() {
static CamDevController instance;
return &instance;
}
+
public:
/** 娉ㄥ唽{label}http鏈嶅姟 */
- void registerHttpServices(HttpSrvRetRecieve& _HttpSrvRetRecieve) {
+ void registerHttpServices(HttpSrvRetRecieve &_HttpSrvRetRecieve) {
_HttpSrvRetRecieve.setInfo("^/addCamDev$", "POST",
std::bind(&CamDevController::addCamDev, this,
@@ -54,6 +56,7 @@
std::placeholders::_3, std::placeholders::_4));
}
+
public:
/** 娣诲姞鎽勫儚澶磋澶� */
std::string addCamDev(std::string ip, unsigned int port, std::string content, PResponse &response) {
@@ -68,11 +71,17 @@
Json::Value idJsonValue = requestJsonValue[CamDev_id];
if (idJsonValue.type() != Json::ValueType::nullValue) {
camDevBuilder.addid(std::stoi((idJsonValue.asString())));
+ } else {
+ ERR("CamDev_id is null " << " is null");
+// return responseJsonValue.toStyledString();
}
Json::Value cam_dev_idJsonValue = requestJsonValue[CamDev_cam_dev_id];
if (cam_dev_idJsonValue.type() != Json::ValueType::nullValue) {
camDevBuilder.addcam_dev_id((cam_dev_idJsonValue.asString()));
+ } else {
+ ERR(CamDev_cam_dev_id << " is null");
+ return responseJsonValue.toStyledString();
}
Json::Value nameJsonValue = requestJsonValue[CamDev_name];
@@ -128,6 +137,8 @@
Json::Value typeJsonValue = requestJsonValue[CamDev_type];
if (typeJsonValue.type() != Json::ValueType::nullValue) {
camDevBuilder.addtype((typeJsonValue.asString()));
+ } else {
+ camDevBuilder.addtype("1");
}
auto keyValuesToAdd = camDevBuilder.buildCamDevMap();
if (keyValuesToAdd.size() > 0) {
@@ -230,7 +241,8 @@
camDevBuilder.addtype((typeJsonValue.asString()));
}
if (idJsonValue.type() != Json::ValueType::nullValue) {
- responseJsonValue = CamDevSqliteDao::instance()->updateCamDev(camDevBuilder.buildCamDevMap(), "id", idJsonValue.asString());
+ responseJsonValue = CamDevSqliteDao::instance()->updateCamDev(camDevBuilder.buildCamDevMap(), "id",
+ idJsonValue.asString());
}
}
return responseJsonValue.toStyledString();
@@ -309,6 +321,8 @@
Json::Value typeJsonValue = requestJsonValue[CamDev_type];
if (typeJsonValue.type() != Json::ValueType::nullValue) {
camDevBuilder.addtype((typeJsonValue.asString()));
+ } else {
+ camDevBuilder.addtype("1");
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
@@ -390,6 +404,8 @@
Json::Value typeJsonValue = requestJsonValue[CamDev_type];
if (typeJsonValue.type() != Json::ValueType::nullValue) {
camDevBuilder.addtype((typeJsonValue.asString()));
+ } else {
+ camDevBuilder.addtype("1");
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
@@ -399,10 +415,6 @@
return responseJsonValue.toStyledString();
}
};
-
-
-
-
#endif //CAMDEV_CONTROLLER_H
diff --git a/QiaoJiaSystem/DataManagerServer/vss/controller/VssChannelTblController.h b/QiaoJiaSystem/DataManagerServer/vss/controller/VssChannelTblController.h
index 57c0021..bbaa231 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/controller/VssChannelTblController.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/controller/VssChannelTblController.h
@@ -473,7 +473,7 @@
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
- responseJsonValue["data"] = VssChannelTblDao::instance()->findJsonArray(string("select * from ") + VSSChannelTbl_TABLE_NAME + " where 1 = 1 limit 1");
+ responseJsonValue["data"] = VssChannelTblDao::instance()->findJsonArray(string("select * from ") + VSSChannelTbl_TABLE_NAME + " where 1 = 1 limit 1", vssChannelTblBuilder.buildVssChannelTblMap());
}
return responseJsonValue.toStyledString();
}
@@ -604,7 +604,9 @@
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
- responseJsonValue["data"] = VssChannelTblDao::instance()->findJsonArray(string("select * from ") + VSSChannelTbl_TABLE_NAME + " where 1 = 1");
+ responseJsonValue["data"] = VssChannelTblDao::instance()->findJsonArray(string("select * from ") +
+ VSSChannelTbl_TABLE_NAME + " where 1 = 1"
+ , vssChannelTblBuilder.buildVssChannelTblMap());
}
return responseJsonValue.toStyledString();
diff --git a/QiaoJiaSystem/DataManagerServer/vss/controller/VssDevTblController.h b/QiaoJiaSystem/DataManagerServer/vss/controller/VssDevTblController.h
index c8d7c94..586f0a1 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/controller/VssDevTblController.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/controller/VssDevTblController.h
@@ -293,7 +293,7 @@
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
- responseJsonValue["data"] = VssDevTblDao::instance()->findJsonArray(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1 = 1 limit 1");
+ responseJsonValue["data"] = VssDevTblDao::instance()->findJsonArray(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1 = 1 limit 1", vssDevTblBuilder.buildVssDevTblMap());
}
return responseJsonValue.toStyledString();
}
@@ -364,7 +364,22 @@
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
- responseJsonValue["data"] = VssDevTblDao::instance()->findJsonArray(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1 = 1");
+ auto devDataList = VssDevTblDao::instance()->findJsonArray(string("select * from ") + VSSDevTbl_TABLE_NAME
+ + " where 1 = 1", vssDevTblBuilder.buildVssDevTblMap());
+ for (int i = 0; i < devDataList.size(); i++) {
+ auto& devData = devDataList[i];
+ auto DevPubID = devData[VssDevTbl_DevPubID];
+ std::map<std::string, std::string> whereKeyValues;
+ whereKeyValues[CamDev_cam_dev_id] = DevPubID.asString();
+ auto camDevDataList = CamDevSqliteDao::instance()->findCamDevList(whereKeyValues)["data"];
+ devData["RemarkName"] = "";
+ if (camDevDataList.size() > 0) {
+ auto camDevData = camDevDataList[0];
+ devData["RemarkName"] = camDevData[CamDev_name].asString();
+ }
+ }
+ responseJsonValue["data"] = devDataList;
+
}
return responseJsonValue.toStyledString();
diff --git a/QiaoJiaSystem/DataManagerServer/vss/controller/VssDomainUnitTblController.h b/QiaoJiaSystem/DataManagerServer/vss/controller/VssDomainUnitTblController.h
index c9674ab..a136776 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/controller/VssDomainUnitTblController.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/controller/VssDomainUnitTblController.h
@@ -248,7 +248,7 @@
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
- responseJsonValue["data"] = VssDomainUnitTblDao::instance()->findJsonArray(string("select * from ") + VSSDomainUnitTbl_TABLE_NAME + " where 1 = 1 limit 1");
+ responseJsonValue["data"] = VssDomainUnitTblDao::instance()->findJsonArray(string("select * from ") + VSSDomainUnitTbl_TABLE_NAME + " where 1 = 1 limit 1", vssDomainUnitTblBuilder.buildVssDomainUnitTblMap());
}
return responseJsonValue.toStyledString();
}
@@ -304,7 +304,7 @@
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
- responseJsonValue["data"] = VssDomainUnitTblDao::instance()->findJsonArray(string("select * from ") + VSSDomainUnitTbl_TABLE_NAME + " where 1 = 1");
+ responseJsonValue["data"] = VssDomainUnitTblDao::instance()->findJsonArray(string("select * from ") + VSSDomainUnitTbl_TABLE_NAME + " where 1 = 1", vssDomainUnitTblBuilder.buildVssDomainUnitTblMap());
}
return responseJsonValue.toStyledString();
diff --git a/QiaoJiaSystem/DataManagerServer/vss/controller/VssUpperSvrTblController.h b/QiaoJiaSystem/DataManagerServer/vss/controller/VssUpperSvrTblController.h
index 156c4e7..25e2a79 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/controller/VssUpperSvrTblController.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/controller/VssUpperSvrTblController.h
@@ -368,7 +368,7 @@
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
- responseJsonValue["data"] = VssUpperSvrTblDao::instance()->findJsonArray(string("select * from ") + VSSUpperSvrTbl_TABLE_NAME + " where 1 = 1 limit 1");
+ responseJsonValue["data"] = VssUpperSvrTblDao::instance()->findJsonArray(string("select * from ") + VSSUpperSvrTbl_TABLE_NAME + " where 1 = 1 limit 1", vssUpperSvrTblBuilder.buildVssUpperSvrTblMap());
}
return responseJsonValue.toStyledString();
}
@@ -464,7 +464,7 @@
}
responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�";
responseJsonValue["success"] = "true";
- responseJsonValue["data"] = VssUpperSvrTblDao::instance()->findJsonArray(string("select * from ") + VSSUpperSvrTbl_TABLE_NAME + " where 1 = 1");
+ responseJsonValue["data"] = VssUpperSvrTblDao::instance()->findJsonArray(string("select * from ") + VSSUpperSvrTbl_TABLE_NAME + " where 1 = 1", vssUpperSvrTblBuilder.buildVssUpperSvrTblMap());
}
return responseJsonValue.toStyledString();
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
index aaf3865..bfffec3 100644
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
@@ -77,7 +77,8 @@
return rowDataList;
}
- static Json::Value findJsonArray(string sql) {
+ static Json::Value findJsonArray(string sql, std::map<std::string, std::string>& whereColumns) {
+ sql = sql + getWhereColumnNameValuePair(whereColumns);
initConnection();
mysqlpp::Query query = conn->query(sql);
Json::Value rowList;
@@ -97,6 +98,7 @@
rowList.append(row);
}
} else {
+ cout << "error " <<query.error() << endl;
cout << "query failed" << endl;
}
return rowList;
@@ -130,6 +132,7 @@
return updateSql;
}
static void doConnect() {
+ cout << "db_host=" << appConfig.getStringProperty("db_host").c_str() << endl;
if (conn->connect(
appConfig.getStringProperty("database").c_str(),
appConfig.getStringProperty("db_host").c_str(),
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.h
index 88ae76a..e30ed59 100644
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.h
@@ -18,6 +18,62 @@
BaseSqliteDao::m_pModel = lDBTool->get_m_pModel();
BaseSqliteDao::m_mutexVisit = lDBTool->get_m_mutexVisit();
}
+ static string getColumnNames(std::map<std::string, std::string>& columns) {
+ string columnNames;
+ auto size = columns.size();
+ int i = 0;
+ for (auto column : columns) {
+ columnNames.append(column.first);
+ if (i != size - 1) {
+ columnNames.append(",");
+ }
+ i++;
+ }
+ return columnNames;
+ }
+ static string getColumnValues(std::map<std::string, std::string>& columns) {
+ string columnValues;
+ auto size = columns.size();
+ int i = 0;
+ for (auto column : columns) {
+ columnValues.append("'"+column.second+"'");
+ if (i != columns.size() - 1) {
+ columnValues.append(",");
+ }
+ i++;
+ }
+ return columnValues;
+ }
+ static string getColumnNameValuePair(std::map<std::string, std::string>& columns) {
+ string columnNameValuePair;
+ auto size = columns.size();
+ int i = 0;
+ for (auto column : columns) {
+ columnNameValuePair.append(column.first);
+ columnNameValuePair.append("=");
+ columnNameValuePair.append("'"+column.second+"'");
+
+ if (i != size - 1) {
+ columnNameValuePair.append(",");
+ }
+ i++;
+ }
+ return columnNameValuePair;
+ }
+ static string getWhereColumnNameValuePair(std::map<std::string, std::string>& columns) {
+ string columnNameValuePair;
+ auto size = columns.size();
+ int i = 0;
+ for (auto column : columns) {
+ columnNameValuePair.append(" and ");
+ columnNameValuePair.append(column.first);
+ columnNameValuePair.append("=");
+ columnNameValuePair.append("'"+column.second+"' ");
+
+ i++;
+ }
+ return columnNameValuePair;
+ }
};
LDBTool* BaseSqliteDao::lDBTool = nullptr;
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/CamDevSqliteDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/CamDevSqliteDao.h
index d264b87..93aba70 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/CamDevSqliteDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/CamDevSqliteDao.h
@@ -4,6 +4,7 @@
#include "../model/CamDev.h"
#include "BaseSqliteDao.h"
+#include <qsqlfield.h>
#define CamDev_TABLE_NAME "cam_dev"
@@ -26,6 +27,14 @@
Json::Value responseJsonValue;
responseJsonValue["message"] = "娣诲姞澶辫触锛�";
responseJsonValue["success"] = "false";
+
+ std::map<std::string, std::string> whereKeyValues;
+ whereKeyValues["cam_dev_id"] = keyValuesToAdd["cam_dev_id"];
+ if (this->findCamDevList(whereKeyValues)["data"].size() > 0) {
+ responseJsonValue["message"] = "cam_dev_id exist锛�";
+ return responseJsonValue;
+ }
+
QMutexLocker mutexLocker(m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, *m_db);
@@ -71,8 +80,9 @@
QMutexLocker mutexLocker(m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, *m_db);
pModel.setTable(CamDev_TABLE_NAME);
- for (auto whereKeyValue : whereKeyValues ) {
- pModel.setFilter(QObject::tr((string(whereKeyValue.first)+" = '%1'").c_str()).arg(QString::fromUtf8(whereKeyValue.second.c_str())));
+ if (whereKeyValues.size() > 0) {
+ auto filter = QObject::tr((string(" 1=1 ")+getWhereColumnNameValuePair(whereKeyValues)).c_str());
+ pModel.setFilter(filter);
}
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
@@ -110,8 +120,9 @@
QMutexLocker mutexLocker(m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, *m_db);
pModel.setTable(CamDev_TABLE_NAME);
- for (auto whereKeyValue : whereKeyValues) {
- pModel.setFilter(QObject::tr((whereKeyValue.first + " = '%1'").c_str()).arg(QString::fromStdString(whereKeyValue.second)));
+ if (whereKeyValues.size() > 0) {
+ auto filter = QObject::tr((string(" 1=1 ")+getWhereColumnNameValuePair(whereKeyValues)).c_str());
+ pModel.setFilter(filter);
}
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
@@ -172,8 +183,9 @@
std::list<Record_Cut_Video_info> lst;
QSqlTableModel pModel(NULL, *m_db);
pModel.setTable(CamDev_TABLE_NAME);;
- for (auto whereKeyValue : whereKeyValues ) {
- pModel.setFilter(QObject::tr((string(whereKeyValue.first)+" = '%1'").c_str()).arg(QString::fromUtf8(whereKeyValue.second.c_str())));
+ if (whereKeyValues.size() > 0) {
+ auto filter = QObject::tr((string(" 1=1 ")+getWhereColumnNameValuePair(whereKeyValues)).c_str());
+ pModel.setFilter(filter);
}
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
index 87b5963..ad688f8 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
@@ -3,7 +3,9 @@
#define VSSDEVTBL_MANAGER_H
#include "../model/VssDevTbl.h"
+#include "VssChannelTblDao.h"
#include "BaseDao.h"
+#include "CamDevSqliteDao.h"
#define VSSDevTbl_TABLE_NAME "VSSDevTbl"
@@ -37,6 +39,19 @@
/** 鍒犻櫎鍒涘缓涓�绾ц澶囪〃 whereColumnNameValues 鍒楀悕鍜屽垪鍊煎鏉′欢 */
bool deleteVssDevTbl(std::map<std::string, std::string>& whereKeyValues) {
QMutexLocker mutexLocker(&m_mutexVisit);
+ vector<map<string, string>> devRowDataList = findList(string("select * from ")
+ + VSSDevTbl_TABLE_NAME + " where 1=1 "
+ + getWhereColumnNameValuePair(whereKeyValues));
+ if (devRowDataList.size() > 0) {
+ auto DevPubID = devRowDataList.at(0)[VssDevTbl_DevPubID];
+ vector<map<string, string>> channelRowDataList = findList(string("select * from ")
+ + VSSChannelTbl_TABLE_NAME + " where 1=1 AND DevPubID='"+DevPubID+"'");
+ for (auto channelRowData : channelRowDataList) {
+ auto ChanPubID = channelRowData[VssChannelTbl_ChanPubID];
+ CamDevSqliteDao::instance()->deleteByColumn(CamDev_cam_dev_id, ChanPubID);
+ }
+ CamDevSqliteDao::instance()->deleteByColumn(CamDev_cam_dev_id, DevPubID);
+ }
return del(VSSDevTbl_TABLE_NAME, whereKeyValues);
}
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h
index 4096fa0..990265b 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h
@@ -73,8 +73,9 @@
QMutexLocker mutexLocker(m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, *m_db);
pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME);
- for (auto whereKeyValue : whereKeyValues ) {
- pModel.setFilter(QObject::tr((string(whereKeyValue.first)+" = '%1'").c_str()).arg(QString::fromUtf8(whereKeyValue.second.c_str())));
+ if (whereKeyValues.size() > 0) {
+ auto filter = QObject::tr((string(" 1=1 ")+getWhereColumnNameValuePair(whereKeyValues)).c_str());
+ pModel.setFilter(filter);
}
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
@@ -112,8 +113,9 @@
QMutexLocker mutexLocker(m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, *m_db);
pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME);
- for (auto whereKeyValue : whereKeyValues) {
- pModel.setFilter(QObject::tr((whereKeyValue.first + " = '%1'").c_str()).arg(QString::fromStdString(whereKeyValue.second)));
+ if (whereKeyValues.size() > 0) {
+ auto filter = QObject::tr((string(" 1=1 ")+getWhereColumnNameValuePair(whereKeyValues)).c_str());
+ pModel.setFilter(filter);
}
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
@@ -174,8 +176,9 @@
std::list<Record_Cut_Video_info> lst;
QSqlTableModel pModel(NULL, *m_db);
pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME);;
- for (auto whereKeyValue : whereKeyValues ) {
- pModel.setFilter(QObject::tr((string(whereKeyValue.first)+" = '%1'").c_str()).arg(QString::fromUtf8(whereKeyValue.second.c_str())));
+ if (whereKeyValues.size() > 0) {
+ auto filter = QObject::tr((string(" 1=1 ")+getWhereColumnNameValuePair(whereKeyValues)).c_str());
+ pModel.setFilter(filter);
}
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
diff --git a/QiaoJiaSystem/FaceSearchServer/AlarmServer.hpp b/QiaoJiaSystem/FaceSearchServer/AlarmServer.hpp
index 1fe1b9c..811f78a 100644
--- a/QiaoJiaSystem/FaceSearchServer/AlarmServer.hpp
+++ b/QiaoJiaSystem/FaceSearchServer/AlarmServer.hpp
@@ -1,4 +1,5 @@
//
+// 瀵规瘮鎶ヨ鐨勫熀绫�
// Created by ps on 2/26/18.
//
@@ -13,6 +14,9 @@
#include <basic/util/thread/MultiThread.h>
#include <basic/util/BASE64/Base64.h>
+/***
+ * 闇�瑕佸姣旂殑涓�鏉¤褰�
+ */
struct AlarmData {
int num;
std::string tableName;
@@ -20,6 +24,9 @@
float threshold;
};
+/***
+ * 鏁版嵁搴撲腑鏌ヨ鐨勪竴鏉¤褰�
+ */
struct FeatureData {
long face_id;
std::string uuid;
@@ -29,6 +36,11 @@
std::string idcard;
};
+/***
+ * 瀛楃涓叉牴鎹鍙峰垎鍓插苟杩斿洖鏁版嵁
+ * @param str_list
+ * @return
+ */
static std::vector<std::string> AlarmServerPropertyAnalyseByComma(std::string str_list) {
std::vector<std::string> result;
char *property_list = const_cast<char *>(str_list.c_str());
@@ -60,6 +72,9 @@
CPU_Number = 1
};
+/***
+ * 鎶ヨ鏈嶅姟鍩虹被
+ */
class AlarmServer {
public:
@@ -77,11 +92,19 @@
dataRemoveBuffer.clear();
}
+ /***
+ * 鍒濆鍖栨椂浣跨敤绾跨▼鍔犺浇鏁版嵁搴�
+ * @param str_config
+ */
void initDB(std::string str_config) {
std::thread thd(loadDBCahce, this, str_config);
thd.detach();
}
+ /***
+ * 绉婚櫎鏁版嵁
+ * @param key
+ */
void removeData(std::string key) {
std::lock_guard<std::mutex> guard(dataRemoveBufferMtx);
dataRemoveBuffer.insert(key);
diff --git a/QiaoJiaSystem/FaceSearchServer/CMakeLists.txt b/QiaoJiaSystem/FaceSearchServer/CMakeLists.txt
index 26f313c..5860601 100644
--- a/QiaoJiaSystem/FaceSearchServer/CMakeLists.txt
+++ b/QiaoJiaSystem/FaceSearchServer/CMakeLists.txt
@@ -89,7 +89,6 @@
add_executable(${PROJECT_NAME}
main.cpp
rpc/FaceSearchServer.cpp
- FaceSearchServerResources.cpp
FaceFeatureSearchServerI.cpp
FaceFeatureSearchServerI.h
CasiaFaceWrapper/CasiaFaceWrapperN.cpp
diff --git a/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h b/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h
index 7940970..da4bb96 100644
--- a/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h
+++ b/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h
@@ -54,11 +54,10 @@
static bool getRet(std::string startTime, std::string endTime) {
auto crrentTime = AppUtil::getTimeSecString();
- if (crrentTime.compare(startTime) > 0 && crrentTime.compare(endTime) < 0) {
+ if (crrentTime.compare(startTime) > 0 && (crrentTime.compare(endTime) < 0 || endTime == "0000-00-00 00:00:00")) {
return true;
}
return false;
-
}
#endif //COMPARETEST_FACEDBCOMPARESERVER_H
diff --git a/QiaoJiaSystem/FaceSearchServer/FaceSearchServerResources.cpp b/QiaoJiaSystem/FaceSearchServer/FaceSearchServerResources.cpp
deleted file mode 100644
index b82cdeb..0000000
--- a/QiaoJiaSystem/FaceSearchServer/FaceSearchServerResources.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-//
-// Created by pans on 4/27/18.
-//
-
diff --git a/QiaoJiaSystem/FaceSearchServer/main.cpp b/QiaoJiaSystem/FaceSearchServer/main.cpp
index 054bd16..06d46ae 100644
--- a/QiaoJiaSystem/FaceSearchServer/main.cpp
+++ b/QiaoJiaSystem/FaceSearchServer/main.cpp
@@ -14,7 +14,7 @@
using namespace std;
int main(int argc, char **argv) {
- std::cout<<__DATE__<<" "<<__TIME__<<std::endl;
+ std::cout << __DATE__ << " " << __TIME__ << std::endl;
SAVE_APP_ARGS;
ENABLEGLOG(GET_STR_CONFIG("logPath").c_str());
auto ich = Ice::initialize(argc, argv);
diff --git a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp
index c353675..e17ee5b 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp
+++ b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp
@@ -143,135 +143,198 @@
*/
void BASICGB28181::FFmpegDecoderJPG::BareFlowDecoderThd(FFmpegDecoderJPG *p_this) {
DBG(p_this->m_camIdx << " BareFlowDecoderThd ok ... gpuIdx is " << p_this->m_gpuIdx);
- p_this->m_running = true;
- av_register_all();
- avformat_network_init();
- AVFormatContext *ic = avformat_alloc_context();
+ while (!p_this->m_running) {
- unsigned char *iobuffer = (unsigned char *) av_malloc(p_this->m_buf_size);
- AVIOContext *avio = avio_alloc_context(iobuffer, p_this->m_buf_size, 0, p_this, p_this->read_data, NULL, NULL);
- ic->pb = avio;
+ p_this->m_running = true;
+// av_register_all();
+// avformat_network_init();
+ p_this->ic = avformat_alloc_context();
- int err = av_probe_input_buffer(ic->pb, &ic->iformat, nullptr, nullptr, 0, p_this->m_buf_size);
- int err1 = avformat_open_input(&ic, "", NULL, NULL);
- int err2 = avformat_find_stream_info(ic, nullptr);
- int vi = -1;
- for (int i = 0; i < ic->nb_streams; ++i) {
- if (ic->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
- vi = i;
- break;
+ p_this->iobuffer = (unsigned char *) av_malloc(p_this->m_buf_size);
+ if (!p_this->iobuffer) {
+ ERR("av_malloc: err======" << p_this->m_camIdx);
+ p_this->m_running = false;
+ continue;
}
- }
- AVStream *stream = ic->streams[vi];
- p_this->video_st = stream;
- AVCodecContext *ctx = avcodec_alloc_context3(nullptr);
- int err3 = avcodec_parameters_to_context(ctx, stream->codecpar);
+ p_this->avio = avio_alloc_context(p_this->iobuffer, p_this->m_buf_size, 0, p_this, p_this->read_data, NULL,
+ NULL);
+ if (!p_this->avio) {
+ ERR("avio_alloc_context: err======" << p_this->m_camIdx);
+ p_this->m_running = false;
+ continue;
+ }
+ p_this->ic->pb = p_this->avio;
- AVCodec *codec = avcodec_find_decoder(ctx->codec_id);
- //鏄惁鍚敤GPU
- if (p_this->m_gpuIdx >= 0) {
- if (codec != NULL) {
- char cuvidName[40] = {0};
- sprintf(cuvidName, "%s_cuvid", codec->name);
- if (!strcmp(codec->name, "h264") || !strcmp(codec->name, "h265") || !strcmp(codec->name, "hevc")) {
- AVCodec *codec_cuvid = avcodec_find_decoder_by_name(cuvidName);
- if (codec_cuvid != NULL) {
- codec = codec_cuvid;
- } else {
+ int err = av_probe_input_buffer(p_this->ic->pb, &p_this->ic->iformat, nullptr, nullptr, 0, p_this->m_buf_size);
+ if (err) {
+ ERR("av_probe_input_buffer: err======" << err << p_this->m_camIdx);
+ p_this->m_running = false;
+ continue;
+ }
+ err = avformat_open_input(&p_this->ic, "", NULL, NULL);
+ if (err) {
+ ERR("avformat_open_input: err======" << err << p_this->m_camIdx);
+ p_this->m_running = false;
+ continue;
+ }
+// int err2 = avformat_find_stream_info(ic, nullptr);
+ err = avformat_find_stream_info(p_this->ic, NULL);
+ if (err) {
+ ERR("avformat_find_stream_info: err======" << err << p_this->m_camIdx);
+// avformat_close_input(&p_this->ic);
+// DBG("avformat_close_input(&p_this->ic);");
+ p_this->m_running = false;
+ continue;
+ }
+ int vi = -1;
+ for (int i = 0; i < p_this->ic->nb_streams; ++i) {
+ if (p_this->ic->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
+ vi = i;
+ break;
+ }
+ }
+ p_this->stream = p_this->ic->streams[vi];
+ p_this->video_st = p_this->stream;
+ p_this->ctx = avcodec_alloc_context3(nullptr);
+ err = avcodec_parameters_to_context(p_this->ctx, p_this->stream->codecpar);
+ if (err) {
+ ERR("avcodec_parameters_to_context: err======" << err << p_this->m_camIdx);
+// avformat_close_input(&p_this->ic);
+// DBG("avformat_close_input(&p_this->ic);");
+ p_this->m_running = false;
+ continue;
+ }
+
+ p_this->codec = avcodec_find_decoder(p_this->ctx->codec_id);
+ //鏄惁鍚敤GPU
+ if (p_this->m_gpuIdx >= 0) {
+ if (p_this->codec != NULL) {
+ char cuvidName[40] = {0};
+ sprintf(cuvidName, "%s_cuvid", p_this->codec->name);
+ if (!strcmp(p_this->codec->name, "h264") || !strcmp(p_this->codec->name, "h265") ||
+ !strcmp(p_this->codec->name, "hevc")) {
+ p_this->codec_cuvid = avcodec_find_decoder_by_name(cuvidName);
+ if (p_this->codec_cuvid != NULL) {
+ p_this->codec = p_this->codec_cuvid;
+ } else {
// return false;
- ERR("codec_cuvid is NULL");
+ ERR("codec_cuvid is NULL" << p_this->m_camIdx);
+ }
}
}
}
- }
- int err4 = avcodec_open2(ctx, codec, nullptr);
-
- AVPacket pkt;
- av_init_packet(&pkt);
-
- AVFrame *frame = av_frame_alloc();
- unsigned int usleepTime = (1000 / p_this->m_fps) - 12;
- usleepTime *= 1000;
- DBG(" before while <<usleepTime is " << usleepTime);
- while (p_this->m_running) {
-#ifdef TestCode
- ClockTimer Test("while time");
-#endif
- int err5 = av_read_frame(ic, &pkt);
- //# todo save package
- p_this->frame_number++;
-
- int err6 = avcodec_send_packet(ctx, &pkt);
-// av_packet_unref(&pkt);
- int err7 = avcodec_receive_frame(ctx, frame);
- if ((err7 == AVERROR(EAGAIN)) || (err5 < 0) || (err6 < 0)) {
- ERR(" error << err7:" << err7 << " err5: " << err5 << " err6: " << err6);
- usleep(40000);
+ err = avcodec_open2(p_this->ctx, p_this->codec, nullptr);
+ if (err) {
+ ERR("avcodec_open2: err======" << err << p_this->m_camIdx);
+// avformat_close_input(&p_this->ic);
+// DBG("avformat_close_input(&p_this->ic);");
+// avcodec_free_context(&p_this->ctx);
+// DBG("avcodec_free_context(&p_this->ctx);");
+ p_this->m_running = false;
continue;
}
- //DBG("GotPicture "<<m_camId<<":"<<frame_number);
- //鏀惧湪姝ゅ鏄洜涓轰箣鍓嶆斁鍦ㄥ墠闈�,鏀跺埌鐨勫抚涓嶅畬鎴�
- p_this->SaveToPacketVector(pkt);
- p_this->CheckSave();
+
+ av_init_packet(&p_this->pkt);
+
+ p_this->frame = av_frame_alloc();
+ unsigned int usleepTime = (1000 / p_this->m_fps) - 12;
+ usleepTime *= 1000;
+ DBG("===open ok, camid: " << p_this->m_camIdx);
+ while (p_this->m_running) {
+#ifdef TestCode
+ ClockTimer Test("while time");
+#endif
+ av_packet_unref(&p_this->pkt);
+ p_this->pkt.data = NULL;
+ p_this->pkt.size = 0;
+
+ int err5 = av_read_frame(p_this->ic, &p_this->pkt);
+ //# todo save package
+ p_this->frame_number++;
+
+ int err6 = avcodec_send_packet(p_this->ctx, &p_this->pkt);
+ int err7 = avcodec_receive_frame(p_this->ctx, p_this->frame);
+ if ((err7 == AVERROR(EAGAIN)) || (err5 < 0) || (err6 < 0)) {
+ ERR(" err======: err7" << err7 << " err5: " << err5 << " err6: " << err6 << p_this->m_camIdx);
+ usleep(40000);
+ continue;
+ }
+ //DBG("GotPicture "<<m_camId<<":"<<frame_number);
+ //鏀惧湪姝ゅ鏄洜涓轰箣鍓嶆斁鍦ㄥ墠闈�,鏀跺埌鐨勫抚涓嶅畬鎴�
+ p_this->SaveToPacketVector(p_this->pkt);
+ p_this->CheckSave();
// BASICGB28181::avframe_to_cvmat(frame).copyTo(p_this->m_image);
- p_this->m_image = std::move(BASICGB28181::avframe_to_cvmat(frame));
+ p_this->m_image = std::move(BASICGB28181::avframe_to_cvmat(p_this->frame));
-#ifdef TestCode
- {
-// TestCode 娴嬭瘯浠g爜淇濆瓨鍥剧墖鍒版湰鍦�
- ClockTimer cl("TestCode");
- std::string strNewTime2 = AppUtil::getTimeUSecString();
- cv::putText(p_this->m_image, strNewTime2, cv::Point(408, 540), cv::HersheyFonts::FONT_HERSHEY_PLAIN,
- 5, cv::Scalar(255, 255, 0), 2);
- std::thread test([&](cv::Mat img, std::string strThing) {
+ if (p_this->m_SnapshotNotSaveRet && (p_this->pkt.flags & AV_PKT_FLAG_KEY)) {
try {
- std::string strNewTime = "tmpDec/";
- strNewTime.append(p_this->m_camIdx + "_").append(strThing).append(".jpg");
-// cv::imwrite(strNewTime, p_this->m_image);
+ std::string strNewName = "./";
+ strNewName.append(p_this->m_camIdx).append(".jpg");
+ cv::imwrite(strNewName, p_this->m_image);
+ p_this->m_SnapshotNotSaveRet = false;
} catch (std::exception ex) {
ERR(ex.what());
}
- }, p_this->m_image, strNewTime2);
- test.detach();
- }
+ }
+
+
+#ifdef TestCode
+ {
+ // TestCode 娴嬭瘯浠g爜淇濆瓨鍥剧墖鍒版湰鍦�
+ ClockTimer cl("TestCode");
+ std::string strNewTime2 = AppUtil::getTimeUSecString();
+ cv::putText(p_this->m_image, strNewTime2, cv::Point(408, 540), cv::HersheyFonts::FONT_HERSHEY_PLAIN,
+ 5, cv::Scalar(255, 255, 0), 2);
+ std::thread test([&](cv::Mat img, std::string strThing) {
+ try {
+ std::string strNewTime = "tmpDec/";
+ strNewTime.append(p_this->m_camIdx + "_").append(strThing).append(".jpg");
+ // cv::imwrite(strNewTime, p_this->m_image);
+ } catch (std::exception ex) {
+ ERR(ex.what());
+ }
+ }, p_this->m_image, strNewTime2);
+ test.detach();
+ }
#endif
- //#todo send to other thd
+ //#todo send to other thd
#ifdef TestCode
- DBG("emitSigal(\"DecoderImageOK\") begin");
+ DBG("emitSigal(\"DecoderImageOK\") begin");
#endif
- //瑙﹀彂淇″彿
- gSignalLock.emitSigal(p_this->m_camIdx + "DecoderImageOK");
+ //瑙﹀彂淇″彿
+ gSignalLock.emitSigal(p_this->m_camIdx + "DecoderImageOK");
//#ifdef TestCode
// DBG("emitSigal(\"DecoderImageOK\") after");
//#endif
- DBG("emitSigal(\"DecoderImageOK\") after");
- DBG("p_this->m_camIdx is " << p_this->m_camIdx << " queue size is " << p_this->m_rtpQueue.count_queue());
+ DBG("emitSigal(\"DecoderImageOK\") after");
+ DBG("p_this->m_camIdx is " << p_this->m_camIdx << " queue size is " << p_this->m_rtpQueue.count_queue());
#ifdef TestCode
- {
- ClockTimer cl("waitTime");
- int loop = 0;
- //#TODO
-// while ((loop++ < 3000) && !(p_this->m_readData)) {
-// usleep(10);
-// }
+ {
+ ClockTimer cl("waitTime");
+ int loop = 0;
+ //#TODO
+ // while ((loop++ < 3000) && !(p_this->m_readData)) {
+ // usleep(10);
+ // }
- usleep(30000);
- DBG("p_this->m_readData is " << p_this->m_readData << " loop is " << loop << " queue size is "
- << p_this->m_rtpQueue.count_queue());
- p_this->m_readData = false;
-// usleep(12000);
- }
+ usleep(30000);
+ DBG("p_this->m_readData is " << p_this->m_readData << " loop is " << loop << " queue size is "
+ << p_this->m_rtpQueue.count_queue());
+ p_this->m_readData = false;
+ // usleep(12000);
+ }
#else
- usleep(usleepTime);
+// usleep(usleepTime);
#endif
+ }
+ DBG(" after while ");
+ av_frame_free(&p_this->frame);
}
- DBG(" after while ");
- av_frame_free(&frame);
}
bool BASICGB28181::FFmpegDecoderJPG::startThd(const std::string &camIdx, const int &fps, const int &gpuIdx) {
@@ -283,6 +346,7 @@
setenv("CUDA_VISIBLE_DEVICES", std::to_string(gpuIdx).c_str(), 0);
}
m_camIdx = camIdx;
+ DBG("BareFlowDecoderThd camIdx : " << camIdx);
std::thread t_BareFlowDecoder(BareFlowDecoderThd, this);
t_BareFlowDecoder.detach();
);
@@ -375,7 +439,7 @@
delete iter->m_packet.data;
iter = m_packetsVec.erase(iter);
while (!(iter->m_packet.flags & AV_PKT_FLAG_KEY)) {
-// INFO("DropFrame: " << iter->m_frameId);
+ INFO("DropFrame: " << iter->m_frameId);
delete iter->m_packet.data;
iter = m_packetsVec.erase(iter);
}
@@ -386,15 +450,18 @@
bool BASICGB28181::FFmpegDecoderJPG::SaveVideo(std::string path, int64_t lastFrameId) {
std::lock_guard<std::mutex> lock(g_mutex);
- INFO("SaveVideo: " << path);
+ 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;
int64_t firstKeyFrameDts = m_packetsVec[0].m_packet.dts;
+ 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);
- conversion(const_cast<AVPacket *> (&item.m_packet), firstKeyFramePts, firstKeyFrameDts, video_st);
+ conversion(const_cast<AVPacket *> (&item.m_packet), firstKeyFramePts, firstKeyFrameDts, video_st,
+ frame_index);
+ frame_index++;
av_write_frame(m_pOutFmtCtx, &item.m_packet);
} else {
DBG("item.m_frameId > lastFrameId " << item.m_frameId << " " << lastFrameId);
@@ -517,11 +584,12 @@
int BASICGB28181::FFmpegDecoderJPG::stopWrite() {
if (m_pOutFmtCtx == nullptr) return -1;
av_write_trailer(m_pOutFmtCtx);
- avio_close(m_pOutFmtCtx->pb);
+
avcodec_close(m_pOutFmtCtx->streams[0]->codec);
av_freep(&m_pOutFmtCtx->streams[0]->codec);
av_freep(&m_pOutFmtCtx->streams[0]);
+ avio_close(m_pOutFmtCtx->pb);
av_free(m_pOutFmtCtx);
m_pOutFmtCtx = nullptr;
m_bstartWrite = false;
@@ -530,23 +598,23 @@
void BASICGB28181::FFmpegDecoderJPG::conversion(void *packet, const long int &firstKeyPts, const long int &firstKeyDts,
- void *inVideoStream) {
+ void *inVideoStream, unsigned long int frame_index) {
if ((packet != nullptr) && (inVideoStream != nullptr)) {
AVStream *inStream = (AVStream *) inVideoStream;
AVPacket *pkg = static_cast<AVPacket *>(packet);
-// static int a = 0;
-// pkg->dts = a++;
-// pkg->pts = a;
- pkg->pts -= firstKeyPts;
- pkg->dts -= firstKeyDts;
- pkg->pts = av_rescale_q_rnd(pkg->pts, inStream->time_base,
- m_pOutVideo_stream->time_base,
- (AVRounding) (AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));
- pkg->dts = av_rescale_q_rnd(pkg->dts, inStream->time_base,
- m_pOutVideo_stream->time_base,
- (AVRounding) (AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));
- pkg->duration = av_rescale_q(pkg->duration, inStream->time_base,
- m_pOutVideo_stream->time_base);
- pkg->pos = -1;
+
+
+ DBG("frame_index==%d\n" << frame_index);
+ //Write PTS
+ AVRational time_base1 = inStream->time_base;
+ //Duration between 2 frames (us)
+ int64_t calc_duration = (double) AV_TIME_BASE / av_q2d(inStream->r_frame_rate);
+ //Parameters
+ pkg->pts = (double) (frame_index * calc_duration) / (double) (av_q2d(time_base1) * AV_TIME_BASE);
+ pkg->dts = pkg->pts;
+ pkg->duration = (double) calc_duration / (double) (av_q2d(time_base1) * AV_TIME_BASE);
+
+// DBG("pts:" << pkg->pts);
+// DBG("dts:" << pkg->dts);
}
}
\ No newline at end of file
diff --git a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
index a593baa..dcfa1d2 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
+++ b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
@@ -166,7 +166,18 @@
//瀵规敹鍒扮殑甯ц繘琛岃鏁�
int64_t m_frameIndex = 0;
+//*******************************************
+ AVFormatContext *ic;
+ unsigned char *iobuffer;
+ AVIOContext *avio;
+ AVStream *stream;
+ AVCodecContext *ctx;
+ AVCodec *codec;
+ AVCodec *codec_cuvid;
+ AVPacket pkt;
+ AVFrame *frame;
+ //*******************************************
//灏嗗抚淇濆瓨鍒板抚鏁扮粍
void SaveToPacketVector(AVPacket &packet);
@@ -188,7 +199,8 @@
int stopWrite();
//瀵筽acket鍋氳浆鎹�
- void conversion(void *packet, const long int &firstKeyPts, const long int &firstKeyDts, void *inVideoStream);
+ void conversion(void *packet, const long int &firstKeyPts, const long int &firstKeyDts, void *inVideoStream,
+ unsigned long int frame_index = 0);
bool m_bstartWrite = {false};
bool m_bFirstKeyFrame = {false};
@@ -215,6 +227,7 @@
int m_gpuIdx;
int m_fps;
bool m_PackageState;
+ bool m_SnapshotNotSaveRet{true};
std::string m_camIdx;
MyQueue<frameBuffInfo *> m_rtpQueue;
diff --git a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
index bf433a6..8a1d652 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
+++ b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
@@ -35,6 +35,38 @@
bool BASICGB28181::VideoCaptureElementWithRtp::startRtpStream(int streamTransType) {
+ std::thread waitSignalAndEmit([&](BASICGB28181::VideoCaptureElementWithRtp *p_this) {
+ p_this->m_waitSignal = true;
+ while (p_this->m_waitSignal) {
+//#TODO wait test
+#ifdef TestCode
+ DBG("waitSignal(\"DecoderImageOK\") begin");
+#endif
+ gSignalLock.waitSignal(p_this->m_chanPubID + "DecoderImageOK");
+#ifdef TestCode
+ DBG("waitSignal(\"DecoderImageOK\") after");
+#endif
+ p_this->m_picCount++;
+ //鍑犲紶閫変竴寮犳斁鍏edis
+ if (p_this->m_picCount % m_nPicsPickOne != 0) {
+ continue;
+ } else {
+ p_this->m_picCount.store(0);
+ }
+
+ p_this->m_fFmpegDecoderJPG.getImage().copyTo(p_this->m_image);
+ {
+ 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->submit();
+ }
+ INFO("waitSignalAndEmit is exit...");
+ }, this);
+ waitSignalAndEmit.detach();
+
TryCath(
//--------------鍥芥爣璁惧鎴栧垯鍥芥爣涓嬬骇骞冲彴蹇呴』鏀寔GB28181-2016----------------------------------------------
std::thread videoCaptureElementThd([&](VideoCaptureElementWithRtp *p_this, int streamType) {
@@ -69,12 +101,19 @@
p_this->m_running = true;
p_this->m_fFmpegDecoderJPG.startThd(p_this->m_chanPubID, p_this->m_fps, p_this->m_gpuIdx);
while (p_this->m_running) {
- usleep(300000);
+// if(p_this->m_fFmpegDecoderJPG.getRunning()) {
+ usleep(300000);
+// }else{
+// p_this->m_running = false;
+// break;
+// }
}
DBG("videoCaptureElementThd stop ...");
C_RealVideoStop(lrealhandle);
+ p_this->m_waitSignal = false;
DBG("videoCaptureElementThd stop ok...");
} else {
+ p_this->m_waitSignal = false;
p_this->m_running = false;
p_this->m_fFmpegDecoderJPG.stopThd();
ERR(p_this->m_chanPubID << " C_RealVideoStart is error lrealhandle is " << lrealhandle);
@@ -124,42 +163,23 @@
}
void BASICGB28181::VideoCaptureElementWithRtp::threadFunc() {
+ if ((!m_running) || (!m_waitSignal)) {
+ if (reopenTime < 0) {
+ stop();
+ INFO("grabFrame faild, element stopping");
+ return;
+ } else {
+ usleep(reopenTime * 1000);
+ INFO("grabFrame faild, try reopen video: ");
+ startRtpStream(m_streamTransType);
+ return;
+ }
+ }
fireConnectors();
}
void BASICGB28181::VideoCaptureElementWithRtp::threadInitial() {
- std::thread waitSignalAndEmit([&](BASICGB28181::VideoCaptureElementWithRtp *p_this) {
- p_this->m_waitSignal = true;
- while (p_this->m_waitSignal) {
-//#TODO wait test
-#ifdef TestCode
- DBG("waitSignal(\"DecoderImageOK\") begin");
-#endif
- gSignalLock.waitSignal(p_this->m_chanPubID + "DecoderImageOK");
-#ifdef TestCode
- DBG("waitSignal(\"DecoderImageOK\") after");
-#endif
- p_this->m_picCount++;
- //鍑犲紶閫変竴寮犳斁鍏edis
- if (p_this->m_picCount % m_nPicsPickOne != 0) {
- continue;
- } else {
- p_this->m_picCount.store(0);
- }
-
- p_this->m_fFmpegDecoderJPG.getImage().copyTo(p_this->m_image);
- {
- 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->submit();
- }
- INFO("waitSignalAndEmit is exit...");
- }, this);
- waitSignalAndEmit.detach();
startRtpStream(m_streamTransType);
}
diff --git a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h
index 77751c3..cc6b4b9 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h
+++ b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h
@@ -40,6 +40,7 @@
std::string MakeDir(const std::string &timeStamp);
private:
+ int reopenTime{1000};
int m_gpuIdx;
int m_fps;
int m_streamTransType;
diff --git a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
index 85c5d4b..b6cbc28 100644
--- a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
@@ -139,8 +139,11 @@
Json::Value t_json;
t_json["Id"] = str_uuid; //涓婚敭
+ std::string feature_base64;
+ feature_base64 = base64.Encode(feature.data(), feature.size());
+
//#鍦ㄥ姣斾腑娣诲姞鐗瑰緛鍊�
- t_json["FaceFeature"] = "base64";
+ t_json["FaceFeature"] = feature_base64;
t_json["personId"] = "";//鍏宠仈搴曞簱浜哄憳id,浜鸿劯id
t_json["BaseName"] = "";//鍏宠仈搴曞簱琛ㄥ悕
//#end
diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h b/QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h
index 0ae7935..44e7822 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h
+++ b/QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h
@@ -61,6 +61,7 @@
str_brand = "";
str_reserved = "";
n_type = -1;
+ type = -1;
}
int n_id;//鑷id
@@ -76,6 +77,7 @@
QString str_brand;//鎽勫儚鏈哄搧鐗�
QString str_reserved;//棰勭暀
int n_type;//棰勭暀
+ int type;// 0 rtsp, 1 gb28181
};
struct Record_Cam_Chn {
diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
index 8070b13..f1a6d89 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
+++ b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
@@ -332,6 +332,7 @@
rec.setValue("password", channelRec.str_password);
rec.setValue("brand", channelRec.str_brand);
rec.setValue("reserved", channelRec.str_reserved);
+ rec.setValue("type", channelRec.type);
pModel.insertRecord(-1, rec);//TODO
@@ -510,6 +511,7 @@
Record_Cam_Dev lChannelRec;
QSqlRecord rec = pModel.record(i);
lChannelRec.n_id = rec.value("id").toInt();
+ lChannelRec.type = rec.value("type").toInt();
lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
lChannelRec.str_name = rec.value("name").toString();
lChannelRec.str_addr = rec.value("addr").toString();
diff --git a/QiaoJiaSystem/VideoToImage/CMakeLists.txt b/QiaoJiaSystem/VideoToImage/CMakeLists.txt
index 1fe405c..6ca2f70 100644
--- a/QiaoJiaSystem/VideoToImage/CMakeLists.txt
+++ b/QiaoJiaSystem/VideoToImage/CMakeLists.txt
@@ -68,7 +68,7 @@
/usr/include/x86_64-linux-gnu/qt5/QtCore/
/usr/include/x86_64-linux-gnu/qt5/QtSql/
- ../../BasicPlatForm/libs/hiredis-master/include
+ ../../../BasicPlatForm/libs/hiredis-master/include
../../../BasicPlatForm/basic/timer_counter/
)
diff --git a/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt b/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
index f6648c5..1a0c06c 100644
--- a/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
+++ b/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
@@ -93,7 +93,7 @@
../../../BasicPlatForm/libs/hiredis-master/lib
../../../BasicPlatForm/libs/mysqlpp/lib
- ../../../BasicPlatForm/libs/mysql/lib
+ ../../../BasicPlatForm/libs/mysql/lib
)
add_executable(${PROJECT_NAME}
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
index 9eee39c..cbc7dfa 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
@@ -58,9 +58,10 @@
// item.str_password.toStdString(), item.str_brand.toStdString());
INFO("cam add is " << item.str_addr.toStdString());
addCamera(t_camIdex, rtsp_url);
+ sleep(1);
}
} else {
- ERR("searchCamDevTableAll size is 0");
+ ERR("searchCamDevTableByType size is 0");
}
} else {
@@ -115,7 +116,7 @@
//
// }
} else {
- ERR("searchCamDevTableAll size is 0");
+ ERR("searchCamDevTableByType size is 0");
}
}
}
diff --git a/QiaoJiaSystem/build/DataWebServer b/QiaoJiaSystem/build/DataWebServer
index 01f43df..664c46a 100755
--- a/QiaoJiaSystem/build/DataWebServer
+++ b/QiaoJiaSystem/build/DataWebServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceDetectResourcesTest b/QiaoJiaSystem/build/FaceDetectResourcesTest
index 1afe23e..f9ddeb1 100755
--- a/QiaoJiaSystem/build/FaceDetectResourcesTest
+++ b/QiaoJiaSystem/build/FaceDetectResourcesTest
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceDetectServer b/QiaoJiaSystem/build/FaceDetectServer
index 8822702..0bc5e41 100755
--- a/QiaoJiaSystem/build/FaceDetectServer
+++ b/QiaoJiaSystem/build/FaceDetectServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceExtractServer b/QiaoJiaSystem/build/FaceExtractServer
index 3dcfee4..e2aeb11 100755
--- a/QiaoJiaSystem/build/FaceExtractServer
+++ b/QiaoJiaSystem/build/FaceExtractServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceSearchServer b/QiaoJiaSystem/build/FaceSearchServer
index 3953b34..5a2e1ea 100755
--- a/QiaoJiaSystem/build/FaceSearchServer
+++ b/QiaoJiaSystem/build/FaceSearchServer
Binary files differ
diff --git a/QiaoJiaSystem/build/TestCilent b/QiaoJiaSystem/build/TestCilent
index fdebc81..eb84aef 100755
--- a/QiaoJiaSystem/build/TestCilent
+++ b/QiaoJiaSystem/build/TestCilent
Binary files differ
diff --git a/QiaoJiaSystem/build/VideoAnalysFromHC b/QiaoJiaSystem/build/VideoAnalysFromHC
index 9e1015b..6343aa6 100755
--- a/QiaoJiaSystem/build/VideoAnalysFromHC
+++ b/QiaoJiaSystem/build/VideoAnalysFromHC
Binary files differ
diff --git a/QiaoJiaSystem/build/YoloDetectClientTest b/QiaoJiaSystem/build/YoloDetectClientTest
index 7d376dd..216cd5e 100755
--- a/QiaoJiaSystem/build/YoloDetectClientTest
+++ b/QiaoJiaSystem/build/YoloDetectClientTest
Binary files differ
diff --git a/QiaoJiaSystem/build/YoloServer b/QiaoJiaSystem/build/YoloServer
index 662587b..43d76f7 100755
--- a/QiaoJiaSystem/build/YoloServer
+++ b/QiaoJiaSystem/build/YoloServer
Binary files differ
diff --git a/QiaoJiaSystem/build/runAll.sh b/QiaoJiaSystem/build/runAll.sh
index ca3a136..56b4abe 100644
--- a/QiaoJiaSystem/build/runAll.sh
+++ b/QiaoJiaSystem/build/runAll.sh
@@ -1,18 +1,17 @@
#!/usr/bin/env bash
-MYLDPATH="~/Apps"
-MY3RDLIBSPATH="~/Apps/BasicPlatForm/libs/"
-MYLOGPATH="~/work/log/"
+MYLDPATH="/home/basic/Apps"
+MY3RDLIBSPATH="/home/basic/Apps/BasicPlatForm/libs/"
+MYLOGPATH="/home/basic/work/log/"
#todo
-#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/media/basic/cdbfb548-3100-4738-b9c1-0a7e1e002170/c++/Qt/BasicPlatForm/libs/hcTool/HCNetSDK64/lib:/media/basic/cdbfb548-3100-4738-b9c1-0a7e1e002170/c++/Qt/BasicPlatForm/libs/hcTool/HCNetSDK64/lib/HCNetSDKCom
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${MY3RDLIBSPATH}/hcTool/HCNetSDK64/lib:${MY3RDLIBSPATH}/hcTool/HCNetSDK64/lib/HCNetSDKCom:${MY3RDLIBSPATH}/ffmpeg/lib:${MY3RDLIBSPATH}/opencv/lib:${MY3RDLIBSPATH}/Casia_Face/FaceSdk/lib/gpu:${MY3RDLIBSPATH}/FastDFS/lib:${MY3RDLIBSPATH}/Ice-3.7.0/lib64:${MY3RDLIBSPATH}/DarkNet/lib:${MY3RDLIBSPATH}/libopenssl/lib:${MY3RDLIBSPATH}/uniview/lib
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${MY3RDLIBSPATH}/hcTool/HCNetSDK64/lib:${MY3RDLIBSPATH}/hcTool/HCNetSDK64/lib/HCNetSDKCom:${MY3RDLIBSPATH}/ffmpeg/lib:${MY3RDLIBSPATH}/opencv/lib:${MY3RDLIBSPATH}/Casia_Face/FaceSdk/lib/gpu:${MY3RDLIBSPATH}/FastDFS/lib:${MY3RDLIBSPATH}/Ice-3.7.0/lib64:${MY3RDLIBSPATH}/DarkNet/lib:${MY3RDLIBSPATH}/libopenssl/lib:${MY3RDLIBSPATH}/uniview/lib:${MY3RDLIBSPATH}/libboost/lib/:${MY3RDLIBSPATH}/sqlite/lib/:${MY3RDLIBSPATH}/glog/lib/:${MY3RDLIBSPATH}/hiredis-master/lib:${MY3RDLIBSPATH}/mysql/lib:${MY3RDLIBSPATH}/mysqlpp/lib:${MY3RDLIBSPATH}/GB28181/libs
startFunc() {
PROC=`ps aux | grep "$1" | grep -v grep | grep -v tail`
if [ -z "${PROC}" ]; then
date +%D-%T" $1 start"
- nohup ./$1 > ${MYLOGPATH}/Log$1`date +%Y-%m-%d_%T` &
+ nohup ./$1 1> ${MYLOGPATH}/Log$1`date +%Y-%m-%d_%T` 2>&1 &
return 1
else
echo "$1 is exists"
@@ -20,33 +19,137 @@
fi
}
-#start FaceExtractServer
-startFunc FaceExtractServer
+#$1:funcName; $2:GB28181_Enable,en:1,dis:0;
+#$3:gpu.index; $4:CamStartNO; $5:CamEndNO; $6:RpcYOLOPort;
+#$7:RpcFDPort; $8:RpcFEPort; $9:RpcFSPort $10:RpcVTIMPort;
+startVAHK() {
+ date +%D-%T" $1 start"
+ nohup ./$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} 1> ${MYLOGPATH}/Log$1`date +%Y-%m-%d_%T`_${10} 2>&1 &
+ return 1
+}
-#start FaceDetectServer
-startFunc FaceDetectServer
+#$1:funcName; $2:GB28181_Enable,en:1,dis:0;
+#$3:gpu.index; $4:CamStartNO; $5:CamEndNO; $6:RpcVTIMPort
+startVTIM() {
+ date +%D-%T" $1 start"
+ nohup ./$1 $2 $3 $4 $5 $6 1> ${MYLOGPATH}/Log$1`date +%Y-%m-%d_%T`_$6 2>&1 &
+ return 1
+}
-#start YoloServer
-startFunc YoloServer
+#$1:funcName; $2:gpu.index; $3:RpcYOLOPort; $4:thresh.detect;
+startYOLO() {
+ date +%D-%T" $1 start"
+ nohup ./$1 $2 $3 $4 1> ${MYLOGPATH}/Log$1`date +%Y-%m-%d_%T`_$3 2>&1 &
+ return 1
+}
-#start FaceSearchServer
-startFunc FaceSearchServer
+#$1:funcName; $2:gpu.index; $3:RpcFDPort; $4:thread.max;
+startFD() {
+ date +%D-%T" $1 start"
+ nohup ./$1 $2 $3 $4 1> ${MYLOGPATH}/Log$1`date +%Y-%m-%d_%T`_$3 2>&1 &
+ return 1
+}
-#start RecordVideo
-startFunc RecordVideo
+#$1:funcName; $2:gpu.index; $3:RpcFEPort; $4:thread.max;
+startFE() {
+ date +%D-%T" $1 start"
+ nohup ./$1 $2 $3 $4 1> ${MYLOGPATH}/Log$1`date +%Y-%m-%d_%T`_$3 2>&1 &
+ return 1
+}
-#start DataWebServer
-#startFunc DataWebServer
+#$1:funcName; $2:RpcFSPort; $3:thread.max;
+startFS() {
+ date +%D-%T" $1 start"
+ nohup ./$1 $2 $3 1> ${MYLOGPATH}/Log$1`date +%Y-%m-%d_%T`_$2 2>&1 &
+ return 1
+}
+
+
+startFunc test_cpu_mem.sh
+
sh runWebSer.sh
+#start FaceExtractServer
+#$1:funcName; $2:gpu.index; $3:RpcFEPort; $4:thread.max;
+FaceExtractServerPROC=`ps aux | grep "FaceExtractServer" | grep -v grep | grep -v tail`
+if [ -z "${FaceExtractServerPROC}" ]; then
+ startFE FaceExtractServer 0 10021 2
+ startFE FaceExtractServer 1 10022 2
+# startFE FaceExtractServer 0 10023 4
+# startFE FaceExtractServer 1 10024 4
+else
+ echo "FaceExtractServer is exists"
+fi
+
+#start FaceDetectServer
+#$1:funcName; $2:gpu.index; $3:RpcFDPort; $4:thread.max;
+FaceDetectServerPROC=`ps aux | grep "FaceDetectServer" | grep -v grep | grep -v tail`
+if [ -z "${FaceDetectServerPROC}" ]; then
+ startFD FaceDetectServer 1 10011 2
+ sleep 3
+ startFD FaceDetectServer 0 10012 2
+# startFD FaceDetectServer 1 10013 4
+# startFD FaceDetectServer 0 10014 4
+else
+ echo "FaceDetectServer is exists"
+fi
+
+#start YoloServer
+#$1:funcName; $2:gpu.index; $3:RpcYOLOPort; $4:thresh.detect;
+YoloServerPROC=`ps aux | grep "YoloServer" | grep -v grep | grep -v tail`
+if [ -z "${YoloServerPROC}" ]; then
+ startYOLO YoloServer 0 10001 0.85
+ startYOLO YoloServer 1 10002 0.85
+# startYOLO YoloServer 0 10003 0.85
+# startYOLO YoloServer 1 10004 0.85
+else
+ echo "YoloServer is exists"
+fi
+
+#start FaceSearchServer
+#$1:funcName; $2:RpcFSPort; $3:thread.max;
+FaceSearchServerPROC=`ps aux | grep "FaceSearchServer" | grep -v grep | grep -v tail`
+if [ -z "${FaceSearchServerPROC}" ]; then
+ startFS FaceSearchServer 10031 2
+ sleep 3
+ startFS FaceSearchServer 10032 2
+# startFS FaceSearchServer 10033 4
+# startFS FaceSearchServer 10034 4
+else
+ echo "FaceSearchServer is exists"
+fi
+
+#start VideoToImageMulth
+#$1:funcName; $2:GB28181_Enable,en:1,dis:0;
+#$3:gpu.index; $4:CamStartNO; $5:CamEndNO; $6:RpcVTIMPort
+VideoToImageMulthPROC=`ps aux | grep "VideoToImageMulth" | grep -v grep | grep -v tail`
+if [ -z "${VideoToImageMulthPROC}" ]; then
+ startVTIM VideoToImageMulth 0 0 0 1 10041
+ startVTIM VideoToImageMulth 0 1 2 3 10042
+# startVTIM VideoToImageMulth 0 0 8 11 10043
+# startVTIM VideoToImageMulth 0 1 12 15 10044
+else
+ echo "VideoToImageMulth is exists"
+fi
#start VideoAnalysFromHC
+#$1:funcName; $2:GB28181_Enable,en:1,dis:0;
+#$3:gpu.index; $4:CamStartNO; $5:CamEndNO; $6:RpcYOLOPort;
+#$7:RpcFDPort; $8:RpcFEPort; $9:RpcFSPort $10:RpcVTIMPort;
VideoAnalysPROC=`ps aux | grep "VideoAnalysFromHC" | grep -v grep | grep -v tail`
if [ -z "${VideoAnalysPROC}" ]; then
- date +%D-%T" VideoAnalysFromHC start"
- nohup ./VideoAnalysFromHC 2> /dev/null > ${MYLOGPATH}/LogVideoAnalysFromHC`date +%Y-%m-%d_%T` &
+ startVAHK VideoAnalysFromHC 0 1 0 1 10001 10011 10021 10031 10041
+ startVAHK VideoAnalysFromHC 0 0 2 3 10002 10012 10022 10032 10042
+# startVAHK VideoAnalysFromHC 0 1 8 11 10003 10013 10023 10033 10043
+# startVAHK VideoAnalysFromHC 0 0 12 15 10004 10014 10024 10034 10044
else
echo "VideoAnalysFromHC is exists"
fi
+cd /home/basic/Apps/BasicPlatForm/libs/srs
+nohup ./runRtmpServer.sh &
+
+cd /usr/local/redis/bin
+nohup ./redis-server ../redis.conf &
+
diff --git a/QiaoJiaSystem/build/scpToSer.sh b/QiaoJiaSystem/build/scpToSer.sh
old mode 100644
new mode 100755
index fda9895..b726b31
--- a/QiaoJiaSystem/build/scpToSer.sh
+++ b/QiaoJiaSystem/build/scpToSer.sh
@@ -10,7 +10,7 @@
des_pass=123
expect -c "
# spawn scp -P41100 ${CUR_PATH}"/"$1 basic@58.118.225.79:/home/basic/Apps/QiaoJiaSystem/build
- spawn scp ${CUR_PATH}"/"$1 basic@192.168.1.203:/home/basic/Apps/QiaoJiaSystem/build
+ spawn scp ${CUR_PATH}"/"$1 basic@192.168.1.182:/home/basic/Apps/QiaoJiaSystem/build
expect \"password:\"
send \"${des_pass}\r\"
expect eof
@@ -29,12 +29,13 @@
sendFile FaceExtractServer
sendFile FaceSearchServer
sendFile syncDBClient
- sendFile RecordVideo
+ #sendFile RecordVideo
sendFile VideoAnalysFromHC
+ sendFile VideoToImageMulth
sendFile YoloServer
- sendFile EncodeServer
- sendFile killAll.sh
- #sendFile runAll.sh
+ #sendFile EncodeServer
+ #sendFile killAll.sh
+ sendFile runAll.sh
#sendFile runWebSer.sh
else
SENDFILE=$1
diff --git a/QiaoJiaSystem/build/syncDBClient b/QiaoJiaSystem/build/syncDBClient
index 5584639..32115d0 100755
--- a/QiaoJiaSystem/build/syncDBClient
+++ b/QiaoJiaSystem/build/syncDBClient
Binary files differ
--
Gitblit v1.8.0