first commit

This commit is contained in:
2026-06-22 11:49:35 +02:00
commit d805f2ba86
619 changed files with 126873 additions and 0 deletions

84
source/webcam.h Normal file
View 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__