summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/device3
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2013-10-03 16:12:43 -0700
committerZhijun He <zhijunhe@google.com>2013-10-09 13:25:21 -0700
commitcc27e117ed01c9a2b4def5a9c7a3103af83ee47e (patch)
tree25ffe85682c673330d8b806fdef1e9d978f6d698 /services/camera/libcameraservice/device3
parentb6028c4243fb7e4e16e41d893c1d48679d28ca6c (diff)
downloadframeworks_av-cc27e117ed01c9a2b4def5a9c7a3103af83ee47e.zip
frameworks_av-cc27e117ed01c9a2b4def5a9c7a3103af83ee47e.tar.gz
frameworks_av-cc27e117ed01c9a2b4def5a9c7a3103af83ee47e.tar.bz2
Camera: Save 1 frame time for takePicture call
Move the latest request signal call right before submitting request to HAL, which avoids unnecessary 1 frame time wait. Also fix request status constructor issue, and the log tag for Camera2Client. Bug: 10570497 Change-Id: I0b1818658bee9983b117e49a5a00f1aab515c567
Diffstat (limited to 'services/camera/libcameraservice/device3')
-rw-r--r--services/camera/libcameraservice/device3/Camera3Device.cpp17
-rw-r--r--services/camera/libcameraservice/device3/Camera3Device.h1
2 files changed, 9 insertions, 9 deletions
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index 303823c..81bbeee 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -1910,6 +1910,14 @@ bool Camera3Device::RequestThread::threadLoop() {
return false;
}
+ // Inform waitUntilRequestProcessed thread of a new request ID
+ {
+ Mutex::Autolock al(mLatestRequestMutex);
+
+ mLatestRequestId = requestId;
+ mLatestRequestSignal.signal();
+ }
+
// Submit request and block until ready for next one
ATRACE_ASYNC_BEGIN("frame capture", request.frame_number);
ATRACE_BEGIN("camera3->process_capture_request");
@@ -1945,15 +1953,6 @@ bool Camera3Device::RequestThread::threadLoop() {
}
mPrevTriggers = triggerCount;
- // Read android.request.id from the request settings metadata
- // - inform waitUntilRequestProcessed thread of a new request ID
- {
- Mutex::Autolock al(mLatestRequestMutex);
-
- mLatestRequestId = requestId;
- mLatestRequestSignal.signal();
- }
-
// Return input buffer back to framework
if (request.input_buffer != NULL) {
Camera3Stream *stream =
diff --git a/services/camera/libcameraservice/device3/Camera3Device.h b/services/camera/libcameraservice/device3/Camera3Device.h
index c2b0867..12252c8 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.h
+++ b/services/camera/libcameraservice/device3/Camera3Device.h
@@ -457,6 +457,7 @@ class Camera3Device :
InFlightRequest(int id, int numBuffers) :
requestId(id),
captureTimestamp(0),
+ requestStatus(OK),
haveResultMetadata(false),
numBuffersLeft(numBuffers) {
}