QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
UVCReceiver Class Reference

#include <UVCReceiver.h>

+ Inheritance diagram for UVCReceiver:
+ Collaboration diagram for UVCReceiver:

Public Slots

Q_INVOKABLE void adjustAspectRatio ()
 
- Public Slots inherited from QtMultimediaReceiver
void start (uint32_t timeout) override
 
void stop () override
 
void startDecoding (void *sink) override
 
void stopDecoding () override
 
void startRecording (const QString &videoFile, VideoReceiver::FILE_FORMAT format) override
 
void stopRecording () override
 
void takeScreenshot (const QString &imageFile) override
 
- Public Slots inherited from VideoReceiver
virtual void start (uint32_t timeout)=0
 
virtual void stop ()=0
 
virtual void startDecoding (VideoSinkHandle sink)=0
 
virtual void stopDecoding ()=0
 
virtual void startRecording (const QString &videoFile, FILE_FORMAT format)=0
 
virtual void stopRecording ()=0
 
virtual void takeScreenshot (const QString &imageFile)=0
 

Public Member Functions

 UVCReceiver (QObject *parent=nullptr)
 
 ~UVCReceiver ()
 
- Public Member Functions inherited from QtMultimediaReceiver
 QtMultimediaReceiver (QObject *parent=nullptr)
 
virtual ~QtMultimediaReceiver ()
 
- Public Member Functions inherited from VideoReceiver
 VideoReceiver (QObject *parent=nullptr)
 
bool isThermal () const
 
VideoSinkHandle sink () const
 
QQuickItem * widget ()
 
QString name () const
 
QString uri () const
 
bool started () const
 
bool lowLatency () const
 
int rtpJitterLatencyMs () const
 
bool autoReconnect () const
 
QGCVideoStreamInfovideoStreamInfo ()
 
QString recordingOutput () const
 
virtual void setSink (VideoSinkHandle sink)
 
virtual void setWidget (QQuickItem *widget)
 
void setName (const QString &name)
 
void setUri (const QString &uri)
 
void setStarted (bool started)
 
void setLowLatency (bool lowLatency)
 
void setRtpJitterLatencyMs (int ms)
 
void setAutoReconnect (bool enabled)
 
void setVideoStreamInfo (QGCVideoStreamInfo *videoStreamInfo)
 

Static Public Member Functions

static bool enabled ()
 
static QCameraDevice findCameraDevice (const QString &cameraId)
 
static void checkPermission ()
 
static QString getSourceId ()
 
static bool deviceExists (const QString &device)
 
static QStringList getDeviceNameList ()
 
- Static Public Member Functions inherited from QtMultimediaReceiver
static void * createVideoSink (QQuickItem *widget, QObject *parent=nullptr)
 
static void releaseVideoSink (void *sink)
 
static VideoReceivercreateVideoReceiver (QObject *parent)
 
- Static Public Member Functions inherited from VideoReceiver
static bool isValidFileFormat (FILE_FORMAT format)
 
static bool isValidStatus (STATUS status)
 

Additional Inherited Members

- Public Types inherited from VideoReceiver
enum  FILE_FORMAT {
  FILE_FORMAT_MIN = 0 , FILE_FORMAT_MKV = FILE_FORMAT_MIN , FILE_FORMAT_MOV , FILE_FORMAT_MP4 ,
  FILE_FORMAT_MAX = FILE_FORMAT_MP4
}
 
enum  STATUS {
  STATUS_MIN = 0 , STATUS_OK = STATUS_MIN , STATUS_FAIL , STATUS_INVALID_STATE ,
  STATUS_INVALID_URL , STATUS_NOT_IMPLEMENTED , STATUS_MAX = STATUS_NOT_IMPLEMENTED
}
 
using VideoSinkHandle = void *
 Backend-specific decoded-frame sink.
 
- Signals inherited from VideoReceiver
void timeout ()
 
void streamingChanged (bool active)
 
void decodingChanged (bool active)
 
void recordingChanged (bool active)
 
void recordingStarted (const QString &filename)
 
void videoSizeChanged (QSize size)
 
void sinkChanged (VideoSinkHandle sink)
 
