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 void *createVideoSink(QQuickItem *widget, QObject *parent = nullptr);
26 static void releaseVideoSink(void *sink);
27 static VideoReceiver *createVideoReceiver(QObject *parent);
28
29public slots:
30 void start(uint32_t timeout) override;
31 void stop() override;
32 void startDecoding(void *sink) override;
33 void stopDecoding() override;
34 void startRecording(const QString &videoFile, VideoReceiver::FILE_FORMAT format) override;
35 void stopRecording() override;
36 void takeScreenshot(const QString &imageFile) override;
37
38protected:
40 QMediaPlayer *_mediaPlayer = nullptr;
41 QVideoSink *_videoSink = nullptr;
42 QMediaCaptureSession *_captureSession = nullptr;
43 QMediaRecorder *_mediaRecorder = nullptr;
44 QMetaObject::Connection _videoSizeUpdater;
45 QMetaObject::Connection _videoFrameUpdater;
46 QRhi *_rhi = nullptr;
47 const QIODevice *_streamDevice;
48 QQuickVideoOutput *_videoOutput = nullptr;
49};
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()
VideoSinkHandle sink() const