#include "basic/util/resource/ResourcesManager.h" #include #include #include #include #include #include #include #include #include "ImageDrawElement.h" #include "YoloRpcElement.h" #include class Controllor : public PipeController { public: Controllor(const int index, const std::string &rtsp) : m_videoCaptureElement(rtsp, 25, 1000, 0), m_YoloRpcElement(std::to_string(index) + "YoloRpc") { m_index = index; m_rtsp = rtsp; m_videoCaptureElement.registerConnector([&] { if (!m_YoloRpcElement.isBusy()) { m_YoloRpcElement.setImage(m_videoCaptureElement.getImage()); // paElement.setImage(videoCaptureElement.getImage()); // paNumElement.setImage(videoCaptureElement.getImage()); m_YoloRpcElement.submit(); } if (!m_imageDrawElement.isBusy()) { m_imageDrawElement.setImage(m_videoCaptureElement.getImage()); m_imageDrawElement.submit(); } }); m_YoloRpcElement.registerConnector([&] { m_imageDrawElement.setYoloObjects(m_YoloRpcElement.getLastScoreRects()); }); m_imageDrawElement.registerConnector([&] { // ImageShowElement::showImage(std::to_string(m_index), *m_imageDrawElement.getImage()); }); m_videoCaptureElement.setOutPutInterval(3); registerElement(m_videoCaptureElement); registerElement(m_YoloRpcElement); registerElement(m_imageDrawElement); } virtual ~Controllor() {} private: std::string m_rtsp; ffmpeg::VideoCaptureElement m_videoCaptureElement; YoloRpcElement m_YoloRpcElement; ImageDrawElement m_imageDrawElement; int m_index; }; //using namespace std; int main(int argc, char *argv[]) { SAVE_APP_ARGS int num = atoi(argv[1]); std::string path(argv[2]); int portNum = atoi(argv[3]); //yolo server appPref.setStringData("yolo.proxy", "yoloServer"); //#todo appPref.setStringData("yolo.ip", ""); appPref.setIntData("yolo.port", portNum); // rpcClient(appPref.getStringData("yolo.proxy"), appPref.getStringData("yolo.ip"), appPref.getLongData("yolo.port"),"tcp"), for (int i = 0; i < num; i++) { Controllor *_Controllor = new Controllor(i, path); _Controllor->start(); } // Controllor _Controllor(0, "/home/bsk/2.mp4"); // _Controllor.start(); // Controllor _Controllor1(1, "/home/bsk/2.mp4"); // _Controllor1.start(); // Controllor _Controllor2(2, "/home/bsk/2.mp4"); // _Controllor2.start(); // Controllor _Controllor3(3, "/home/bsk/2.mp4"); // _Controllor3.start(); // Controllor _Controllor4(4, "/home/bsk/2.mp4"); // _Controllor4.start(); // Controllor _Controllor0(1,"/home/basic/video/201804/day0416/01010002606000000-slice2.mp4"); // _Controllor0.start(); // cout << "Hello World!" << endl; // Controllor _Controllor1(2,"/home/basic/video/201804/day0416/01010002609000000-slice.mp4"); // _Controllor1.start(); // Controllor _Controllor2(3,"/home/basic/video/201804/day0416/01010002611000000-slice.mp4"); // _Controllor2.start(); // Controllor _Controllor3(4,"/home/basic/video/201804/night0418/02000000652000100-slice.mp4"); // _Controllor3.start(); // Controllor _Controllor4(5,"/home/basic/video/201804/night0418/02000000654000100-slice.mp4"); // _Controllor4.start(); // Controllor _Controllor5(6,"/home/basic/video/201804/night0418/02000000659000100-slice.mp4"); // _Controllor5.start(); while (true) { sleep(10); } return 0; }