27 lines
1012 B
C++
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);
|