QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
VideoReceiver Class Referenceabstract

#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
}
 

Public Slots

virtual void start (uint32_t timeout)=0
 
virtual void stop ()=0
 
virtual void startDecoding (void *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 (void *sink)
 
void nameChanged (const QString &name)
 
void uriChanged (const QString &uri)
 
void startedChanged (bool started)
 
void lowLatencyChanged (bool lowLatency)
 
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
 
void * sink ()
 
QQuickItem * widget ()
 
QString name () const
 
QString uri () const
 
bool started () const
 
bool lowLatency () const
 
QGCVideoStreamInfovideoStreamInfo ()
 
QString recordingOutput () const
 
virtual void setSink (void *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 setVideoStreamInfo (QGCVideoStreamInfo *videoStreamInfo)
 

Static Public Member Functions

static bool isValidFileFormat (FILE_FORMAT format)
 
static bool isValidStatus (STATUS status)
 

Protected Attributes

void * _sink = nullptr
 
QQuickItem * _widget = nullptr
 
QGCVideoStreamInfo_videoStreamInfo = nullptr
 
QString _name
 
QString _uri
 
bool _started = false
 
bool _decoding = false
 
bool _recording = false
 
bool _streaming = false
 
bool _lowLatency = false
 
bool _resetVideoSink = false
 
bool _endOfStream = false
 
bool _removingDecoder = false
 
bool _removingRecorder = false
 
int _buffer = 0
 
qint64 _lastSourceFrameTime = 0
 
qint64 _lastVideoFrameTime = 0
 
QTimer _watchdogTimer
 
uint32_t _signalDepth = 0
 
uint32_t _timeout = 0
 
QString _recordingOutput
 

Detailed Description

Definition at line 11 of file VideoReceiver.h.

Member Enumeration Documentation

◆ FILE_FORMAT

Enumerator
FILE_FORMAT_MIN 
FILE_FORMAT_MKV 
FILE_FORMAT_MOV 
FILE_FORMAT_MP4 
FILE_FORMAT_MAX 

Definition at line 41 of file VideoReceiver.h.

◆ STATUS

Enumerator
STATUS_MIN 
STATUS_OK 
STATUS_FAIL 
STATUS_INVALID_STATE 
STATUS_INVALID_URL 
STATUS_NOT_IMPLEMENTED 
STATUS_MAX 

Definition at line 51 of file VideoReceiver.h.

Constructor & Destructor Documentation

◆ VideoReceiver()

VideoReceiver::VideoReceiver ( QObject *  parent = nullptr)
inlineexplicit

Definition at line 17 of file VideoReceiver.h.

Member Function Documentation

◆ decodingChanged

void VideoReceiver::decodingChanged ( bool  active)
signal

◆ isThermal()

bool VideoReceiver::isThermal ( ) const
inline

Definition at line 21 of file VideoReceiver.h.

References _name.

◆ isValidFileFormat()

static bool VideoReceiver::isValidFileFormat ( FILE_FORMAT  format)
inlinestatic

Definition at line 49 of file VideoReceiver.h.

References FILE_FORMAT_MAX, and FILE_FORMAT_MIN.

◆ isValidStatus()

static bool VideoReceiver::isValidStatus ( STATUS  status)
inlinestatic

Definition at line 61 of file VideoReceiver.h.

References STATUS_MAX, and STATUS_MIN.

◆ lowLatency()

bool VideoReceiver::lowLatency ( ) const
inline

Definition at line 28 of file VideoReceiver.h.

References _lowLatency.

Referenced by setLowLatency(), and GstVideoReceiver::start().

◆ lowLatencyChanged

void VideoReceiver::lowLatencyChanged ( bool  lowLatency)
signal

Referenced by setLowLatency().

◆ name()

QString VideoReceiver::name ( ) const
inline

Definition at line 25 of file VideoReceiver.h.

References _name.

Referenced by setName().

◆ nameChanged

void VideoReceiver::nameChanged ( const QString &  name)
signal

Referenced by setName().

◆ onStartComplete

void VideoReceiver::onStartComplete ( STATUS  status)
signal

◆ onStartDecodingComplete

void VideoReceiver::onStartDecodingComplete ( STATUS  status)
signal

◆ onStartRecordingComplete

void VideoReceiver::onStartRecordingComplete ( STATUS  status)
signal

◆ onStopComplete

void VideoReceiver::onStopComplete ( STATUS  status)
signal

◆ onStopDecodingComplete

void VideoReceiver::onStopDecodingComplete ( STATUS  status)
signal

◆ onStopRecordingComplete

void VideoReceiver::onStopRecordingComplete ( STATUS  status)
signal

◆ onTakeScreenshotComplete

void VideoReceiver::onTakeScreenshotComplete ( STATUS  status)
signal

◆ recordingChanged

void VideoReceiver::recordingChanged ( bool  active)
signal

◆ recordingOutput()

QString VideoReceiver::recordingOutput ( ) const
inline

Definition at line 30 of file VideoReceiver.h.

References _recordingOutput.

◆ recordingStarted

void VideoReceiver::recordingStarted ( const QString &  filename)
signal

◆ setLowLatency()

void VideoReceiver::setLowLatency ( bool  lowLatency)
inline

Definition at line 37 of file VideoReceiver.h.

References _lowLatency, lowLatency(), and lowLatencyChanged().

◆ setName()

void VideoReceiver::setName ( const QString &  name)
inline

Definition at line 34 of file VideoReceiver.h.

References _name, name(), and nameChanged().

◆ setSink()

virtual void VideoReceiver::setSink ( void *  sink)
inlinevirtual

Definition at line 32 of file VideoReceiver.h.

References _sink, sink(), and sinkChanged().

◆ setStarted()

void VideoReceiver::setStarted ( bool  started)
inline

Definition at line 36 of file VideoReceiver.h.

References _started, started(), and startedChanged().

◆ setUri()

void VideoReceiver::setUri ( const QString &  uri)
inline

Definition at line 35 of file VideoReceiver.h.

References _uri, uri(), and uriChanged().

◆ setVideoStreamInfo()

void VideoReceiver::setVideoStreamInfo ( QGCVideoStreamInfo videoStreamInfo)
inline

Definition at line 38 of file VideoReceiver.h.

References _videoStreamInfo, videoStreamInfo(), and videoStreamInfoChanged().

◆ setWidget()

virtual void VideoReceiver::setWidget ( QQuickItem *  widget)
inlinevirtual

Definition at line 33 of file VideoReceiver.h.

References _widget, widget(), and widgetChanged().

◆ sink()

void * VideoReceiver::sink ( )
inline

Definition at line 23 of file VideoReceiver.h.

References _sink.

Referenced by setSink(), GstVideoReceiver::startDecoding(), and QtMultimediaReceiver::startDecoding().

◆ sinkChanged

void VideoReceiver::sinkChanged ( void *  sink)
signal

Referenced by setSink().

◆ start

virtual void VideoReceiver::start ( uint32_t  timeout)
pure virtualslot

◆ startDecoding

virtual void VideoReceiver::startDecoding ( void *  sink)
pure virtualslot

◆ started()

bool VideoReceiver::started ( ) const
inline

Definition at line 27 of file VideoReceiver.h.

References _started.

Referenced by setStarted().

◆ startedChanged

void VideoReceiver::startedChanged ( bool  started)
signal

Referenced by setStarted().

◆ startRecording

virtual void VideoReceiver::startRecording ( const QString &  videoFile,
FILE_FORMAT  format 
)
pure virtualslot

◆ stop

virtual void VideoReceiver::stop ( )
pure virtualslot

◆ stopDecoding

virtual void VideoReceiver::stopDecoding ( )
pure virtualslot

◆ stopRecording

virtual void VideoReceiver::stopRecording ( )
pure virtualslot

◆ streamingChanged

void VideoReceiver::streamingChanged ( bool  active)
signal

◆ takeScreenshot

virtual void VideoReceiver::takeScreenshot ( const QString &  imageFile)
pure virtualslot

◆ timeout

◆ uri()

QString VideoReceiver::uri ( ) const
inline

Definition at line 26 of file VideoReceiver.h.

References _uri.

Referenced by setUri().

◆ uriChanged

void VideoReceiver::uriChanged ( const QString &  uri)
signal

Referenced by setUri().

◆ videoSizeChanged

void VideoReceiver::videoSizeChanged ( QSize  size)
signal

◆ videoStreamInfo()

QGCVideoStreamInfo * VideoReceiver::videoStreamInfo ( )
inline

Definition at line 29 of file VideoReceiver.h.

References _videoStreamInfo.

Referenced by setVideoStreamInfo().

◆ videoStreamInfoChanged

void VideoReceiver::videoStreamInfoChanged ( )
signal

Referenced by setVideoStreamInfo().

◆ widget()

QQuickItem * VideoReceiver::widget ( )
inline

Definition at line 24 of file VideoReceiver.h.

References _widget.

Referenced by QtMultimediaReceiver::createVideoSink(), and setWidget().

◆ widgetChanged

void VideoReceiver::widgetChanged ( QQuickItem *  widget)
signal

Referenced by setWidget().

Member Data Documentation

◆ _buffer

int VideoReceiver::_buffer = 0
protected

Definition at line 115 of file VideoReceiver.h.

Referenced by GstVideoReceiver::start().

◆ _decoding

bool VideoReceiver::_decoding = false
protected

◆ _endOfStream

bool VideoReceiver::_endOfStream = false
protected

Definition at line 108 of file VideoReceiver.h.

Referenced by GstVideoReceiver::start().

◆ _lastSourceFrameTime

qint64 VideoReceiver::_lastSourceFrameTime = 0
protected

Definition at line 116 of file VideoReceiver.h.

Referenced by GstVideoReceiver::start(), and GstVideoReceiver::stop().

◆ _lastVideoFrameTime

qint64 VideoReceiver::_lastVideoFrameTime = 0
protected

Definition at line 117 of file VideoReceiver.h.

Referenced by GstVideoReceiver::startDecoding().

◆ _lowLatency

bool VideoReceiver::_lowLatency = false
protected

Definition at line 106 of file VideoReceiver.h.

Referenced by lowLatency(), and setLowLatency().

◆ _name

QString VideoReceiver::_name
protected

Definition at line 100 of file VideoReceiver.h.

Referenced by isThermal(), name(), and setName().

◆ _recording

bool VideoReceiver::_recording = false
protected

◆ _recordingOutput

QString VideoReceiver::_recordingOutput
protected

◆ _removingDecoder

bool VideoReceiver::_removingDecoder = false
protected

◆ _removingRecorder

bool VideoReceiver::_removingRecorder = false
protected

◆ _resetVideoSink

bool VideoReceiver::_resetVideoSink = false
protected

Definition at line 107 of file VideoReceiver.h.

Referenced by GstVideoReceiver::startDecoding().

◆ _signalDepth

uint32_t VideoReceiver::_signalDepth = 0
protected

Definition at line 119 of file VideoReceiver.h.

◆ _sink

void* VideoReceiver::_sink = nullptr
protected

Definition at line 97 of file VideoReceiver.h.

Referenced by setSink(), and sink().

◆ _started

bool VideoReceiver::_started = false
protected

Definition at line 102 of file VideoReceiver.h.

Referenced by setStarted(), and started().

◆ _streaming

bool VideoReceiver::_streaming = false
protected

Definition at line 105 of file VideoReceiver.h.

Referenced by GstVideoReceiver::startDecoding(), and GstVideoReceiver::stop().

◆ _timeout

uint32_t VideoReceiver::_timeout = 0
protected

Definition at line 120 of file VideoReceiver.h.

Referenced by GstVideoReceiver::start().

◆ _uri

◆ _videoStreamInfo

QGCVideoStreamInfo* VideoReceiver::_videoStreamInfo = nullptr
protected

Definition at line 99 of file VideoReceiver.h.

Referenced by setVideoStreamInfo(), and videoStreamInfo().

◆ _watchdogTimer

QTimer VideoReceiver::_watchdogTimer
protected

Definition at line 118 of file VideoReceiver.h.

◆ _widget

QQuickItem* VideoReceiver::_widget = nullptr
protected

Definition at line 98 of file VideoReceiver.h.

Referenced by setWidget(), GstVideoReceiver::startDecoding(), and widget().


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