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:
Eino-Ville Talvala
2018-02-05 16:27:15 -08:00
parent 1233c1046d
commit 0a2a9fc18c
7 changed files with 15 additions and 122 deletions

View File

@@ -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:
*

View File

@@ -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) {

View File

@@ -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:

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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:
*

View File

@@ -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,
};