|
QGroundControl
Ground Control Station for MAVLink Drones
|
#include <VideoReceiver.h>
Inheritance diagram for VideoReceiver:
Collaboration diagram for VideoReceiver:Public Types | |
| 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. | |
Public Slots | |
| 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 |
Signals | |
| 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) |
Public Member Functions | |
| 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 |
| QGCVideoStreamInfo * | videoStreamInfo () |
| 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 | isValidFileFormat (FILE_FORMAT format) |
| static bool | isValidStatus (STATUS status) |
Protected Attributes | |
| 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 |
Definition at line 13 of file VideoReceiver.h.
| using VideoReceiver::VideoSinkHandle = void * |
Backend-specific decoded-frame sink.
Definition at line 20 of file VideoReceiver.h.
| Enumerator | |
|---|---|
| FILE_FORMAT_MIN | |
| FILE_FORMAT_MKV | |
| FILE_FORMAT_MOV | |
| FILE_FORMAT_MP4 | |
| FILE_FORMAT_MAX | |
Definition at line 50 of file VideoReceiver.h.
| Enumerator | |
|---|---|
| STATUS_MIN | |
| STATUS_OK | |
| STATUS_FAIL | |
| STATUS_INVALID_STATE | |
| STATUS_INVALID_URL | |
| STATUS_NOT_IMPLEMENTED | |
| STATUS_MAX | |
Definition at line 60 of file VideoReceiver.h.
|
inlineexplicit |
Definition at line 22 of file VideoReceiver.h.
|
inline |
Definition at line 35 of file VideoReceiver.h.
References _autoReconnect.
|
signal |
Referenced by setAutoReconnect().
|
signal |
Referenced by QtMultimediaReceiver::QtMultimediaReceiver().
|
inline |
Definition at line 26 of file VideoReceiver.h.
References _name.
Referenced by VideoManager::aspectRatio(), VideoManager::autoStreamConfigured(), VideoManager::hasThermal(), VideoManager::hfov(), VideoManager::thermalAspectRatio(), and VideoManager::thermalHfov().
|
inlinestatic |
Definition at line 58 of file VideoReceiver.h.
References FILE_FORMAT_MAX, and FILE_FORMAT_MIN.
Referenced by VideoManager::startRecording().
|
inlinestatic |
Definition at line 70 of file VideoReceiver.h.
References STATUS_MAX, and STATUS_MIN.
|
inline |
Definition at line 33 of file VideoReceiver.h.
References _lowLatency.
Referenced by setLowLatency(), and GstVideoReceiver::start().
|
signal |
Referenced by setLowLatency().
|
inline |
Definition at line 30 of file VideoReceiver.h.
References _name.
Referenced by setName(), and VideoManager::startRecording().
|
signal |
Referenced by setName().
|
signal |
Referenced by GstVideoReceiver::start(), and QtMultimediaReceiver::start().
|
signal |
|
signal |
Referenced by GstVideoReceiver::startRecording(), and QtMultimediaReceiver::startRecording().
|
signal |
Referenced by GstVideoReceiver::stop(), and QtMultimediaReceiver::stop().
|
signal |
Referenced by GstVideoReceiver::stopDecoding(), and QtMultimediaReceiver::stopDecoding().
|
signal |
Referenced by GstVideoReceiver::stopRecording(), and QtMultimediaReceiver::stopRecording().
|
signal |
Referenced by GstVideoReceiver::takeScreenshot(), and QtMultimediaReceiver::takeScreenshot().
|
signal |
Referenced by GstVideoReceiver::startRecording().
|
inline |
Definition at line 37 of file VideoReceiver.h.
References _recordingOutput.
|
signal |
|
inline |
Definition at line 34 of file VideoReceiver.h.
References _rtpJitterLatencyMs.
|
signal |
Referenced by setRtpJitterLatencyMs().
|
inline |
Definition at line 46 of file VideoReceiver.h.
References _autoReconnect, and autoReconnectChanged().
|
inline |
Definition at line 44 of file VideoReceiver.h.
References _lowLatency, lowLatency(), and lowLatencyChanged().
|
inline |
Definition at line 41 of file VideoReceiver.h.
References _name, name(), and nameChanged().
|
inline |
Definition at line 45 of file VideoReceiver.h.
References _rtpJitterLatencyMs, and rtpJitterLatencyMsChanged().
|
inlinevirtual |
Definition at line 39 of file VideoReceiver.h.
References _sink, sink(), and sinkChanged().
|
inline |
Definition at line 43 of file VideoReceiver.h.
References _started, started(), and startedChanged().
|
inline |
Definition at line 42 of file VideoReceiver.h.
References _uri, uri(), and uriChanged().
|
inline |
Definition at line 47 of file VideoReceiver.h.
References _videoStreamInfo, videoStreamInfo(), and videoStreamInfoChanged().
|
inlinevirtual |
Definition at line 40 of file VideoReceiver.h.
References _widget, widget(), and widgetChanged().
|
inline |
Definition at line 28 of file VideoReceiver.h.
References _sink.
Referenced by VideoManager::cleanup(), setSink(), GstVideoReceiver::startDecoding(), and QtMultimediaReceiver::startDecoding().
|
signal |
Referenced by setSink().
|
pure virtualslot |
|
pure virtualslot |
|
inline |
Definition at line 32 of file VideoReceiver.h.
References _started.
Referenced by setStarted(), and VideoManager::startRecording().
|
signal |
Referenced by setStarted().
|
pure virtualslot |
Referenced by VideoManager::startRecording().
|
pure virtualslot |
|
pure virtualslot |
|
pure virtualslot |
Referenced by VideoManager::stopRecording().
|
signal |
Referenced by QtMultimediaReceiver::QtMultimediaReceiver(), and GstVideoReceiver::stop().
|
pure virtualslot |
Referenced by VideoManager::grabImage().
|
signal |
|
inline |
|
signal |
Referenced by setUri().
|
signal |
Referenced by QtMultimediaReceiver::startDecoding().
|
inline |
Definition at line 36 of file VideoReceiver.h.
References _videoStreamInfo.
Referenced by VideoManager::aspectRatio(), VideoManager::autoStreamConfigured(), VideoManager::hasThermal(), VideoManager::hfov(), setVideoStreamInfo(), VideoManager::thermalAspectRatio(), and VideoManager::thermalHfov().
|
signal |
Referenced by setVideoStreamInfo().
|
inline |
Definition at line 29 of file VideoReceiver.h.
References _widget.
Referenced by QtMultimediaReceiver::createVideoSink(), and setWidget().
|
signal |
Referenced by setWidget().
|
protected |
RTSP/UDP auto-reconnect with exponential backoff on watchdog/error.
Definition at line 121 of file VideoReceiver.h.
Referenced by autoReconnect(), and setAutoReconnect().
|
protected |
Definition at line 130 of file VideoReceiver.h.
Referenced by GstVideoReceiver::start().
|
protected |
Definition at line 115 of file VideoReceiver.h.
Referenced by GstVideoReceiver::startDecoding().
|
protected |
Definition at line 123 of file VideoReceiver.h.
Referenced by GstVideoReceiver::start().
|
protected |
Definition at line 132 of file VideoReceiver.h.
Referenced by GstVideoReceiver::start(), and GstVideoReceiver::stop().
|
protected |
Definition at line 133 of file VideoReceiver.h.
Referenced by GstVideoReceiver::startDecoding().
|
protected |
Definition at line 118 of file VideoReceiver.h.
Referenced by lowLatency(), and setLowLatency().
|
protected |
Definition at line 111 of file VideoReceiver.h.
Referenced by isThermal(), name(), and setName().
|
protected |
Definition at line 116 of file VideoReceiver.h.
Referenced by GstVideoReceiver::startRecording(), and GstVideoReceiver::stopRecording().
|
protected |
Definition at line 137 of file VideoReceiver.h.
Referenced by recordingOutput(), GstVideoReceiver::startRecording(), and QtMultimediaReceiver::startRecording().
|
protected |
Definition at line 124 of file VideoReceiver.h.
Referenced by GstVideoReceiver::startDecoding(), and GstVideoReceiver::stopDecoding().
|
protected |
Definition at line 125 of file VideoReceiver.h.
Referenced by GstVideoReceiver::startRecording(), and GstVideoReceiver::stopRecording().
|
protected |
Definition at line 122 of file VideoReceiver.h.
Referenced by GstVideoReceiver::startDecoding().
|
protected |
Definition at line 119 of file VideoReceiver.h.
Referenced by rtpJitterLatencyMs(), setRtpJitterLatencyMs(), and GstVideoReceiver::start().
|
protected |
Definition at line 108 of file VideoReceiver.h.
|
protected |
Definition at line 113 of file VideoReceiver.h.
Referenced by setStarted(), and started().
|
protected |
Definition at line 134 of file VideoReceiver.h.
|
protected |
Definition at line 117 of file VideoReceiver.h.
Referenced by GstVideoReceiver::startDecoding(), and GstVideoReceiver::stop().
|
protected |
Definition at line 136 of file VideoReceiver.h.
Referenced by GstVideoReceiver::start().
|
protected |
Definition at line 112 of file VideoReceiver.h.
Referenced by setUri(), GstVideoReceiver::start(), QtMultimediaReceiver::start(), GstVideoReceiver::startDecoding(), GstVideoReceiver::startRecording(), GstVideoReceiver::stop(), GstVideoReceiver::stopDecoding(), GstVideoReceiver::stopRecording(), GstVideoReceiver::takeScreenshot(), and uri().
|
protected |
Definition at line 110 of file VideoReceiver.h.
Referenced by setVideoStreamInfo(), and videoStreamInfo().
|
protected |
Definition at line 135 of file VideoReceiver.h.
Referenced by GstVideoReceiver::GstVideoReceiver(), GstVideoReceiver::start(), and GstVideoReceiver::stop().
|
protected |
Definition at line 109 of file VideoReceiver.h.
Referenced by setWidget(), GstVideoReceiver::startDecoding(), and widget().