diff options
author | Liang Qi <liang.qi@qt.io> | 2019-04-10 12:42:28 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2019-04-10 12:42:28 +0200 |
commit | 82fdc8913483dd352ae2c326dd358fe9ff8f3f66 (patch) | |
tree | 5bc321569aa2ba0821a04b0b439edd549ded6512 /src/plugins/directshow/player | |
parent | f787689e74dee63c55f2731683a4ede752fd9e44 (diff) | |
parent | c8716f68feb5a38473cbd54972b9a9f095e9e24d (diff) |
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
tests/auto/integration/qdeclarativevideooutput/tst_qdeclarativevideooutput.cpp
Done-with: Val Doroshchuk <valentyn.doroshchuk@qt.io>
Change-Id: I745dd948c1e98180115f85c17bef802351bbdb6b
Diffstat (limited to 'src/plugins/directshow/player')
-rw-r--r-- | src/plugins/directshow/player/directshowplayerservice.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp index d48350fa2..3f7346227 100644 --- a/src/plugins/directshow/player/directshowplayerservice.cpp +++ b/src/plugins/directshow/player/directshowplayerservice.cpp @@ -945,7 +945,6 @@ void DirectShowPlayerService::pause() if (m_executedTasks & Render) { if (m_executedTasks & Stop) { - m_atEnd = false; if (m_seekPosition == -1) { m_dontCacheNextSeekResult = true; m_seekPosition = 0; @@ -971,7 +970,8 @@ void DirectShowPlayerService::doPause(QMutexLocker *locker) control->Release(); if (SUCCEEDED(hr)) { - if (IMediaSeeking *seeking = com_cast<IMediaSeeking>(m_graph, IID_IMediaSeeking)) { + IMediaSeeking *seeking = com_cast<IMediaSeeking>(m_graph, IID_IMediaSeeking); + if (!m_atEnd && seeking) { LONGLONG position = 0; seeking->GetCurrentPosition(&position); @@ -980,6 +980,7 @@ void DirectShowPlayerService::doPause(QMutexLocker *locker) m_position = position / qt_directShowTimeScale; } else { m_position = 0; + m_atEnd = false; } m_executedTasks |= Pause; |