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:37:08 +0100 |
commit | 9b6b64dbbf2816e68413311f8af6b4b13508efc3 (patch) | |
tree | fc71a8730b5bf2297b0c6effbe612a4b048c88f6 | |
parent | cb689e27522225deddd7056ed1d1c396bb5c6a18 (diff) | |
download | bullhead-9b6b64dbbf2816e68413311f8af6b4b13508efc3.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
-rw-r--r-- | camera/QCamera2/HAL3/QCamera3HWI.cpp | 32 | ||||
-rw-r--r-- | camera/QCamera2/QCamera2Factory.cpp | 5 |
2 files changed, 24 insertions, 13 deletions
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp index 05c0c41..eecd454 100644 --- a/camera/QCamera2/HAL3/QCamera3HWI.cpp +++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp @@ -6791,7 +6791,12 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) ANDROID_STATISTICS_HISTOGRAM_MODE, ANDROID_STATISTICS_SHARPNESS_MAP_MODE, 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}; + 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 + }; size_t request_keys_cnt = sizeof(request_keys_basic)/sizeof(request_keys_basic[0]); @@ -6828,7 +6833,13 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) ANDROID_STATISTICS_FACE_SCORES, ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL, ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL, NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE, - ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST }; + ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST, + 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 + }; size_t result_keys_cnt = sizeof(result_keys_basic)/sizeof(result_keys_basic[0]); @@ -6906,7 +6917,8 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) ANDROID_CONTROL_AWB_LOCK_AVAILABLE, ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES, ANDROID_SHADING_AVAILABLE_MODES, - ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL }; + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL, QCAMERA3_OPAQUE_RAW_FORMAT + }; Vector<int32_t> available_characteristics_keys; available_characteristics_keys.appendArray(characteristics_keys_basic, @@ -6914,9 +6926,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*/ @@ -6989,8 +6998,15 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId) &gCamCapability[cameraId]->padding_info, &buf_planes); strides[i*3+2] = buf_planes.plane_info.mp[0].stride; } - staticInfo.update(QCAMERA3_OPAQUE_RAW_STRIDES, strides, - 3*raw_count); + + if (raw_count > 0) { + staticInfo.update(QCAMERA3_OPAQUE_RAW_STRIDES, strides, + 3*raw_count); + available_characteristics_keys.add(QCAMERA3_OPAQUE_RAW_STRIDES); + } + staticInfo.update(ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS, + available_characteristics_keys.array(), + available_characteristics_keys.size()); gStaticMetadata[cameraId] = staticInfo.release(); return rc; diff --git a/camera/QCamera2/QCamera2Factory.cpp b/camera/QCamera2/QCamera2Factory.cpp index 676dd65..6101036 100644 --- a/camera/QCamera2/QCamera2Factory.cpp +++ b/camera/QCamera2/QCamera2Factory.cpp @@ -58,7 +58,6 @@ QCamera2Factory *gQCamera2Factory = NULL; *==========================================================================*/ QCamera2Factory::QCamera2Factory() { - camera_info info; mHalDescriptors = NULL; mCallbacks = NULL; mNumOfCameras = get_num_of_cameras(); @@ -78,10 +77,6 @@ QCamera2Factory::QCamera2Factory() } else { 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 { ALOGE("%s: Not enough resources to allocate HAL descriptor table!", |