#include "RapidAppPipeController.h" #include #include //#include #include RapidAppPipeController::RapidAppPipeController(int index, const Json::Value &json, const std::string &outPath) : videoCaptureElement(json["rtsp"].asString(), outPath, 25, -1, 0),//appPref.getLongData("gpu.index") index(index), bUp(false), m_json(json), /*yoloRpcElement(to_string(index)+"yoloRpc"),*/triggerElement(0, 3) { videoCaptureElement.registerConnector([&] { if (videoCaptureElement.getChangeLevel() > 40) { triggerElement.setState(true); } else if (videoCaptureElement.getChangeLevel() < 20) { triggerElement.setState(false); } triggerElement.triggerOnce(); if (triggerElement.getState()) { videoCaptureElement.setOutPutInterval(1); } else { videoCaptureElement.setOutPutInterval(25); } if (triggerElement.getTriggerState()) { if (!bUp) { bUp = true; // DBG(videoCaptureElement.getOutPutIndex()); videoCaptureElement.startRecord(videoCaptureElement.getOutPutIndex()); } else { //#TODO auto it = (videoCaptureElement.getOutPutIndex() - videoCaptureElement.getM_nFrame()) / 25; // DBG("tes t " << it); if (it > (60 * 5)) { // DBG("test"); bUp = false; videoCaptureElement.endRecord(videoCaptureElement.getOutPutIndex()); } } } else { if (bUp) { bUp = false; // DBG(videoCaptureElement.getOutPutIndex()); videoCaptureElement.endRecord(videoCaptureElement.getOutPutIndex()); } } }); triggerElement.registerConnector([&] { switch (triggerElement.getTriggerType()) { case UP: // DBG("UP"); break; case DOWN: // DBG("DOWN"); break; default: break; } }); registerElement(videoCaptureElement); // if(appPref.getStringData("yolo.enable")=="1"){ // registerElement(yoloRpcElement); // } //registerElement(yoloRpcElement); //registerElement(imageDrawElement); registerElement(triggerElement); videoCaptureElement.setOutPutInterval(1); } bool RapidAppPipeController::getIsRunning() const { return videoCaptureElement.isRunning(); } RapidAppPipeController::~RapidAppPipeController() { } std::string RapidAppPipeController::getPath() { return m_json["rtsp"].asString(); }