Android Camera
文章平均质量分 64
j衣l日
Linux嵌入式软件、Android Camera HAL、图像
展开
-
【HAL】Framework入口函数简介(5):configure_streams
一、CAMERA_DEVICE_API_VERSION_3_0 and 3_1重置HAL相机设备正在处理的pipeline并设置新的输入和输出流。此调用将所有现有的stream配置替换为stream_list中定义的stream。在initialize()之后,使用process_capture_request()提交请求之前,将至少调用一次此方法。stream_list必须至少包含一个具有输出能力的stream,并且可能不会含一个以上具有输入能力的stream。stream_list中的strea原创 2021-04-25 14:20:42 · 1378 阅读 · 0 评论 -
【HAL】Framework入口函数简介(4):construct_default_request_settings
construct_default_request_settings:标准相机用例创建拍照设置。设备必须返回被配置为满足请求用例的设置缓冲区,且必须是CAMERA3_TEMPLATE_*枚举类型之一。必须包括所有请求控制域。HAL保留该结构体的所有权,但在关闭设备之前,指向该结构体的指针必须有效。一旦缓冲区被此调用返回,Framework和HAL可能不会修改缓冲区。对于相同模板或其他模板的后续调用,可以返回相同的缓冲区。/// @brief Request template types for .原创 2021-04-14 17:16:48 · 396 阅读 · 0 评论 -
【HAL】Framework和HAL之间的起始和基本执行流程
Framework调用camera_module_t->common.open(),返回hardware_device_t结构体。Framework检查hardware_device_t->version字段,并为该版本的相机硬件设备实例化相应的句柄。如果是3.0版本,则将hardware_device_t映射为camera3_device_t。Framework入参Framework的回调函数指针调用camera3_device_t->ops->initialize()。仅在.原创 2021-04-09 17:58:53 · 928 阅读 · 2 评论 -
【HAL】Framework入口函数简介(3):initialize
结构体initialize()是一次性的初始化,将Framework的回调函数指针传递给HAL。在对camera3_device_ops结构体中任何其他函数调用之前,且成功调用open()之后,其将被调用一次。性能要求:需要是非阻塞调用。HAL应该在5ms内且必须在10ms内返回此调用。int (*initialize)(const struct camera3_device *, const camera3_callback_ops_t *callback_ops);原创 2021-04-08 18:34:46 · 353 阅读 · 0 评论 -
【HAL】Framework入口函数简介(2):open
Framework到HAL的调用流程执行ReserveTorchForCamera,为camera预留手电筒资源;执行ProcessCameraOpen,调用chi层的chi_extend_open,检查camera状态等信息判断是否可以打开,可以的话则设置状态并返回正确。创建HALDevice实例,并执行初始化操作:初始化Camera3Device结构体调用camxhal3entry中的GetCamera3DeviceOps获取操作函数。初始化其中成员HwDevice,包括tag、ver原创 2021-04-07 17:41:14 · 303 阅读 · 0 评论 -
【HAL】Framework入口函数简介(1):set_callbacks
提供指向HAL模块的回调函数指针,以将异步相机模块事件通知到框架。在初始的camera HAL模块加载之后,在get_number_of_cameras()方法第一次被调用之后,以及在任何其他模块调用之前,框架都会调用这个函数。函数及结构体typedef struct camera_module_callbacks { void (*camera_device_status_change)(const struct camera_module_callbacks*, .原创 2021-04-06 14:38:51 · 276 阅读 · 0 评论 -
【HAL】入口模块调用流程:camxhal3、camxentry、camxhal3entry调用关系
之间文章讲过,CameraProvider中通过hw_get_module接口,来获取HAL层camx模块接口,其获取的就是camxhal3entry中的HAL_MODULE_INFO_SYM结构体。如图所示,而camxhal3entry会先将camxhal3中的入口函数结构体注册到camxentry中,camxentry的工作是根据不同平台,将结构体进行相应的原子操作的地址转换,确保读取一致的指针值。总结:camxhal3entry会获取camxentry转换好的入口函数结构体地址,调用到camxh.原创 2021-03-10 16:57:01 · 1019 阅读 · 0 评论 -
【HAL】Android Qcom Camera缩略名词汇总
BPS(Bayer Processing Segments): Bayer处理阶段IFE(Image front-end engine): 图像前端引擎。video/preview的Bayer处理;3A数据…TFE(Thin Front End)IPE(Image-processing engine): 图像处理引擎。NPS(ICA/ANR/TF) + PPS(CAC/LTM/ASF and color processing)NPS: 噪声处理部分。PPS: 后处理部分。ICA(Image Co.原创 2021-03-02 15:38:58 · 3000 阅读 · 0 评论 -
【HAL】hw_get_module分析:加载HAL层库,获取camx模块接口
1.HAL module implementation路径:android\vendor\qcom\proprietary\camx\src\core\hal\camxhal3entry.cpp// Name of the hal_module_info#define HAL_MODULE_INFO_SYM HMI// Name of the hal_module_info as a string#define HAL_MODULE_INFO_SYM_AS_STR "HMI原创 2020-11-19 16:57:53 · 1366 阅读 · 0 评论