camera_common: Upgrade camera_module to 2.5

The new camera_module version adds function to query physical camera
static metadata.

Test: Camera CTS on Pixel devices
Bug: 79523700
Change-Id: I276f23808595b4c6389cb04b19c8c3658b2db967
This commit is contained in:
Shuzhen Wang 2018-08-24 11:07:50 -07:00
parent cf5310a9eb
commit a8caa6a6ed
2 changed files with 46 additions and 3 deletions

View file

@ -117,6 +117,14 @@ __BEGIN_DECLS
* 4. Module initialization method. This will be called by the camera service
* right after the HAL module is loaded, to allow for one-time initialization
* of the HAL. It is called before any other module methods are invoked.
*
*******************************************************************************
* Version: 2.5 [CAMERA_MODULE_API_VERSION_2_5]
*
* This camera module version adds support to query characteristics of a
* non-standalone physical camera, which can only be accessed as part of a
* logical camera.
*
*/
/**
@ -133,8 +141,9 @@ __BEGIN_DECLS
#define CAMERA_MODULE_API_VERSION_2_2 HARDWARE_MODULE_API_VERSION(2, 2)
#define CAMERA_MODULE_API_VERSION_2_3 HARDWARE_MODULE_API_VERSION(2, 3)
#define CAMERA_MODULE_API_VERSION_2_4 HARDWARE_MODULE_API_VERSION(2, 4)
#define CAMERA_MODULE_API_VERSION_2_5 HARDWARE_MODULE_API_VERSION(2, 5)
#define CAMERA_MODULE_API_VERSION_CURRENT CAMERA_MODULE_API_VERSION_2_4
#define CAMERA_MODULE_API_VERSION_CURRENT CAMERA_MODULE_API_VERSION_2_5
/**
* All device versions <= HARDWARE_DEVICE_API_VERSION(1, 0xFF) must be treated
@ -909,8 +918,41 @@ typedef struct camera_module {
*/
int (*init)();
/**
* get_physical_camera_info:
*
* Return the static metadata for a physical camera as a part of a logical
* camera device. This function is only called for those physical camera
* ID(s) that are not exposed independently. In other words, camera_id will
* be greater or equal to the return value of get_number_of_cameras().
*
* Return values:
*
* 0: On a successful operation
*
* -ENODEV: The information cannot be provided due to an internal
* error.
*
* -EINVAL: The input arguments are invalid, i.e. the id is invalid,
* and/or the module is invalid.
*
* Version information (based on camera_module_t.common.module_api_version):
*
* CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3/2_4:
* Not provided by HAL module. Framework will not call this function.
*
* CAMERA_MODULE_API_VERSION_2_5 or higher:
* If any of the camera devices accessible through this camera module is
* a logical multi-camera, and at least one of the physical cameras isn't
* a stand-alone camera device, this function will be called by the camera
* framework. Calling this function with invalid physical_camera_id will
* get -EINVAL, and NULL static_metadata.
*/
int (*get_physical_camera_info)(int physical_camera_id,
camera_metadata_t **static_metadata);
/* reserved for future use */
void* reserved[5];
void* reserved[4];
} camera_module_t;
__END_DECLS

View file

@ -216,7 +216,8 @@ void CheckOffsets(void) {
CHECK_MEMBER_AT(camera_module_t, open_legacy, 144, 280);
CHECK_MEMBER_AT(camera_module_t, set_torch_mode, 148, 288);
CHECK_MEMBER_AT(camera_module_t, init, 152, 296);
CHECK_MEMBER_AT(camera_module_t, reserved, 156, 304);
CHECK_MEMBER_AT(camera_module_t, get_physical_camera_info, 156, 304);
CHECK_MEMBER_AT(camera_module_t, reserved, 160, 312);
//Types defined in camera3.h
CHECK_MEMBER_AT(camera3_device_ops_t, initialize, 0, 0);