4#ifndef QGSTREAMERVIDEOSINK_H
5#define QGSTREAMERVIDEOSINK_H
18#include <QtMultimedia/qvideosink.h>
19#include <QtMultimedia/private/qplatformvideosink_p.h>
20#include <QtMultimedia/private/qthreadlocalrhi_p.h>
22#include <common/qgstvideorenderersink_p.h>
23#include <common/qgstpipeline_p.h>
34 void setRhi(QRhi *rhi)
override;
38 QRhi *m_rhi =
nullptr;
50 QRhi *
rhi()
const {
return m_rhi ? m_rhi : qEnsureThreadLocalRhi(); }
76 void unrefGstContexts();
77 void updateGstContexts();
79 void renderingRhiChanged(QRhi *rhi);
87 QRhi *m_rhi =
nullptr;
88 bool m_isActive =
true;
89 bool m_sinkIsAsync =
true;
91 QGstContextHandle m_gstGlLocalContext;
92 QGstContextHandle m_gstGlDisplayContext;
94 QVideoFrame m_currentVideoFrame;
95 QString m_currentSubtitleText;
96 QSize m_currentNativeSize;
99 QMetaObject::Connection m_rhiConnection;
QGstStructureView at(int index) const
bool syncStateWithParent()
static QGstElement createFromPipelineDescription(const char *)
bool link(const QGstPad &sink) const
QGstCaps queryCaps() const
QGString streamId() const
QGstElement gstElement() const
void setRhi(QRhi *rhi) override
void setNativeSize(QSize size)
QGstreamerRelayVideoSink(QObject *parent=nullptr)
~QGstreamerRelayVideoSink()
void subtitleTextChanged(const QString &subtitleText)
void setVideoFrame(const QVideoFrame &frame)
void videoFrameChanged(const QVideoFrame &frame)
void setSubtitleText(const QString &subtitleText)
void connectPluggableVideoSink(QGstreamerPluggableVideoSink *pluggableSink)
void nativeSizeChanged(QSize size)
void disconnectPluggableVideoSink()
GstContext * gstGlDisplayContext() const
GstContext * gstGlLocalContext() const
void setVideoSink(QGstreamerRelayVideoSink *sink)
QGstreamerRelayVideoSink * gstreamerVideoSink() const
void setNativeSize(QSize)
Combined button and popup list for selecting options.
std::optional< QGstreamerMediaPlayer::TrackType > toTrackType(const QGstCaps &caps)
QT_BEGIN_NAMESPACE Q_STATIC_LOGGING_CATEGORY(lcSynthesizedIterableAccess, "qt.iterable.synthesized", QtWarningMsg)
QGstPlayMessageAdaptor(const QGstreamerMessage &m)