4#ifndef QGSTREAMERVIDEOSINK_H
5#define QGSTREAMERVIDEOSINK_H
18#include <QtMultimedia/qvideosink.h>
19#include <QtMultimedia/private/qplatformvideosink_p.h>
21#include <common/qgstvideorenderersink_p.h>
22#include <common/qgstpipeline_p.h>
33 void setRhi(QRhi *rhi)
override;
37 QRhi *m_rhi =
nullptr;
78 void unrefGstContexts();
79 void updateGstContexts(QRhi *rhi);
87 QRhi *m_rhi =
nullptr;
88 bool m_isActive =
true;
89 bool m_sinkIsAsync =
true;
91 Qt::HANDLE m_eglDisplay =
nullptr;
92 QFunctionPointer m_eglImageTargetTexture2D =
nullptr;
94 QGstContextHandle m_gstGlLocalContext;
95 QGstContextHandle m_gstGlDisplayContext;
97 QVideoFrame m_currentVideoFrame;
98 QString m_currentSubtitleText;
99 QSize m_currentNativeSize;
QGstStructureView at(int index) const
bool syncStateWithParent()
static QGstElement createFromPipelineDescription(const char *)
bool link(const QGstPad &sink) const
QGstCaps queryCaps() const
QGstElement gstElement() const
void setRhi(QRhi *rhi) override
void setNativeSize(QSize size)
QGstreamerRelayVideoSink(QObject *parent=nullptr)
~QGstreamerRelayVideoSink()
QFunctionPointer eglImageTargetTexture2D() const
Qt::HANDLE eglDisplay() const
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)
Q_STATIC_LOGGING_CATEGORY(lcAccessibilityCore, "qt.accessibility.core")