summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/mediaplayer
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/gstreamer/mediaplayer')
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp3
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp3
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;