diff options
Diffstat (limited to 'src/plugins/gstreamer/mediaplayer')
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp | 3 | ||||
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp index 54b31627e..0bfe76f2f 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp @@ -119,6 +119,9 @@ QMediaPlayerResourceSetInterface* QGstreamerPlayerControl::resources() const qint64 QGstreamerPlayerControl::position() const { + if (m_mediaStatus == QMediaPlayer::EndOfMedia) + return m_session->duration(); + return m_pendingSeekPosition != -1 ? m_pendingSeekPosition : m_session->position(); } diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp index cf2ec6262..cc7aef367 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp @@ -160,7 +160,8 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) } g_object_set(G_OBJECT(m_playbin), "flags", flags, NULL); - GstElement *audioSink = gst_element_factory_make("autoaudiosink", "audiosink"); + const QByteArray envAudioSink = qgetenv("QT_GSTREAMER_PLAYBIN_AUDIOSINK"); + GstElement *audioSink = gst_element_factory_make(envAudioSink.isEmpty() ? "autoaudiosink" : envAudioSink, "audiosink"); if (audioSink) { if (usePlaybinVolume()) { m_audioSink = audioSink; |