summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/directshow')
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.cpp3
-rw-r--r--src/plugins/directshow/player/directshowvideorenderercontrol.cpp1
-rw-r--r--src/plugins/directshow/player/directshowvideorenderercontrol.h1
3 files changed, 5 insertions, 0 deletions
diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp
index 0d44da722..aed03f9de 100644
--- a/src/plugins/directshow/player/directshowplayerservice.cpp
+++ b/src/plugins/directshow/player/directshowplayerservice.cpp
@@ -1457,6 +1457,9 @@ void DirectShowPlayerService::customEvent(QEvent *event)
if (m_playerControl->mediaStatus() == QMediaPlayer::EndOfMedia)
m_playerControl->updateStatus(QMediaPlayer::LoadedMedia);
m_playerControl->updatePosition(m_position);
+ // Emits only when seek has been performed.
+ if (m_videoRendererControl)
+ emit m_videoRendererControl->positionChanged(m_position);
} else {
QMediaService::customEvent(event);
}
diff --git a/src/plugins/directshow/player/directshowvideorenderercontrol.cpp b/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
index 88b5a51eb..bbf7cf8b9 100644
--- a/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
+++ b/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
@@ -101,6 +101,7 @@ void DirectShowVideoRendererControl::setSurface(QAbstractVideoSurface *surface)
if (!qgetenv("QT_DIRECTSHOW_NO_EVR").toInt()) {
m_filter = com_new<IBaseFilter>(clsid_EnhancedVideoRenderer);
m_evrPresenter = new EVRCustomPresenter(m_surface);
+ connect(this, &DirectShowVideoRendererControl::positionChanged, m_evrPresenter, &EVRCustomPresenter::positionChanged);
if (!m_evrPresenter->isValid() || !qt_evr_setCustomPresenter(m_filter, m_evrPresenter)) {
m_filter->Release();
m_filter = 0;
diff --git a/src/plugins/directshow/player/directshowvideorenderercontrol.h b/src/plugins/directshow/player/directshowvideorenderercontrol.h
index b2abeeaed..930f8a6b1 100644
--- a/src/plugins/directshow/player/directshowvideorenderercontrol.h
+++ b/src/plugins/directshow/player/directshowvideorenderercontrol.h
@@ -68,6 +68,7 @@ public:
Q_SIGNALS:
void filterChanged();
+ void positionChanged(qint64 position);
private:
DirectShowEventLoop *m_loop;