diff options
Diffstat (limited to 'src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp')
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp | 20 |
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; + } +} |