#pragma once #include #include #include #include #include #include "ffmpeg.h" class Recorder : public QObject { Q_OBJECT public: Recorder(const std::string& outputFile, QObject *parent = nullptr); ~Recorder() override; public slots: void saveFrame(const std::shared_ptr &frame); private: FFmpegEncoder *encoder; QQueue> frameQueue; QMutex mutex; bool isProcessing = false; bool keepRunning = true; void processQueue(); };