diff options
Diffstat (limited to 'src/multimedia/platform/gstreamer/common/qgstreamervideosink.cpp')
-rw-r--r-- | src/multimedia/platform/gstreamer/common/qgstreamervideosink.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/multimedia/platform/gstreamer/common/qgstreamervideosink.cpp b/src/multimedia/platform/gstreamer/common/qgstreamervideosink.cpp index d8a65a771..75a548225 100644 --- a/src/multimedia/platform/gstreamer/common/qgstreamervideosink.cpp +++ b/src/multimedia/platform/gstreamer/common/qgstreamervideosink.cpp @@ -40,6 +40,7 @@ #include "qgstreamervideosink_p.h" #include "qgstreamervideorenderer_p.h" #include <private/qgstutils_p.h> +#include <QtGui/private/qrhi_p.h> #include <QtCore/qdebug.h> @@ -57,6 +58,7 @@ QGstreamerVideoSink::QGstreamerVideoSink(QVideoSink *parent) QGstreamerVideoSink::~QGstreamerVideoSink() { delete m_videoOverlay; + delete m_videoRenderer; } QVideoSink::GraphicsType QGstreamerVideoSink::graphicsType() const @@ -98,6 +100,16 @@ void QGstreamerVideoSink::setWinId(WId id) m_videoOverlay->setWindowHandle(m_windowId); } +void QGstreamerVideoSink::setRhi(QRhi *rhi) +{ + if (rhi && rhi->backend() != QRhi::OpenGLES2) + rhi = nullptr; + if (m_rhi == rhi) + return; + + m_rhi = rhi; +} + bool QGstreamerVideoSink::processSyncMessage(const QGstreamerMessage &message) { return m_videoOverlay->processSyncMessage(message); @@ -205,7 +217,4 @@ void QGstreamerVideoSink::createOverlay() void QGstreamerVideoSink::createRenderer() { m_videoRenderer = new QGstreamerVideoRenderer(sink); - - qCDebug(qLcMediaVideoSink) << Q_FUNC_INFO; - connect(m_videoRenderer, SIGNAL(sinkChanged()), this, SLOT(sinkChanged())); } |