Android 10 Camera -- datastruct -- camera3_device_t

File: hardware\libhardware\include\hardware\camera3.h

/**********************************************************************
 *
 * Camera device definition
 *
 */
typedef struct camera3_device {
    /**
     * common.version must equal CAMERA_DEVICE_API_VERSION_3_0 to identify this
     * device as implementing version 3.0 of the camera device HAL.
     *
     * Performance requirements:
     *
     * Camera open (common.module->common.methods->open) should return in 200ms, and must return
     * in 500ms.
     * Camera close (common.close) should return in 200ms, and must return in 500ms.
     *
     */
    hw_device_t common;
    camera3_device_ops_t *ops;
    void *priv;
} camera3_device_t;

这个结构体是 camera HAL 核心结构体之一,是对 venor camera HAL 实现的抽象,APP 通过 Framework对底层Camera设备(物理设备和逻辑虚拟设备)的操作都是通过对 camera3_device_t 实例对象来进行的。

  • common
    Android hardware device 结构体,所有Android OS上的外设在HAL层的通用抽象结构体。
  • *ops
    Android hardware 给专门给Camera适配实现的一套Camera相关业务的操作方法集。非常重要。后面单独开一篇文章分析。
  • *priv
    不同SOC平台可能有一些独有的设计,这些设计是Android现有设计无法很好用通用框架实现,这里给出一个 void *指针指向vendor SOC 自己独有的实现内容。
    PS:priv空指针在这里的用途与Linux中被广泛使用的private_data指针类似,例如 struct file.private_data。
发布了81 篇原创文章 · 获赞 31 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xiaosaerjt/article/details/105662788