summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-01-06 20:21:19 +0100
committerLiang Qi <liang.qi@qt.io>2018-01-06 20:21:19 +0100
commit82621148de82d63a562163a72598e15ed98797a8 (patch)
tree030d345ad4a4ae612995949bbbeec66b36e69854 /src/plugins/gstreamer
parent2fc515ea1eaa0f7ffb56c4dadee560095c3374bd (diff)
parent7a3b8907060123fe5d487d4c9ba3a1e222f468bb (diff)
Merge remote-tracking branch 'origin/5.10' into dev
Conflicts: .qmake.conf Change-Id: I5acdc7e0bd3729b80522dfff0f388cf2507fb111
Diffstat (limited to 'src/plugins/gstreamer')
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinsession.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
index 4941c6ef6..cfac61c01 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
@@ -466,6 +466,9 @@ GstElement *CameraBinSession::buildCameraSource()
#if CAMERABIN_DEBUG
qDebug() << Q_FUNC_INFO;
#endif
+ if (m_inputDevice.isEmpty())
+ return nullptr;
+
if (!m_inputDeviceHasChanged)
return m_cameraSrc;
@@ -482,7 +485,7 @@ GstElement *CameraBinSession::buildCameraSource()
if (!m_cameraSrc)
m_cameraSrc = camSrc;
- if (m_cameraSrc && !m_inputDevice.isEmpty()) {
+ if (m_cameraSrc) {
#if CAMERABIN_DEBUG
qDebug() << "set camera device" << m_inputDevice;
#endif
@@ -729,18 +732,21 @@ void CameraBinSession::setState(QCamera::State newState)
if (newState == m_pendingState)
return;
- m_pendingState = newState;
- emit pendingStateChanged(m_pendingState);
+ emit pendingStateChanged(newState);
#if CAMERABIN_DEBUG
qDebug() << Q_FUNC_INFO << newState;
#endif
setStateHelper(newState);
+ m_pendingState = newState;
}
void CameraBinSession::setStateHelper(QCamera::State state)
{
+ if (state == m_pendingState)
+ return;
+
switch (state) {
case QCamera::UnloadedState:
unload();