Files
utun2/tools/chatgui/src/call_camera_capture.h
T

27 lines
1012 B
C++

#pragma once
#include <QObject>
#include <QImage>
#include <QList>
using CallCameraDevices = QList<QPair<QString, QByteArray>>;
constexpr qint64 CallCameraMaxFrameAgeUs = 250000;
// GUI получает только собственную CPU-память. Процесс захвата завершается асинхронно.
class CallCameraCapture : public QObject {
Q_OBJECT
public:
explicit CallCameraCapture(QObject* parent = nullptr);
~CallCameraCapture() override;
void configure(bool enabled, const QByteArray& device = {}, int width = 640, int height = 480);
signals:
void devicesChanged(const CallCameraDevices& devices);
void frameReady(const QImage& image, qint64 pts, qint64 correction);
void failed(const QString& error);
private:
struct Session;
Session* m;
};
// Вызывается до обычной инициализации приложения, конфига, БД и single-instance lock.
int call_camera_worker_main(int argc, char** argv);