mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
camera.device@3.4/metadata@3.3: Revise MOTION_TRACKING capability
Simplify the API for the P release - Remove new templates - Update docs - Also update some metadata docs from prior changes Test: Revised Camera CTS passes Bug: 63629224 Change-Id: I47fb170052cf6062955278ace624a91e8a0078b3
This commit is contained in:
@@ -30,43 +30,6 @@ import @3.2::BufferCache;
|
||||
*/
|
||||
interface ICameraDeviceSession extends @3.3::ICameraDeviceSession {
|
||||
|
||||
/**
|
||||
* constructDefaultRequestSettings_3_4:
|
||||
*
|
||||
* Create capture settings for standard camera use cases. Supports the
|
||||
* new template enums added in @3.4.
|
||||
*
|
||||
* The device must return a settings buffer that is configured to meet the
|
||||
* requested use case, which must be one of the CAMERA3_TEMPLATE_*
|
||||
* enums. All request control fields must be included.
|
||||
*
|
||||
* Performance requirements:
|
||||
*
|
||||
* This must be a non-blocking call. The HAL should return from this call
|
||||
* in 1ms, and must return from this call in 5ms.
|
||||
*
|
||||
* Return values:
|
||||
* @return status Status code for the operation, one of:
|
||||
* OK:
|
||||
* On a successful construction of default settings.
|
||||
* INTERNAL_ERROR:
|
||||
* An unexpected internal error occurred, and the default settings
|
||||
* are not available.
|
||||
* ILLEGAL_ARGUMENT:
|
||||
* The camera HAL does not support the input template type
|
||||
* CAMERA_DISCONNECTED:
|
||||
* An external camera device has been disconnected, and is no longer
|
||||
* available. This camera device interface is now stale, and a new
|
||||
* instance must be acquired if the device is reconnected. All
|
||||
* subsequent calls on this interface must return
|
||||
* CAMERA_DISCONNECTED.
|
||||
* @return requestTemplate The default capture request settings for the requested
|
||||
* use case, or an empty metadata structure if status is not OK.
|
||||
*
|
||||
*/
|
||||
constructDefaultRequestSettings_3_4(RequestTemplate type) generates
|
||||
(Status status, @3.2::CameraMetadata requestTemplate);
|
||||
|
||||
/**
|
||||
* configureStreams_3_4:
|
||||
*
|
||||
|
||||
@@ -56,14 +56,6 @@ CameraDeviceSession::CameraDeviceSession(
|
||||
CameraDeviceSession::~CameraDeviceSession() {
|
||||
}
|
||||
|
||||
Return<void> CameraDeviceSession::constructDefaultRequestSettings_3_4(
|
||||
RequestTemplate type, ICameraDeviceSession::constructDefaultRequestSettings_cb _hidl_cb) {
|
||||
V3_2::CameraMetadata outMetadata;
|
||||
Status status = constructDefaultRequestSettingsRaw( (int) type, &outMetadata);
|
||||
_hidl_cb(status, outMetadata);
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> CameraDeviceSession::configureStreams_3_4(
|
||||
const StreamConfiguration& requestedConfiguration,
|
||||
ICameraDeviceSession::configureStreams_3_4_cb _hidl_cb) {
|
||||
|
||||
@@ -133,15 +133,6 @@ Return<void> ExternalCameraDeviceSession::constructDefaultRequestSettings(
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> ExternalCameraDeviceSession::constructDefaultRequestSettings_3_4(
|
||||
RequestTemplate type,
|
||||
ICameraDeviceSession::constructDefaultRequestSettings_cb _hidl_cb) {
|
||||
V3_2::CameraMetadata outMetadata;
|
||||
Status status = constructDefaultRequestSettingsRaw(type, &outMetadata);
|
||||
_hidl_cb(status, outMetadata);
|
||||
return Void();
|
||||
}
|
||||
|
||||
Status ExternalCameraDeviceSession::constructDefaultRequestSettingsRaw(RequestTemplate type,
|
||||
V3_2::CameraMetadata *outMetadata) {
|
||||
CameraMetadata emptyMd;
|
||||
@@ -160,9 +151,7 @@ Status ExternalCameraDeviceSession::constructDefaultRequestSettingsRaw(RequestTe
|
||||
}
|
||||
case RequestTemplate::MANUAL:
|
||||
case RequestTemplate::ZERO_SHUTTER_LAG:
|
||||
case RequestTemplate::MOTION_TRACKING_PREVIEW:
|
||||
case RequestTemplate::MOTION_TRACKING_BEST:
|
||||
// Don't support MANUAL, ZSL, MOTION_TRACKING_* templates
|
||||
// Don't support MANUAL, ZSL templates
|
||||
status = Status::ILLEGAL_ARGUMENT;
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -74,11 +74,6 @@ struct CameraDeviceSession : public V3_3::implementation::CameraDeviceSession {
|
||||
protected:
|
||||
// Methods from v3.3 and earlier will trampoline to inherited implementation
|
||||
|
||||
// New methods for v3.4
|
||||
Return<void> constructDefaultRequestSettings_3_4(
|
||||
RequestTemplate type,
|
||||
ICameraDeviceSession::constructDefaultRequestSettings_cb _hidl_cb);
|
||||
|
||||
Return<void> configureStreams_3_4(
|
||||
const StreamConfiguration& requestedConfiguration,
|
||||
ICameraDeviceSession::configureStreams_3_4_cb _hidl_cb);
|
||||
@@ -163,12 +158,6 @@ private:
|
||||
return mParent->close();
|
||||
}
|
||||
|
||||
virtual Return<void> constructDefaultRequestSettings_3_4(
|
||||
RequestTemplate type,
|
||||
ICameraDeviceSession::constructDefaultRequestSettings_cb _hidl_cb) override {
|
||||
return mParent->constructDefaultRequestSettings_3_4(type, _hidl_cb);
|
||||
}
|
||||
|
||||
virtual Return<void> configureStreams_3_3(
|
||||
const V3_2::StreamConfiguration& requestedConfiguration,
|
||||
configureStreams_3_3_cb _hidl_cb) override {
|
||||
|
||||
@@ -53,7 +53,7 @@ using ::android::hardware::camera::device::V3_2::ErrorCode;
|
||||
using ::android::hardware::camera::device::V3_2::ICameraDeviceCallback;
|
||||
using ::android::hardware::camera::device::V3_2::MsgType;
|
||||
using ::android::hardware::camera::device::V3_2::NotifyMsg;
|
||||
using ::android::hardware::camera::device::V3_4::RequestTemplate;
|
||||
using ::android::hardware::camera::device::V3_2::RequestTemplate;
|
||||
using ::android::hardware::camera::device::V3_2::Stream;
|
||||
using ::android::hardware::camera::device::V3_4::StreamConfiguration;
|
||||
using ::android::hardware::camera::device::V3_2::StreamConfigurationMode;
|
||||
@@ -110,11 +110,7 @@ protected:
|
||||
// Methods from ::android::hardware::camera::device::V3_2::ICameraDeviceSession follow
|
||||
|
||||
Return<void> constructDefaultRequestSettings(
|
||||
V3_2::RequestTemplate,
|
||||
ICameraDeviceSession::constructDefaultRequestSettings_cb _hidl_cb);
|
||||
|
||||
Return<void> constructDefaultRequestSettings_3_4(
|
||||
RequestTemplate type,
|
||||
RequestTemplate,
|
||||
ICameraDeviceSession::constructDefaultRequestSettings_cb _hidl_cb);
|
||||
|
||||
Return<void> configureStreams(
|
||||
@@ -341,7 +337,7 @@ private:
|
||||
mParent(parent) {}
|
||||
|
||||
virtual Return<void> constructDefaultRequestSettings(
|
||||
V3_2::RequestTemplate type,
|
||||
RequestTemplate type,
|
||||
V3_3::ICameraDeviceSession::constructDefaultRequestSettings_cb _hidl_cb) override {
|
||||
return mParent->constructDefaultRequestSettings(type, _hidl_cb);
|
||||
}
|
||||
@@ -376,12 +372,6 @@ private:
|
||||
return mParent->close();
|
||||
}
|
||||
|
||||
virtual Return<void> constructDefaultRequestSettings_3_4(
|
||||
RequestTemplate type,
|
||||
ICameraDeviceSession::constructDefaultRequestSettings_cb _hidl_cb) override {
|
||||
return mParent->constructDefaultRequestSettings_3_4(type, _hidl_cb);
|
||||
}
|
||||
|
||||
virtual Return<void> configureStreams_3_3(
|
||||
const V3_2::StreamConfiguration& requestedConfiguration,
|
||||
configureStreams_3_3_cb _hidl_cb) override {
|
||||
|
||||
@@ -77,36 +77,6 @@ struct Stream {
|
||||
uint32_t bufferSize;
|
||||
};
|
||||
|
||||
/**
|
||||
* New request templates, extending the @3.2 RequestTemplate
|
||||
*/
|
||||
enum RequestTemplate : @3.2::RequestTemplate {
|
||||
/**
|
||||
* A template for selecting camera parameters that match TEMPLATE_PREVIEW as closely as
|
||||
* possible while improving the camera output for motion tracking use cases.
|
||||
*
|
||||
* This template is best used by applications that are frequently switching between motion
|
||||
* tracking use cases and regular still capture use cases, to minimize the IQ changes
|
||||
* when swapping use cases.
|
||||
*
|
||||
* This template is guaranteed to be supported on camera devices that support the
|
||||
* REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING capability.
|
||||
*/
|
||||
MOTION_TRACKING_PREVIEW = 7,
|
||||
|
||||
/**
|
||||
* A template for selecting camera parameters that maximize the quality of camera output for
|
||||
* motion tracking use cases.
|
||||
*
|
||||
* This template is best used by applications dedicated to motion tracking applications,
|
||||
* which aren't concerned about fast switches between motion tracking and other use cases.
|
||||
*
|
||||
* This template is guaranteed to be supported on camera devices that support the
|
||||
* REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING capability.
|
||||
*/
|
||||
MOTION_TRACKING_BEST = 8,
|
||||
};
|
||||
|
||||
/**
|
||||
* StreamConfiguration:
|
||||
*
|
||||
|
||||
@@ -94,7 +94,7 @@ enum CameraMetadataTag : @3.2::CameraMetadataTag {
|
||||
|
||||
/** android.statistics.oisDataMode [dynamic, enum, public]
|
||||
*
|
||||
* <p>Whether the camera device outputs the OIS data in output
|
||||
* <p>A control for selecting whether OIS position information is included in output
|
||||
* result metadata.</p>
|
||||
*/
|
||||
ANDROID_STATISTICS_OIS_DATA_MODE = android.hardware.camera.metadata@3.2::CameraMetadataTag:ANDROID_STATISTICS_END,
|
||||
@@ -200,12 +200,12 @@ enum CameraMetadataEnumAndroidRequestAvailableCapabilities :
|
||||
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA,
|
||||
};
|
||||
|
||||
/** android.logicalMultiCamera.sensorSyncType enumeration values
|
||||
* @see ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
|
||||
/** android.statistics.oisDataMode enumeration values
|
||||
* @see ANDROID_STATISTICS_OIS_DATA_MODE
|
||||
*/
|
||||
enum CameraMetadataEnumAndroidLogicalMultiCameraSensorSyncType : uint32_t {
|
||||
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE,
|
||||
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED,
|
||||
enum CameraMetadataEnumAndroidStatisticsOisDataMode : uint32_t {
|
||||
ANDROID_STATISTICS_OIS_DATA_MODE_OFF,
|
||||
ANDROID_STATISTICS_OIS_DATA_MODE_ON,
|
||||
};
|
||||
|
||||
/** android.info.supportedHardwareLevel enumeration values added since v3.2
|
||||
@@ -216,10 +216,10 @@ enum CameraMetadataEnumAndroidInfoSupportedHardwareLevel :
|
||||
ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL,
|
||||
};
|
||||
|
||||
/** android.statistics.oisDataMode enumeration values
|
||||
* @see ANDROID_STATISTICS_OIS_DATA_MODE
|
||||
/** android.logicalMultiCamera.sensorSyncType enumeration values
|
||||
* @see ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
|
||||
*/
|
||||
enum CameraMetadataEnumAndroidStatisticsOisDataMode : uint32_t {
|
||||
ANDROID_STATISTICS_OIS_DATA_MODE_OFF,
|
||||
ANDROID_STATISTICS_OIS_DATA_MODE_ON,
|
||||
enum CameraMetadataEnumAndroidLogicalMultiCameraSensorSyncType : uint32_t {
|
||||
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE,
|
||||
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user