diff options
author | Emilian Peev <epeev@google.com> | 2017-09-18 14:40:55 +0100 |
---|---|---|
committer | Emilian Peev <epeev@google.com> | 2017-09-19 17:09:32 +0100 |
commit | 385f0408b1eb53a2dfdde6709aa135780151e57c (patch) | |
tree | f131dfaf8d857f00b8a32fcc20080518e96f355e /camera | |
parent | 250180a46e9dd5c5b4feeab6a5c68ef06867570a (diff) | |
download | marlin-385f0408b1eb53a2dfdde6709aa135780151e57c.tar.gz |
QCamera2: HAL3: Extend available request/result/charact. keys
All vendor supported tags should be advertised in the respective
available lists.
Remove initial capability optimization. The vendor tag ops are not
initialized at this point which will lead to errors when trying to
append vendor tags.
Bug: 63817523
Test: Camera CTS
Change-Id: I417963660815b8cfe5678e8e017981f462037f0d
Diffstat (limited to 'camera')
-rw-r--r-- | camera/QCamera2/HAL3/QCamera3HWI.cpp | 30 | ||||
-rw-r--r-- | camera/QCamera2/QCamera2Factory.cpp | 5 |
2 files changed, 24 insertions, 11 deletions
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp index 8dfec977..1a087a4d 100644 --- a/camera/QCamera2/HAL3/QCamera3HWI.cpp +++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp @@ -7944,6 +7944,12 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) ANDROID_STATISTICS_LENS_SHADING_MAP_MODE, ANDROID_TONEMAP_CURVE_BLUE, ANDROID_TONEMAP_CURVE_GREEN, ANDROID_TONEMAP_CURVE_RED, ANDROID_TONEMAP_MODE, ANDROID_BLACK_LEVEL_LOCK, NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE, + QCAMERA3_PRIVATEDATA_REPROCESS, QCAMERA3_CDS_MODE, QCAMERA3_CDS_INFO, + QCAMERA3_CROP_COUNT_REPROCESS, QCAMERA3_CROP_REPROCESS, + QCAMERA3_CROP_ROI_MAP_REPROCESS, QCAMERA3_TEMPORAL_DENOISE_ENABLE, + QCAMERA3_TEMPORAL_DENOISE_PROCESS_TYPE, QCAMERA3_USE_AV_TIMER, + QCAMERA3_DUALCAM_LINK_ENABLE, QCAMERA3_DUALCAM_LINK_IS_MAIN, + QCAMERA3_DUALCAM_LINK_RELATED_CAMERA_ID, /* DevCamDebug metadata request_keys_basic */ DEVCAMDEBUG_META_ENABLE, /* DevCamDebug metadata end */ @@ -7985,6 +7991,13 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) ANDROID_STATISTICS_FACE_SCORES, NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE, NEXUS_EXPERIMENTAL_2016_AF_SCENE_CHANGE, + QCAMERA3_PRIVATEDATA_REPROCESS, QCAMERA3_CDS_MODE, QCAMERA3_CDS_INFO, + QCAMERA3_CROP_COUNT_REPROCESS, QCAMERA3_CROP_REPROCESS, + QCAMERA3_CROP_ROI_MAP_REPROCESS, QCAMERA3_TUNING_META_DATA_BLOB, + QCAMERA3_TEMPORAL_DENOISE_ENABLE, QCAMERA3_TEMPORAL_DENOISE_PROCESS_TYPE, + QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN, + QCAMERA3_DUALCAM_LINK_ENABLE, QCAMERA3_DUALCAM_LINK_IS_MAIN, + QCAMERA3_DUALCAM_LINK_RELATED_CAMERA_ID, // DevCamDebug metadata result_keys_basic DEVCAMDEBUG_META_ENABLE, // DevCamDebug metadata result_keys AF @@ -8115,7 +8128,8 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE, ANDROID_SHADING_AVAILABLE_MODES, ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL, - ANDROID_SENSOR_OPAQUE_RAW_SIZE }; + ANDROID_SENSOR_OPAQUE_RAW_SIZE, QCAMERA3_OPAQUE_RAW_FORMAT + }; Vector<int32_t> available_characteristics_keys; available_characteristics_keys.appendArray(characteristics_keys_basic, @@ -8123,9 +8137,6 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) if (hasBlackRegions) { available_characteristics_keys.add(ANDROID_SENSOR_OPTICAL_BLACK_REGIONS); } - staticInfo.update(ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS, - available_characteristics_keys.array(), - available_characteristics_keys.size()); /*available stall durations depend on the hw + sw and will be different for different devices */ /*have to add for raw after implementation*/ @@ -8195,8 +8206,15 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) &gCamCapability[cameraId]->padding_info, &buf_planes); strides.add(buf_planes.plane_info.mp[0].stride); } - staticInfo.update(QCAMERA3_OPAQUE_RAW_STRIDES, strides.array(), - strides.size()); + + if (!strides.isEmpty()) { + staticInfo.update(QCAMERA3_OPAQUE_RAW_STRIDES, strides.array(), + strides.size()); + available_characteristics_keys.add(QCAMERA3_OPAQUE_RAW_STRIDES); + } + staticInfo.update(ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS, + available_characteristics_keys.array(), + available_characteristics_keys.size()); Vector<int32_t> opaque_size; for (size_t j = 0; j < scalar_formats_count; j++) { diff --git a/camera/QCamera2/QCamera2Factory.cpp b/camera/QCamera2/QCamera2Factory.cpp index a464a3e2..dfa900a6 100644 --- a/camera/QCamera2/QCamera2Factory.cpp +++ b/camera/QCamera2/QCamera2Factory.cpp @@ -70,7 +70,6 @@ volatile uint32_t gKpiDebugLevel = 1; *==========================================================================*/ QCamera2Factory::QCamera2Factory() { - camera_info info; mHalDescriptors = NULL; mCallbacks = NULL; mNumOfCameras = get_num_of_cameras(); @@ -111,10 +110,6 @@ QCamera2Factory::QCamera2Factory() mHalDescriptors[i].device_version = CAMERA_DEVICE_API_VERSION_1_0; } - //Query camera at this point in order - //to avoid any delays during subsequent - //calls to 'getCameraInfo()' - getCameraInfo(i, &info); } } else { LOGE("Not enough resources to allocate HAL descriptor table!"); |