camera_info結構參考

camera_info結構參考

#include < camera_common.h >

資料欄位

整數面對
整數方向
uint32_t設備版本
常數camera_metadata_t *靜態相機特性
整數資源成本
字元**衝突設備
尺寸_t衝突設備長度

詳細說明

檔案camera_common.h161行的定義。

現場文檔

char** 衝突設備

表示為 NULL 終止字串的相機設備 ID 數組,指示在使用該相機設備時無法同時開啟的其他設備。

此欄位旨在用於指示該相機設備是多個其他相機設備的組合,或具有禁止同時使用的硬體依賴性。如果不存在依賴關係,則該欄位中可能會傳回 NULL 來指示這一點。

當此相機設備開啟時,相機服務永遠不會同時開啟此清單中的任何裝置。

相機服務不會清除此欄位中指向的字串,並且在插入該裝置時必須保留這些字串。

版本資訊(基於camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 或更低版本:

無效。可以假定為 NULL。不要閱讀該欄位。

CAMERA_MODULE_API_VERSION_2_4 或更高版本:

始終有效。

檔案camera_common.h404行的定義。

size_t 衝突設備長度

衝突設備欄位中給出的數組長度。

版本資訊(基於camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 或更低版本:

無效。可假定為 0。請勿讀取該欄位。

CAMERA_MODULE_API_VERSION_2_4 或更高版本:

始終有效。

檔案camera_common.h419行的定義。

uint32_t 設備版本

camera_device_t.common.version 的值。

版本資訊(基於camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0:

無效。可以假設為 CAMERA_DEVICE_API_VERSION_1_0。不要閱讀該欄位。

CAMERA_MODULE_API_VERSION_2_0 或更高版本:

始終有效

檔案camera_common.h219行的定義。

整體面

相機面向的方向。請參閱 system/core/include/system/camera.h 以了解以相機為導向的定義。

版本資訊(基於camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 或更低版本:

它應該是 CAMERA_FACING_BACK 或 CAMERA_FACING_FRONT。

CAMERA_MODULE_API_VERSION_2_4 或更高版本:

它應該是 CAMERA_FACING_BACK、CAMERA_FACING_FRONT 或 CAMERA_FACING_EXTERNAL。

檔案camera_common.h177行的定義。

整體方向

相機影像的方向。該值是相機影像需要順時針旋轉的角度,以便它以其自然方向正確顯示在顯示器上。它應該是 0、90、180 或 270。

例如,假設裝置具有自然高的螢幕。後置相機感應器橫向安裝。你正在看著螢幕。如果相機感應器的頂部與螢幕的右邊緣自然方向對齊,則該值應為 90。如果前置相機感應器的頂部與螢幕的右側對齊,則該值應為 90。是270。

版本資訊(基於camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 或更低版本:

在所有camera_module版本中都有效。

CAMERA_MODULE_API_VERSION_2_4 或更高版本:

如果相機朝向為 CAMERA_FACING_BACK 或 CAMERA_FACING_FRONT,則有效;如果相機朝向為 CAMERA_FACING_EXTERNAL,則無效。

檔案camera_common.h202行的定義。

int 資源成本

使用此相機的總資源“成本”,表示為 [0, 100] 範圍內的整數值,其中 100 表示共享資源的總使用量,這是相機子系統的限製瓶頸。這可能是一個非常粗略的估計,並用作相機服務的提示,以確定何時禁止多個應用程式同時打開相機服務所宣傳的不同相機。

攝影機服務必須能夠同時開啟和使用 HAL 公開的攝影機設備的任意組合,其中這些攝影機的資源成本總和 <= 100。為了確定成本,必須假設每個攝影機設備都已配置並運行透過相機元資料為該設備公開的配置設定中可用的最大資源消耗幀速率和流量大小設定。

相機服務可能仍會嘗試同時開啟總資源成本 > 100 的相機設備組合。這可能會成功,也可能失敗。如果成功,則由於具有多個開啟裝置的資源限製而不受支援的配置組合在配置呼叫期間應該會失敗。如果總資源成本 <= 100,則任何流配置設定或其他設備功能的開啟和配置都不應失敗,而當設備是唯一開啟的相機設備時,這些功能通常會成功。

此欄位將用於確定當其他應用程式正在使用其他相機設備時是否允許背景應用程式使用該相機設備。注意:相機服務永遠不會允許多個應用程式同時開啟相同相機設備。

範例用例:

前任。 1:相機設備 0 = 後置相機 相機設備 1 = 前置鏡頭

  • 由於 ISP 頻寬有限,使用這兩種攝影機設備會導致幀速率大幅下降。

配置:

相機設備 0 - resource_cost = 51conflicting_devices = null 相機設備 1 - resource_cost = 51conflicting_devices = null

結果:

由於資源成本總和 > 100,如果較高優先順序的應用程式開啟任一設備,相機服務將不允許較低優先順序的應用程式開啟任一裝置。如果較低優先順序的應用程式正在使用較高優先順序隨後嘗試開啟的設備,則較低優先順序的應用程式將被迫斷開該設備的連線。

如果最高優先順序的應用程式選擇,它仍可能嘗試開啟兩個裝置(因為這些裝置未在衝突裝置欄位中列為衝突裝置),但這些裝置的使用可能會在開啟或設定呼叫中失敗。

前任。 2:相機設備 0 = 左後相機 相機設備 1 = 右後相機 相機設備 2 = 使用裝置 0 和 1 使用的右後相機和左後相機感應器的組合立體相機 攝影機裝置 3 = 前置相機

  • 由於硬體限制,最多可以同時開啟兩個攝影機。組合立體相機可能永遠不會與兩個後置相機設備(設備 0、1)中的任何一個同時使用,並且通常需要太多頻寬才能與前置相機(設備 3)同時使用。

配置:

相機設備 0 - resources_cost = 50conflicting_devices = { 2 } 相機設備 1 - resources_cost = 50conflicting_devices = { 2 } 相機設備 2 - resources_cost = 100liclicting_devices = { 0, 1 } 相機設備

結果:

根據衝突設備字段,相機服務保證永遠不會允許以下開放設備集:{ 1, 2 }、{ 0, 2 }。

根據resource_cost字段,如果高優先級的前台應用程式正在使用相機設備0,則後台應用程式將被允許打開相機設備1或3(但如果前台應用程式打開另一個設備,則將被迫再次斷開連接)。

最高優先權應用程式仍可能嘗試同時開啟裝置 0、2 和 3,但 HAL 可能會在開啟或配置此組合的呼叫時失敗。

前任。 3: 相機設備0 = 後置相機相機設備1 = 前置相機相機設備2 = 低功耗前置鏡頭,使用與裝置1 相同的感應器,但僅公開可在低功耗模式下使用的影像串流分辨率

  • 由於共享實體感測器,不可能同時使用兩個前置鏡頭(設備 1、2)。由於硬體限制,對於某些串流配置來說,使用後置相機和「高功率」前置相機(裝置1)可能是不可能的,但「低功耗」前置相機選項可能始終會被使用,因為它具有特殊的專用硬體。

    配置:

    相機設備 0 - resources_cost = 100conflicting_devices = null 相機設備 1 - resources_cost = 100conflicting_devices = { 2 } 相機設備 2 - resource_cost = 0conflicting_devices = { 1 } 結果:

    根據衝突設備字段,相機服務保證永遠不會允許以下開放設備集:{ 1, 2 }。

    根據resource_cost字段,只有最高優先權的應用程式可以嘗試同時開啟裝置0和1。如果較高優先順序的應用程式未使用裝置1 或2,則低優先順序的後台應用程式可能會開啟裝置2(但如果較高優先順序的應用程式隨後開啟裝置1 或2,則將被迫斷開設備連接)。

版本資訊(基於camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 或更低版本:

無效。可以假設為 100。請勿讀取此欄位。

CAMERA_MODULE_API_VERSION_2_4 或更高版本:

始終有效。

檔案camera_common.h376行的定義。

constcamera_metadata_t * static_camera_characteristics

相機的固定特徵,包括 system/media/camera/docs/docs.html 中指定的所有靜態相機元資料。這應該是排序的元資料緩衝區,並且呼叫者不能修改或釋放。此指標應在相機模組的生命週期內保持有效,並且在 get_camera_info() 返回後,其中的值不得更改。

版本資訊(基於camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0:

無效。額外的特性不可用。不要閱讀該欄位。

CAMERA_MODULE_API_VERSION_2_0 或更高版本:

如果 device_version >= CAMERA_DEVICE_API_VERSION_2_0 則有效。否則請勿閱讀。

檔案camera_common.h241行的定義。


該結構的文檔是從以下文件產生的: