QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QtMultimediaReceiver.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QMetaObject>
4#include <QtCore/QString>
5#include <QtCore/QTimer>
6
7#include "VideoReceiver.h"
8
9class QMediaPlayer;
10class QVideoSink;
11class QMediaCaptureSession;
12class QMediaRecorder;
13class QRhi;
14class QQuickItem;
15class QQuickVideoOutput;
16
18{
19 Q_OBJECT
20
21public:
22 explicit QtMultimediaReceiver(QObject *parent = nullptr);
23 virtual ~QtMultimediaReceiver();
24
25 static bool enabled();
26 static void *createVideoSink(QQuickItem *widget, QObject *parent = nullptr);
27 static void releaseVideoSink(void *sink);
28 static VideoReceiver *createVideoReceiver(QObject *parent);
29
30public slots:
31 void start(uint32_t timeout) override;
32 void stop() override;
33 void startDecoding(void *sink) override;
34 void stopDecoding() override;
35 void startRecording(const QString &videoFile, VideoReceiver::FILE_FORMAT format) override;
36 void stopRecording() override;
37 void takeScreenshot(const QString &imageFile) override;
38
39protected:
41 QMediaPlayer *_mediaPlayer = nullptr;
42 QVideoSink *_videoSink = nullptr;
43 QMediaCaptureSession *_captureSession = nullptr;
44 QMediaRecorder *_mediaRecorder = nullptr;
45 QMetaObject::Connection _videoSizeUpdater;
46 QMetaObject::Connection _videoFrameUpdater;
47 QRhi *_rhi = nullptr;
48 const QIODevice *_streamDevice;
49 QQuickVideoOutput *_videoOutput = nullptr;
50};
static VideoReceiver * createVideoReceiver(QObject *parent)
QMetaObject::Connection _videoSizeUpdater
QMetaObject::Connection _videoFrameUpdater
void takeScreenshot(const QString &imageFile) override
QQuickVideoOutput * _videoOutput
void startDecoding(void *sink) override
QMediaCaptureSession * _captureSession
void start(uint32_t timeout) override
static void releaseVideoSink(void *sink)
void startRecording(const QString &videoFile, VideoReceiver::FILE_FORMAT format) override
QMediaRecorder * _mediaRecorder
const QIODevice * _streamDevice
static void * createVideoSink(QQuickItem *widget, QObject *parent=nullptr)
QQuickItem * widget()