| | |
| | | #include <basic/pipe/PipeController.h> |
| | | #include <basic/pipe_element/ffmpeg/VideoCaptureElement.h> |
| | | #include "ImageDrawElement.h" |
| | | #include "YoloRpcElement.h" |
| | | class Controllor : public PipeController |
| | | { |
| | | #include <YoloRpcElement.h> |
| | | #include <basic/util/app/AppPreference.hpp> |
| | | |
| | | 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") |
| | | { |
| | | 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_videoCaptureElement.registerConnector([&] { |
| | | if (!m_YoloRpcElement.isBusy()) { |
| | | m_YoloRpcElement.setImage(m_videoCaptureElement.getImage()); |
| | | // paElement.setImage(videoCaptureElement.getImage()); |
| | | // paNumElement.setImage(videoCaptureElement.getImage()); |
| | | // paElement.setImage(videoCaptureElement.getImage()); |
| | | // paNumElement.setImage(videoCaptureElement.getImage()); |
| | | m_YoloRpcElement.submit(); |
| | | } |
| | | if(!m_imageDrawElement.isBusy()){ |
| | | if (!m_imageDrawElement.isBusy()) { |
| | | m_imageDrawElement.setImage(m_videoCaptureElement.getImage()); |
| | | m_imageDrawElement.submit(); |
| | | } |
| | | }); |
| | | |
| | | m_YoloRpcElement.registerConnector([&]{ |
| | | m_imageDrawElement.setRects(m_YoloRpcElement.getRects()); |
| | | m_YoloRpcElement.registerConnector([&] { |
| | | m_imageDrawElement.setYoloObjects(m_YoloRpcElement.getLastScoreRects()); |
| | | }); |
| | | |
| | | m_imageDrawElement.registerConnector([&]{ |
| | | ImageShowElement::showImage(m_rtsp,*m_imageDrawElement.getImage()); |
| | | m_imageDrawElement.registerConnector([&] { |
| | | // ImageShowElement::showImage(std::to_string(m_index), *m_imageDrawElement.getImage()); |
| | | |
| | | }); |
| | | m_videoCaptureElement.setOutPutInterval(2); |
| | | m_videoCaptureElement.setOutPutInterval(3); |
| | | registerElement(m_videoCaptureElement); |
| | | registerElement(m_YoloRpcElement); |
| | | registerElement(m_imageDrawElement); |
| | | } |
| | | virtual ~Controllor() |
| | | {} |
| | | |
| | | 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[]) |
| | | { |
| | | //using namespace std; |
| | | int main(int argc, char *argv[]) { |
| | | SAVE_APP_ARGS |
| | | Controllor _Controllor(0,"/home/basic/video/201804/day0416/01010002606000000-slice1.mp4"); |
| | | _Controllor.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(1);} |
| | | 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; |
| | | } |