You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
526 B
30 lines
526 B
3 months ago
|
#pragma once
|
||
|
|
||
|
#include <QImage>
|
||
|
#include <QObject>
|
||
|
#include <QQueue>
|
||
|
#include <selfdrive/ui/ui.h>
|
||
|
#include <selfdrive/ui/qt/qt_window.h>
|
||
|
|
||
|
#include "ffmpeg.h"
|
||
|
|
||
|
class Recorder : public QObject {
|
||
|
Q_OBJECT
|
||
|
|
||
|
public:
|
||
3 months ago
|
Recorder(QObject *parent = nullptr);
|
||
3 months ago
|
~Recorder() override;
|
||
|
|
||
|
public slots:
|
||
|
void saveFrame(QImage *frame);
|
||
|
void stop();
|
||
|
|
||
|
private:
|
||
3 months ago
|
FFmpegEncoder *encoder;
|
||
3 months ago
|
QQueue<QImage *> frameQueue;
|
||
|
QMutex mutex;
|
||
|
bool isProcessing = false;
|
||
|
bool keepRunning = true;
|
||
|
void processQueue();
|
||
|
};
|