From fd6ecdd39bd83ea020f78b425e96310380d66c35 Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Fri, 11 Oct 2013 09:51:09 -0700 Subject: Camera HAL3/API1: Add support for the partial result quirk. - Camera2Client: - Detect partial result quirk - Camera3Device: - Accumulate all partial results together - Fire off 3A-only result once all 3A states are available - FrameProcessorBase: - Filter out partials, don't send to listeners - FrameProcessor: - Skip face detect on partials - Make sure to only handle a 3A update for a given frame once - Trigger AF notifications when AF mode or trigger changes, to properly detect all AF transitions. Bug: 11115603 Change-Id: Iea8aa73c568701562a46071f7ea100624251d10b --- camera/CameraMetadata.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'camera/CameraMetadata.cpp') diff --git a/camera/CameraMetadata.cpp b/camera/CameraMetadata.cpp index f447c5b..7765914 100644 --- a/camera/CameraMetadata.cpp +++ b/camera/CameraMetadata.cpp @@ -133,11 +133,19 @@ void CameraMetadata::acquire(CameraMetadata &other) { } status_t CameraMetadata::append(const CameraMetadata &other) { + return append(other.mBuffer); +} + +status_t CameraMetadata::append(const camera_metadata_t* other) { if (mLocked) { ALOGE("%s: CameraMetadata is locked", __FUNCTION__); return INVALID_OPERATION; } - return append_camera_metadata(mBuffer, other.mBuffer); + size_t extraEntries = get_camera_metadata_entry_count(other); + size_t extraData = get_camera_metadata_data_count(other); + resizeIfNeeded(extraEntries, extraData); + + return append_camera_metadata(mBuffer, other); } size_t CameraMetadata::entryCount() const { -- cgit v1.1