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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章