最終更新:2017-04-05 (水) 06:04:36 (2571d)
Android/カメラ/処理の流れ/カメラ特性の取得
流れ
CameraCharacteristics = CameraManager.getCameraCharacteristics(cameraId);
- A:CameraMetadataNative info = CameraService.getCameraCharacteristics(id);
- characteristics = new CameraCharacteristics(info);
A:CameraService::getCameraCharacteristics(id, CameraMetadata)
- B:CameraService::getCameraInfo(camera_info)
- CameraMetadata = (camera_metadata_t)camera_info.static_camera_characteristics?
B:CameraService::getCameraInfo(camera_info)
CameraModule::getCameraInfo
QCamera2Factory::get_camera_info(id, camera_info);
- QCamera2Factory::getCameraInfo(id, camera_info)
- QCamera3HardwareInterface::getCamInfo(id, camera_info)
QCamera3HardwareInterface::getCamInfo
- D:QCamera3HardwareInterface::initCapabilities(id)
- E:QCamera3HardwareInterface::initStaticMetadata(id)
D:QCamera3HardwareInterface::initCapabilities(id)
- (cam_capability_t)gCamCapability?にキャパビリティを格納する
- camera_open(id, mm_camera_vtbl_t)
- (mm_camera_vtbl_t)cameraHandle->(mm_camera_ops_t)ops->map_buf(=mm_camera_intf_map_buf(CAM_MAPPING_BUF_TYPE_CAPABILITY?))
- (mm_camera_vtbl_t)cameraHandle->(mm_camera_ops_t)ops->query_capability((uint32_t)mm_camera_vtbl_t.camera_handle?) (=mm_camera_intf_query_capability)
camera_open(id, mm_camera_vtbl_t)
- (mm_camera_obj_t?)cam_obj->vtbl.ops = &(mm_camera_ops_t)mm_camera_ops?;
- mm_camera_ops.query_capability? = mm_camera_intf_query_capability,
mm_camera_intf_map_buf
- CAM_MAPPING_BUF_TYPE_CAPABILITY?をマッピングしてるけどよくわからん
mm_camera_intf_query_capability(uint32_t camera_handle)
- mm_camera_query_capability(mm_camera_obj_t?)
mm_camera_query_capability(mm_camera_obj_t?)
- ioctl(my_obj->ctrl_fd, VIDIOC_QUERYCAP, &v4l2_capability);
- 特にこの値は使ってないっぽい