summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2013-06-11 18:23:26 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-06-11 18:23:26 -0700
commit52b943e8036aa6ebd15131820d196fedb321613d (patch)
treea97230dad546b2bcd9ed63e6ff2c33e69040f56c /services
parent31295e781598929a75d5774814a25f5f22b78236 (diff)
parent44ade05f8d030ae3af8d05359734b18eac433935 (diff)
downloadframeworks_av-52b943e8036aa6ebd15131820d196fedb321613d.zip
frameworks_av-52b943e8036aa6ebd15131820d196fedb321613d.tar.gz
frameworks_av-52b943e8036aa6ebd15131820d196fedb321613d.tar.bz2
am 44ade05f: am ea26c777: Camera3: Skip no-op stream configurations.
* commit '44ade05f8d030ae3af8d05359734b18eac433935': Camera3: Skip no-op stream configurations.
Diffstat (limited to 'services')
-rw-r--r--services/camera/libcameraservice/Camera3Device.cpp9
-rw-r--r--services/camera/libcameraservice/Camera3Device.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/Camera3Device.cpp b/services/camera/libcameraservice/Camera3Device.cpp
index 09d2d54..58d98ef 100644
--- a/services/camera/libcameraservice/Camera3Device.cpp
+++ b/services/camera/libcameraservice/Camera3Device.cpp
@@ -175,6 +175,7 @@ status_t Camera3Device::initialize(camera_module_t *module)
mHal3Device = device;
mStatus = STATUS_IDLE;
mNextStreamId = 0;
+ mNeedConfig = true;
return OK;
}
@@ -587,6 +588,7 @@ status_t Camera3Device::createStream(sp<ANativeWindow> consumer,
}
*id = mNextStreamId++;
+ mNeedConfig = true;
// Continue captures if active at start
if (wasActive) {
@@ -712,6 +714,7 @@ status_t Camera3Device::deleteStream(int id) {
// fall through since we want to still list the stream as deleted.
}
mDeletedStreams.add(deletedStream);
+ mNeedConfig = true;
return res;
}
@@ -1014,6 +1017,11 @@ status_t Camera3Device::configureStreamsLocked() {
return INVALID_OPERATION;
}
+ if (!mNeedConfig) {
+ ALOGV("%s: Skipping config, no stream changes", __FUNCTION__);
+ return OK;
+ }
+
// Start configuring the streams
camera3_stream_configuration config;
@@ -1099,6 +1107,7 @@ status_t Camera3Device::configureStreamsLocked() {
// Finish configuring the streams lazily on first reference
mStatus = STATUS_ACTIVE;
+ mNeedConfig = false;
return OK;
}
diff --git a/services/camera/libcameraservice/Camera3Device.h b/services/camera/libcameraservice/Camera3Device.h
index 7a8c22a..faa42b9 100644
--- a/services/camera/libcameraservice/Camera3Device.h
+++ b/services/camera/libcameraservice/Camera3Device.h
@@ -149,6 +149,7 @@ class Camera3Device :
StreamSet mOutputStreams;
sp<camera3::Camera3Stream> mInputStream;
int mNextStreamId;
+ bool mNeedConfig;
// Need to hold on to stream references until configure completes.
Vector<sp<camera3::Camera3StreamInterface> > mDeletedStreams;