summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilian Peev <epeev@google.com>2017-09-18 14:40:55 +0100
committerEmilian Peev <epeev@google.com>2017-09-19 17:37:08 +0100
commit9b6b64dbbf2816e68413311f8af6b4b13508efc3 (patch)
treefc71a8730b5bf2297b0c6effbe612a4b048c88f6
parentcb689e27522225deddd7056ed1d1c396bb5c6a18 (diff)
downloadbullhead-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.cpp32
-rw-r--r--camera/QCamera2/QCamera2Factory.cpp5
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!",