summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/device3/Camera3Device.cpp
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2015-08-13 17:58:46 -0700
committerRuben Brunk <rubenbrunk@google.com>2015-08-14 17:30:24 -0700
commitc78ac26e3a65328fc0118f16ee76a800d0687eb7 (patch)
tree9009e37c981c7cbfdd106c44de2622edf1672a49 /services/camera/libcameraservice/device3/Camera3Device.cpp
parenta09f8cf8c76fa946c4b91be059b420941abcdc3b (diff)
downloadframeworks_av-c78ac26e3a65328fc0118f16ee76a800d0687eb7.zip
frameworks_av-c78ac26e3a65328fc0118f16ee76a800d0687eb7.tar.gz
frameworks_av-c78ac26e3a65328fc0118f16ee76a800d0687eb7.tar.bz2
Add experimental camera session prepare API.
Bug: 18949148 Change-Id: I8f73e68ea2e3acc60d98954106f364d13f439a82
Diffstat (limited to 'services/camera/libcameraservice/device3/Camera3Device.cpp')
-rw-r--r--services/camera/libcameraservice/device3/Camera3Device.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index 0a4440f..cf47bc8 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -1380,6 +1380,10 @@ status_t Camera3Device::flush(int64_t *frameNumber) {
}
status_t Camera3Device::prepare(int streamId) {
+ return prepare(camera3::Camera3StreamInterface::ALLOCATE_PIPELINE_MAX, streamId);
+}
+
+status_t Camera3Device::prepare(int maxCount, int streamId) {
ATRACE_CALL();
ALOGV("%s: Camera %d: Preparing stream %d", __FUNCTION__, mId, streamId);
Mutex::Autolock il(mInterfaceLock);
@@ -1404,7 +1408,7 @@ status_t Camera3Device::prepare(int streamId) {
return BAD_VALUE;
}
- return mPreparerThread->prepare(stream);
+ return mPreparerThread->prepare(maxCount, stream);
}
status_t Camera3Device::tearDown(int streamId) {
@@ -3455,12 +3459,12 @@ Camera3Device::PreparerThread::~PreparerThread() {
clear();
}
-status_t Camera3Device::PreparerThread::prepare(sp<Camera3StreamInterface>& stream) {
+status_t Camera3Device::PreparerThread::prepare(int maxCount, sp<Camera3StreamInterface>& stream) {
status_t res;
Mutex::Autolock l(mLock);
- res = stream->startPrepare();
+ res = stream->startPrepare(maxCount);
if (res == OK) {
// No preparation needed, fire listener right off
ALOGV("%s: Stream %d already prepared", __FUNCTION__, stream->getId());