// // Created by ps on 19-1-8. // #include #include #include #include "GB28181Server.h" #include "VideoCaptureElementWithRtp.h" #include #include using namespace std; int main(int argc, char **argv) { std::cout << "test " << std::endl; bool running = true; bool serinit = false; MysqlDBServerCfg mysqlDBServerCfg; mysqlDBServerCfg.Host = "192.168.1.148"; mysqlDBServerCfg.Port = 3306; mysqlDBServerCfg.UserName = "root"; mysqlDBServerCfg.Passwd = "123456"; mysqlDBServerCfg.DBName = "EGEyesForVSS"; mysqlDBServerCfg.DBConnCount = 5; GBServerCfg gbServerCfg; gbServerCfg.SvrIp = "192.168.1.148"; // 国标服务的ip地址 (本机的ip地址) gbServerCfg.SvrPort = 7060; // 国标服务监听的端口 gbServerCfg.SvrPubID = "44120000002000000001"; // 国标服务器的ID gbServerCfg.bMD5Auth = false; // 是否需要MD5加密 gbServerCfg.UserName = "44120100002000000002"; // 国标服务的用户名 (下级设备注册的用户名) gbServerCfg.Passwd = "123456"; // 国标服务的密码 (下级设备注册的密码) gbServerCfg.SubScribeTime = 3600; // 订阅时间 如果为0 表示不订阅 SpinLock spinLock; auto func = [&] { spinLock.lock(); GB28181Server m_gbs; m_gbs.setMysqlConnParam(mysqlDBServerCfg); m_gbs.setGBServerParam(gbServerCfg); DBG("initServer start before"); serinit = m_gbs.initServer(); DBG("initServer start after"); spinLock.unlock(); while (running) { usleep(4000); } }; std::thread thd(func); // ---------------------测试------------------------ spinLock.lock(); DBG("test start"); //#todo search from db char ChanPubID2[] = "11010202081314000001"; std::string str_ChanPubID2(ChanPubID2); BASICGB28181::VideoCaptureElementWithRtp videoCapture2(str_ChanPubID2, 25, 1, 0); videoCapture2.registerConnector([&]() { { //testCode cv::Mat t_image = videoCapture2.getImage(); if (t_image.empty()) { ERR("t_image is empty"); return; } std::string strNewTime; strNewTime = AppUtil::getTimeUSecString(); cv::putText(t_image, strNewTime, cv::Point(408, 540), cv::HersheyFonts::FONT_HERSHEY_PLAIN, 5, cv::Scalar(255, 255, 0), 2); DBG("imshow image" << str_ChanPubID2 << strNewTime); // imshow("str_ChanPubID2", t_image); // cv::waitKey(10); #if 1 { // TestCode // ClockTimer cl("str_ChanPubID1"); std::string strNewTime2 = AppUtil::getTimeUSecString(); // cv::putText(t_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(str_ChanPubID2 + "_").append(strThing).append(".jpg"); cv::imwrite(strNewTime, img); } catch (std::exception ex) { ERR(ex.what()); } }, t_image, strNewTime2); test.detach(); } #endif } }); usleep(10); videoCapture2.start(); sleep(60); videoCapture2.stop(); DBG("test end"); getchar(); running = false; getchar(); sleep(2); return 0; }