summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-04-10 12:42:28 +0200
committerLiang Qi <liang.qi@qt.io>2019-04-10 12:42:28 +0200
commit82fdc8913483dd352ae2c326dd358fe9ff8f3f66 (patch)
tree5bc321569aa2ba0821a04b0b439edd549ded6512 /src/plugins/directshow
parentf787689e74dee63c55f2731683a4ede752fd9e44 (diff)
parentc8716f68feb5a38473cbd54972b9a9f095e9e24d (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')
-rw-r--r--src/plugins/directshow/camera/directshowcamerazoomcontrol.cpp2
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.cpp5
2 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/directshow/camera/directshowcamerazoomcontrol.cpp b/src/plugins/directshow/camera/directshowcamerazoomcontrol.cpp
index 209cb5d96..079976e15 100644
--- a/src/plugins/directshow/camera/directshowcamerazoomcontrol.cpp
+++ b/src/plugins/directshow/camera/directshowcamerazoomcontrol.cpp
@@ -176,7 +176,7 @@ void DirectShowCameraZoomControl::updateZoomValues()
}
// Check if there is a pending zoom value.
- if (!qFuzzyCompare(m_currentOpticalZoom, m_requestedOpticalZoom))
+ if (!qFuzzyCompare(m_currentOpticalZoom, m_requestedOpticalZoom) && !qFuzzyIsNull(m_requestedOpticalZoom))
opticalZoomToPrivate(m_requestedOpticalZoom);
}
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;