summaryrefslogtreecommitdiffstats
path: root/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2010-08-04 15:59:35 +1000
committerDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2010-08-04 16:14:18 +1000
commit57a6a6ec8035d8c039203f09b373341d200f8811 (patch)
treee9ba682f8a84726f953f6d20c4286f6aab87b893 /plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
parentdf1f56c03284a556b118d81cea951b1ac6badae6 (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.cpp19
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) {