1.12. 閃光燈控制參考

V4L2 閃光燈控制旨在提供對閃光燈控制器裝置的通用訪問。閃光燈控制器裝置通常用於數碼相機中。

該介面可以同時支援 LED 和氙氣閃光燈裝置。在撰寫本文時,尚未使用此介面的氙氣閃光燈驅動程式。

1.12.1. 支援的用例

1.12.1.1. 非同步 LED 閃光燈(軟體閃光)

非同步 LED 閃光燈由主機直接控制,如同感測器一樣。主機必須在影像曝光開始之前啟用閃光燈,並在曝光結束後停用閃光燈。主機完全負責閃光燈的計時。

此類裝置的示例:Nokia N900。

1.12.1.2. 同步 LED 閃光燈(硬體閃光)

同步 LED 閃光燈由主機預先程式設計(功率和超時),但由感測器透過從感測器到閃光燈的閃光訊號控制。

感測器控制閃光燈的持續時間和計時。通常必須將此資訊提供給感測器。

1.12.1.3. LED 閃光燈作為手電筒

LED 閃光燈可以與涉及相機的其他用例結合使用,也可以單獨用作手電筒。

1.12.1.4. 閃光燈控制 ID

V4L2_CID_FLASH_CLASS (class)

FLASH 類描述符。

V4L2_CID_FLASH_LED_MODE (menu)

定義閃光燈 LED 的模式,即連線到閃光燈控制器的高功率白色 LED。在存在某些故障時,可能無法設定此控制。請參閱 V4L2_CID_FLASH_FAULT。

V4L2_FLASH_LED_MODE_NONE

關閉。

V4L2_FLASH_LED_MODE_FLASH

閃光燈模式。

V4L2_FLASH_LED_MODE_TORCH

手電筒模式。

請參閱 V4L2_CID_FLASH_TORCH_INTENSITY。

V4L2_CID_FLASH_STROBE_SOURCE (menu)

定義閃光燈 LED 閃光的來源。

V4L2_FLASH_STROBE_SOURCE_SOFTWARE

閃光燈閃光透過使用 V4L2_CID_FLASH_STROBE 控制來觸發。

V4L2_FLASH_STROBE_SOURCE_EXTERNAL

閃光燈閃光由外部來源觸發。通常這是一個感測器,這使得可以將閃光燈閃光的開始與曝光開始同步。

V4L2_CID_FLASH_STROBE (button)

閃光燈閃光。當 V4L2_CID_FLASH_LED_MODE 設定為 V4L2_FLASH_LED_MODE_FLASH 且 V4L2_CID_FLASH_STROBE_SOURCE 設定為 V4L2_FLASH_STROBE_SOURCE_SOFTWARE 時有效。在存在某些故障時,可能無法設定此控制。請參閱 V4L2_CID_FLASH_FAULT。

V4L2_CID_FLASH_STROBE_STOP (button)

立即停止閃光燈閃光。

V4L2_CID_FLASH_STROBE_STATUS (boolean)

閃光燈狀態:閃光燈當前是否閃光。這是一個只讀控制。

V4L2_CID_FLASH_TIMEOUT (integer)

閃光燈的硬體超時。從閃光燈開始後經過這段時間後,閃光燈閃光將停止。

V4L2_CID_FLASH_INTENSITY (integer)

當閃光燈 LED 處於閃光燈模式 (V4L2_FLASH_LED_MODE_FLASH) 時,閃光燈閃光的強度。如果可能,單位應為毫安 (mA)。

V4L2_CID_FLASH_TORCH_INTENSITY (integer)

閃光燈 LED 在手電筒模式 (V4L2_FLASH_LED_MODE_TORCH) 下的強度。如果可能,單位應為毫安 (mA)。在存在某些故障時,可能無法設定此控制。請參閱 V4L2_CID_FLASH_FAULT。

V4L2_CID_FLASH_INDICATOR_INTENSITY (integer)

指示器 LED 的強度。指示器 LED 可能完全獨立於閃光燈 LED。如果可能,單位應為微安 (uA)。

V4L2_CID_FLASH_FAULT (bitmask)

與閃光燈相關的故障。這些故障說明了閃光燈晶片本身或連線到閃光燈晶片的 LED 中的特定問題。故障可能會阻止進一步使用某些閃光燈控制元件。特別是,如果故障影響閃光燈 LED,則 V4L2_CID_FLASH_LED_MODE 將設定為 V4L2_FLASH_LED_MODE_NONE。哪些故障具有這種影響取決於晶片。讀取故障會重置控制元件,並在可能的情況下使晶片恢復到可用狀態。

V4L2_FLASH_FAULT_OVER_VOLTAGE

到閃光燈 LED 的閃光燈控制器電壓已超過閃光燈控制器特定的限制。

V4L2_FLASH_FAULT_TIMEOUT

當用戶設定的超時(V4L2_CID_FLASH_TIMEOUT 控制)已過期時,閃光燈閃光仍然開啟。並非所有閃光燈控制器都可能在所有此類條件下設定此標誌。

V4L2_FLASH_FAULT_OVER_TEMPERATURE

閃光燈控制器已過熱。

V4L2_FLASH_FAULT_SHORT_CIRCUIT

閃光燈控制器的短路保護已被觸發。

V4L2_FLASH_FAULT_OVER_CURRENT

LED 電源中的電流已超過閃光燈控制器特定的限制。

V4L2_FLASH_FAULT_INDICATOR

閃光燈控制器已檢測到指示器 LED 上的短路或開路情況。

V4L2_FLASH_FAULT_UNDER_VOLTAGE

到閃光燈 LED 的閃光燈控制器電壓已低於閃光燈控制器特定的最低限制。

V4L2_FLASH_FAULT_INPUT_VOLTAGE

閃光燈控制器的輸入電壓低於在全電流下閃光將不可能的限制。這種情況將持續存在,直到不再設定此標誌。

V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE

LED 的溫度已超過其允許的上限。

V4L2_CID_FLASH_CHARGE (boolean)

啟用或停用氙氣閃光燈電容器的充電。

V4L2_CID_FLASH_READY (boolean)

閃光燈是否已準備好閃光?氙氣閃光燈需要在閃光之前對其電容器進行充電。LED 閃光燈通常需要在閃光之後經過一段冷卻時間,在此期間無法進行另一次閃光。這是一個只讀控制。