4#include <QtCore/QMetaObject>
5#include <QtCore/QMutex>
6#include <QtCore/QObject>
7#include <QtCore/QPointer>
9#include <QtCore/QString>
10#include <QtCore/QTimer>
13class QQuickVideoOutput;
35 static QList<QGCQVideoSinkController*>
controllersOf(
const QObject* receiver);
67 void _releaseElementBinding() noexcept;
71 QMetaObject::Connection _sinkDestroyedConnection;
72 bool _bindingReleased = false;
75 mutable QMutex _stateMutex;
76 QString _negotiatedFormat;
77 QSize _negotiatedResolution;
78 quint64 _lastEmittedFrameTotal = 0;
struct _GstElement GstElement
static QList< QGCQVideoSinkController * > controllersOf(const QObject *receiver)
A receiver's owning controllers — direct children only, never a deep QObject-tree walk.
~QGCQVideoSinkController() override
void negotiationChanged()
const GstElement * element() const noexcept
QSize negotiatedResolution() const
void updateNegotiation(const QString &format, const QSize &resolution)
void setActive(bool active)
void setVideoSink(QPointer< QVideoSink > sink)
QString negotiatedFormat() const
void frameCountsChanged()
quint64 frameCount() const noexcept
static void syncActiveToWindowVisibility(QObject *receiver, QQuickVideoOutput *videoOutput)