diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2010-08-04 15:59:35 +1000 |
---|---|---|
committer | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2010-08-04 16:14:18 +1000 |
commit | 57a6a6ec8035d8c039203f09b373341d200f8811 (patch) | |
tree | e9ba682f8a84726f953f6d20c4286f6aab87b893 /plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp | |
parent | df1f56c03284a556b118d81cea951b1ac6badae6 (diff) |
CameraBin backend: Don't reload the pipeline more than necessary.
Diffstat (limited to 'plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp')
-rw-r--r-- | plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp index ba65147a1d..9b70d1ac69 100644 --- a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp +++ b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp @@ -90,8 +90,10 @@ QCamera::CaptureMode CameraBinControl::captureMode() const void CameraBinControl::setCaptureMode(QCamera::CaptureMode mode) { - m_session->setCaptureMode(mode); - reloadLater(); + if (m_session->captureMode() != mode) { + m_session->setCaptureMode(mode); + reloadLater(); + } } void CameraBinControl::setState(QCamera::State state) @@ -112,7 +114,6 @@ QCamera::State CameraBinControl::state() const void CameraBinControl::updateStatus() { QCamera::State sessionState = m_session->state(); - m_state = state(); QCamera::Status oldStatus = m_status; switch (m_state) { @@ -140,7 +141,9 @@ void CameraBinControl::updateStatus() } if (m_status != oldStatus) { - //qDebug() << "Camera status changed" << m_status; +#ifdef CAMEABIN_DEBUG + qDebug() << "Camera status changed" << m_status; +#endif emit statusChanged(m_status); } @@ -148,7 +151,9 @@ void CameraBinControl::updateStatus() void CameraBinControl::reloadLater() { - //qDebug() << "reload pipeline requested"; +#ifdef CAMEABIN_DEBUG + qDebug() << "reload pipeline requested"; +#endif if (!m_reloadPending && m_state == QCamera::ActiveState) { m_reloadPending = true; QMetaObject::invokeMethod(this, "reloadPipeline", Qt::QueuedConnection); @@ -157,7 +162,9 @@ void CameraBinControl::reloadLater() void CameraBinControl::reloadPipeline() { - //qDebug() << "reload pipeline"; +#ifdef CAMEABIN_DEBUG + qDebug() << "reload pipeline"; +#endif if (m_reloadPending) { m_reloadPending = false; if (m_state == QCamera::ActiveState) { |