summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp')
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
index d3d582332..7fb5599c2 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
@@ -103,6 +103,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
m_lastPosition(0),
m_duration(-1),
m_durationQueries(0),
+ m_displayPrerolledFrame(true),
m_sourceType(UnknownSrc),
m_everPlayed(false),
m_isLiveSource(false)
@@ -536,6 +537,11 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput)
linked = gst_element_link_many(m_videoIdentity, m_colorSpace, m_videoSink, NULL);
}
+ if (g_object_class_find_property(G_OBJECT_GET_CLASS(m_videoSink), "show-preroll-frame") != 0) {
+ gboolean value = m_displayPrerolledFrame;
+ g_object_set(G_OBJECT(m_videoSink), "show-preroll-frame", value, NULL);
+ }
+
switch (m_pendingState) {
case QMediaPlayer::PausedState:
gst_element_set_state(m_playbin, GST_STATE_PAUSED);
@@ -1596,3 +1602,17 @@ void QGstreamerPlayerSession::processInvalidMedia(QMediaPlayer::Error errorCode,
stop();
emit error(int(errorCode), errorString);
}
+
+void QGstreamerPlayerSession::showPrerollFrames(bool enabled)
+{
+#ifdef DEBUG_PLAYBIN
+ qDebug() << Q_FUNC_INFO << enabled;
+#endif
+ if (enabled != m_displayPrerolledFrame && m_videoSink &&
+ g_object_class_find_property(G_OBJECT_GET_CLASS(m_videoSink), "show-preroll-frame") != 0) {
+
+ gboolean value = enabled;
+ g_object_set(G_OBJECT(m_videoSink), "show-preroll-frame", value, NULL);
+ m_displayPrerolledFrame = enabled;
+ }
+}