#ifndef NEWRECORDVIDEOELEMENT_H
|
#define NEWRECORDVIDEOELEMENT_H
|
#include <basic/pipe/PipeElement.h>
|
#include <basic/pipe_element/ffmpeg/FfmpegElement.h>
|
struct ImgInfo
|
{
|
std::string time;
|
cv::Mat img;
|
};
|
class NewRecordVideoElement : public basic::PipeElement{
|
|
public:
|
|
NewRecordVideoElement(){}
|
NewRecordVideoElement(std::string camid);
|
|
~NewRecordVideoElement();
|
|
std::string startRecord();
|
void setSdkTrigger(bool isTrigger);
|
void doRecord();
|
|
void endRecord();
|
|
void pushImgBuf(const std::string& time,cv::Mat& img);
|
|
void getImg(ImgInfo& info);
|
private:
|
virtual void threadFunc() override;
|
virtual void threadInitial() override;
|
private:
|
void recordInit(int videoMin, int videoMax);
|
|
void Record();
|
int fileMin;
|
int fileMax;
|
bool sdkTrigger;
|
int triggerDelay;
|
|
#define RECORD_STOP (0)
|
#define RECORD_DOING (1)
|
#define RECORD_ENDING (2)
|
|
int recordStatus;
|
int videoLength;
|
int recordDelay;
|
|
|
|
private:
|
std::string getFileName(std::string timeStamp);
|
std::string makeDir();
|
ffmpeg::VideoEncodeElement videoEncoderElement;
|
std::string camID;
|
std::string m_cutPath;
|
std::queue<ImgInfo> m_imgBufQue;
|
};
|
|
#endif // RECORDVIDEOELEMENT_H
|