#include "RapidAppPipeController.h"
|
#include <basic/util/app/AppPreference.hpp>
|
#include <basic/util/app/AppUtil.h>
|
|
//#include <sstream>
|
#include <algorithm>
|
|
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();
|
}
|