summaryrefslogtreecommitdiff
path: root/src/multimedia/platform/qplatformvideosink.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/qplatformvideosink.cpp')
-rw-r--r--src/multimedia/platform/qplatformvideosink.cpp63
1 files changed, 60 insertions, 3 deletions
diff --git a/src/multimedia/platform/qplatformvideosink.cpp b/src/multimedia/platform/qplatformvideosink.cpp
index fb63cf193..268291da2 100644
--- a/src/multimedia/platform/qplatformvideosink.cpp
+++ b/src/multimedia/platform/qplatformvideosink.cpp
@@ -5,10 +5,67 @@
QT_BEGIN_NAMESPACE
-QPlatformVideoSink::QPlatformVideoSink(QVideoSink *parent)
- : QObject(parent),
- sink(parent)
+QPlatformVideoSink::QPlatformVideoSink(QVideoSink *parent) : QObject(parent), m_sink(parent) { }
+
+QPlatformVideoSink::~QPlatformVideoSink() = default;
+
+QSize QPlatformVideoSink::nativeSize() const
+{
+ QMutexLocker locker(&m_mutex);
+ return m_nativeSize;
+}
+
+void QPlatformVideoSink::setNativeSize(QSize s)
+{
+ {
+ QMutexLocker locker(&m_mutex);
+ if (m_nativeSize == s)
+ return;
+ m_nativeSize = s;
+ }
+ emit m_sink->videoSizeChanged();
+}
+
+void QPlatformVideoSink::setVideoFrame(const QVideoFrame &frame)
+{
+ bool sizeChanged = false;
+
+ {
+ QMutexLocker locker(&m_mutex);
+ if (frame == m_currentVideoFrame)
+ return;
+ m_currentVideoFrame = frame;
+ m_currentVideoFrame.setSubtitleText(m_subtitleText);
+ sizeChanged = m_nativeSize != frame.size();
+ m_nativeSize = frame.size();
+ }
+
+ if (sizeChanged)
+ emit m_sink->videoSizeChanged();
+ emit m_sink->videoFrameChanged(frame);
+}
+
+QVideoFrame QPlatformVideoSink::currentVideoFrame() const
+{
+ QMutexLocker locker(&m_mutex);
+ return m_currentVideoFrame;
+}
+
+void QPlatformVideoSink::setSubtitleText(const QString &subtitleText)
+{
+ {
+ QMutexLocker locker(&m_mutex);
+ if (m_subtitleText == subtitleText)
+ return;
+ m_subtitleText = subtitleText;
+ }
+ emit m_sink->subtitleTextChanged(subtitleText);
+}
+
+QString QPlatformVideoSink::subtitleText() const
{
+ QMutexLocker locker(&m_mutex);
+ return m_subtitleText;
}
QT_END_NAMESPACE