diff options
Diffstat (limited to 'src/multimedia/video/qvideosink.h')
-rw-r--r-- | src/multimedia/video/qvideosink.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/multimedia/video/qvideosink.h b/src/multimedia/video/qvideosink.h new file mode 100644 index 000000000..1a2e77834 --- /dev/null +++ b/src/multimedia/video/qvideosink.h @@ -0,0 +1,57 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QABSTRACTVIDEOSINK_H +#define QABSTRACTVIDEOSINK_H + +#include <QtMultimedia/qtmultimediaglobal.h> +#include <QtCore/qobject.h> +#include <QtGui/qwindowdefs.h> + +QT_BEGIN_NAMESPACE + +class QRectF; +class QVideoFrameFormat; +class QVideoFrame; + +class QVideoSinkPrivate; +class QPlatformVideoSink; +class QRhi; + +class Q_MULTIMEDIA_EXPORT QVideoSink : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString subtitleText READ subtitleText WRITE setSubtitleText NOTIFY subtitleTextChanged) + Q_PROPERTY(QSize videoSize READ videoSize NOTIFY videoSizeChanged) +public: + QVideoSink(QObject *parent = nullptr); + ~QVideoSink(); + + QRhi *rhi() const; + void setRhi(QRhi *rhi); + + QSize videoSize() const; + + QString subtitleText() const; + void setSubtitleText(const QString &subtitle); + + void setVideoFrame(const QVideoFrame &frame); + QVideoFrame videoFrame() const; + + QPlatformVideoSink *platformVideoSink() const; +Q_SIGNALS: + void videoFrameChanged(const QVideoFrame &frame) QT6_ONLY(const); + void subtitleTextChanged(const QString &subtitleText) QT6_ONLY(const); + void videoSizeChanged(); + +private: + friend class QMediaPlayerPrivate; + friend class QMediaCaptureSessionPrivate; + void setSource(QObject *source); + + QVideoSinkPrivate *d = nullptr; +}; + +QT_END_NAMESPACE + +#endif |