first commit
This commit is contained in:
84
source/webcam.h
Normal file
84
source/webcam.h
Normal file
@ -0,0 +1,84 @@
|
||||
|
||||
#ifndef __Webcam__
|
||||
#define __Webcam__
|
||||
|
||||
#include "script_squirrel/cobject/squirrel_bindings_utils.h"
|
||||
#include "script_squirrel/legacy/squirrel_binding.h"
|
||||
#include "script_squirrel/squirrel_vm.h"
|
||||
#include "math/vector.h"
|
||||
#include "core/render_data.h"
|
||||
#include "picture/pict.h"
|
||||
|
||||
#include <windows.h>
|
||||
#include <vector>
|
||||
#include "thread/thread.h"
|
||||
#include "thread/mutex.h"
|
||||
#include "platform.h"
|
||||
#include <string>
|
||||
|
||||
namespace cv{
|
||||
class VideoCapture;
|
||||
class VideoWriter;
|
||||
class Mat;
|
||||
}
|
||||
|
||||
using namespace GS::Threading;
|
||||
|
||||
struct ProcessWebcamThread : public Thread
|
||||
{
|
||||
cv::VideoCapture *InputVideo;
|
||||
cv::VideoWriter *outputVideo;
|
||||
|
||||
bool record_frame;
|
||||
bool not_finish;
|
||||
bool pause;
|
||||
|
||||
Mutex mutex_record_frame;
|
||||
Mutex mutex_not_finish;
|
||||
Mutex mutex_pause;
|
||||
|
||||
float current_frame_clock;
|
||||
|
||||
int videoIndex;
|
||||
|
||||
cv::Mat *im;
|
||||
std::string outputVideoName;
|
||||
|
||||
void Execute();
|
||||
ProcessWebcamThread(cv::VideoCapture *_InputVideo, cv::VideoWriter *_outputVideo, int width, int height, std::string _outputVideoName, int _videoIndex);
|
||||
};
|
||||
|
||||
/**
|
||||
*/
|
||||
class Webcam
|
||||
{
|
||||
public:
|
||||
Webcam();
|
||||
~Webcam();
|
||||
|
||||
bool Open(int width_, int height_);
|
||||
void Reset(bool _reset_video);
|
||||
void ResetVideo();
|
||||
uchar* SetFrame(float clock, GS::String record_path, int record_index = 0);
|
||||
void setPause(bool pause);
|
||||
void RecordFrame(float _clock);
|
||||
bool IsThreadRunning();
|
||||
void Close();
|
||||
|
||||
private:
|
||||
cv::VideoCapture *InputVideo;
|
||||
cv::VideoWriter *outputVideo;
|
||||
|
||||
int index_save_video;
|
||||
int index_replay_video;
|
||||
std::vector<float> video_times;
|
||||
cv::VideoCapture *ReplayInputVideo;
|
||||
cv::Mat* ReplayIm;
|
||||
cv::Mat* ReplayImframe;
|
||||
|
||||
int width, height;
|
||||
|
||||
ProcessWebcamThread *thread_process;
|
||||
};
|
||||
|
||||
#endif // __Webcam__
|
||||
Reference in New Issue
Block a user