diff options
author | Zhijun He <zhijunhe@google.com> | 2013-10-03 16:12:43 -0700 |
---|---|---|
committer | Zhijun He <zhijunhe@google.com> | 2013-10-09 13:25:21 -0700 |
commit | cc27e117ed01c9a2b4def5a9c7a3103af83ee47e (patch) | |
tree | 25ffe85682c673330d8b806fdef1e9d978f6d698 /services/camera | |
parent | b6028c4243fb7e4e16e41d893c1d48679d28ca6c (diff) | |
download | frameworks_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')
3 files changed, 10 insertions, 10 deletions
diff --git a/services/camera/libcameraservice/api1/Camera2Client.cpp b/services/camera/libcameraservice/api1/Camera2Client.cpp index 09829ea..9b1c947 100644 --- a/services/camera/libcameraservice/api1/Camera2Client.cpp +++ b/services/camera/libcameraservice/api1/Camera2Client.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define LOG_TAG "Camera2" +#define LOG_TAG "Camera2Client" #define ATRACE_TAG ATRACE_TAG_CAMERA //#define LOG_NDEBUG 0 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) { } |