#ifndef NEWRECORDVIDEOELEMENT_H #define NEWRECORDVIDEOELEMENT_H #include #include 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 m_imgBufQue; }; #endif // RECORDVIDEOELEMENT_H