summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--services/camera/libcameraservice/Camera3Device.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/services/camera/libcameraservice/Camera3Device.cpp b/services/camera/libcameraservice/Camera3Device.cpp
index 6cf652c..f2c8c04 100644
--- a/services/camera/libcameraservice/Camera3Device.cpp
+++ b/services/camera/libcameraservice/Camera3Device.cpp
@@ -899,11 +899,19 @@ void Camera3Device::processCaptureResult(const camera3_capture_result *result) {
// Push result metadata into queue
mResultQueue.push_back(CameraMetadata());
- CameraMetadata &captureResult = *(mResultQueue.end());
+ // Lets avoid copies! Too bad there's not a #back method
+ CameraMetadata &captureResult = *(--mResultQueue.end());
captureResult = result->result;
- captureResult.update(ANDROID_REQUEST_FRAME_COUNT,
- (int32_t*)&result->frame_number, 1);
+ if (captureResult.update(ANDROID_REQUEST_FRAME_COUNT,
+ (int32_t*)&result->frame_number, 1) != OK) {
+ ALOGE("%s: Camera %d: Failed to set frame# in metadata (%d)",
+ __FUNCTION__, mId, result->frame_number);
+ // TODO: Report error upstream
+ } else {
+ ALOGVV("%s: Camera %d: Set frame# in metadata (%d)",
+ __FUNCTION__, mId, result->frame_number);
+ }
// Get timestamp from result metadata