void nameChanged (const QString &name)
 
void uriChanged (const QString &uri)
 
void startedChanged (bool started)
 
void lowLatencyChanged (bool lowLatency)
 
void rtpJitterLatencyMsChanged (int ms)
 
void autoReconnectChanged (bool enabled)
 
void videoStreamInfoChanged ()
 
void widgetChanged (QQuickItem *widget)
 
void onStartComplete (STATUS status)
 
void onStopComplete (STATUS status)
 
void onStartDecodingComplete (STATUS status)
 
void onStopDecodingComplete (STATUS status)
 
void onStartRecordingComplete (STATUS status)
 
void onStopRecordingComplete (STATUS status)
 
void onTakeScreenshotComplete (STATUS status)
 
- Protected Attributes inherited from QtMultimediaReceiver
QTimer _frameTimer
 
QMediaPlayer * _mediaPlayer = nullptr
 
QVideoSink * _videoSink = nullptr
 
QMediaCaptureSession * _captureSession = nullptr
 
QMediaRecorder * _mediaRecorder = nullptr
 
QMetaObject::Connection _videoSizeUpdater
 
QMetaObject::Connection _videoFrameUpdater
 
QRhi * _rhi = nullptr
 
const QIODevice * _streamDevice
 
QQuickVideoOutput * _videoOutput = nullptr
 
- Protected Attributes inherited from VideoReceiver
VideoSinkHandle _sink = nullptr
 
QQuickItem * _widget = nullptr
 
QGCVideoStreamInfo_videoStreamInfo = nullptr
 
QString _name
 
QString _uri
 
bool _started = false
 
std::atomic< bool > _decoding = false
 
bool _recording = false
 
bool _streaming = false
 
bool _lowLatency = false
 
int _rtpJitterLatencyMs = 80
 
std::atomic< bool > _autoReconnect = true
 RTSP/UDP auto-reconnect with exponential backoff on watchdog/error.
 
bool _resetVideoSink = false
 
bool _endOfStream = false
 
bool _removingDecoder = false
 
bool _removingRecorder = false
 
int _buffer = 0
 
std::atomic< qint64 > _lastSourceFrameTime = 0
 
std::atomic< qint64 > _lastVideoFrameTime = 0
 
int _statsTickCounter = 0
 
QTimer _watchdogTimer
 
uint32_t _timeout = 0
 
QString _recordingOutput
 

Detailed Description

Definition at line 12 of file UVCReceiver.h.

Constructor & Destructor Documentation

◆ UVCReceiver()

UVCReceiver::UVCReceiver ( QObject *  parent = nullptr)
explicit

Definition at line 20 of file UVCReceiver.cc.

◆ ~UVCReceiver()

UVCReceiver::~UVCReceiver ( )

Definition at line 39 of file UVCReceiver.cc.

Member Function Documentation

◆ adjustAspectRatio

void UVCReceiver::adjustAspectRatio ( )
slot

Definition at line 49 of file UVCReceiver.cc.

References QtMultimediaReceiver::_videoOutput.

◆ checkPermission()

void UVCReceiver::checkPermission ( )
static

Definition at line 82 of file UVCReceiver.cc.

References qApp, and qgcApp.

◆ deviceExists()

bool UVCReceiver::deviceExists ( const QString &  device)
static

Definition at line 107 of file UVCReceiver.cc.

References findCameraDevice().

Referenced by VideoSettings::streamConfigured().

◆ enabled()

bool UVCReceiver::enabled ( )
static

Definition at line 44 of file UVCReceiver.cc.

Referenced by VideoManager::isUvc(), and VideoSettings::streamConfigured().

◆ findCameraDevice()

QCameraDevice UVCReceiver::findCameraDevice ( const QString &  cameraId)
static

Definition at line 70 of file UVCReceiver.cc.

Referenced by deviceExists(), and getSourceId().

◆ getDeviceNameList()

QStringList UVCReceiver::getDeviceNameList ( )
static

Definition at line 112 of file UVCReceiver.cc.

Referenced by DECLARE_SETTINGGROUP().

◆ getSourceId()

QString UVCReceiver::getSourceId ( )
static

The documentation for this class was generated from the following files: