summaryrefslogtreecommitdiffstats
path: root/src/gsttools/qgstreamervideowidget.cpp
diff options
context:
space:
mode:
authorVaL Doroshchuk <valentyn.doroshchuk@qt.io>2018-06-26 16:18:35 +0200
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2018-08-30 10:13:35 +0000
commit35ace9e289dcaada5e0828a59ca7dfee78a6342c (patch)
tree3132cb84abb0df2f347e47edb2b196ec0727d218 /src/gsttools/qgstreamervideowidget.cpp
parent11b90699d2f355f6223a21a9e8491963903cb635 (diff)
Gstreamer: Introduce custom pipeline
Added an ability to define custom pipeline. Since new pipeline is used, playbin features will not work. Registered "qtvideosink" gstreamer element to be used in pipelines. In case if there is a need to render to QML VideoOutput element. I.e. if a pipeline is "videotestsrc ! qtvideosink" then QGstVideoRendererSink will be used as a sink and rendering will be done by one of QSGVideoNode's. In this case there is a need to create a pipeline after video surface is ready. Also added an ability to override default video sink and define custom one instead. QGstreamerVideoRendererInterface::setVideoSink() provides functionality to override default one. QGstreamerPlayerSession::rendererChanged() can be used to check if the renderer is ready to create a pipeline or set custom video sink. Task-number: QTBUG-39327 Change-Id: I635d3a07fb9a5dcf30ee63284a849b0ad3438536 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Diffstat (limited to 'src/gsttools/qgstreamervideowidget.cpp')
-rw-r--r--src/gsttools/qgstreamervideowidget.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp
index 792df4243..633f39fa2 100644
--- a/src/gsttools/qgstreamervideowidget.cpp
+++ b/src/gsttools/qgstreamervideowidget.cpp
@@ -135,6 +135,11 @@ GstElement *QGstreamerVideoWidgetControl::videoSink()
return m_videoOverlay.videoSink();
}
+void QGstreamerVideoWidgetControl::setVideoSink(GstElement *sink)
+{
+ m_videoOverlay.setVideoSink(sink);
+}
+
void QGstreamerVideoWidgetControl::onOverlayActiveChanged()
{
updateWidgetAttributes();