From 385f0408b1eb53a2dfdde6709aa135780151e57c Mon Sep 17 00:00:00 2001 From: Emilian Peev Date: Mon, 18 Sep 2017 14:40:55 +0100 Subject: 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 --- camera/QCamera2/HAL3/QCamera3HWI.cpp | 30 ++++++++++++++++++++++++------ camera/QCamera2/QCamera2Factory.cpp | 5 ----- 2 files changed, 24 insertions(+), 11 deletions(-) (limited to 'camera') 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 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 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!"); -- cgit v1.2.3