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 (类)

FLASH 类描述符。

V4L2_CID_FLASH_LED_MODE (菜单)

定义闪光灯 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 (菜单)

定义闪光灯 LED 频闪的来源。

V4L2_FLASH_STROBE_SOURCE_SOFTWARE

使用 V4L2_CID_FLASH_STROBE 控件触发闪光灯频闪。

V4L2_FLASH_STROBE_SOURCE_EXTERNAL

闪光灯频闪由外部来源触发。通常这是一个传感器,这使得可以将闪光灯频闪的开始与曝光的开始同步。

V4L2_CID_FLASH_STROBE (按钮)

频闪闪光灯。当 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 (按钮)

立即停止闪光灯频闪。

V4L2_CID_FLASH_STROBE_STATUS (布尔值)

频闪状态:闪光灯当前是否正在频闪。这是一个只读控件。

V4L2_CID_FLASH_TIMEOUT (整数)

闪光灯的硬件超时。从频闪开始经过此时间段后,频闪将停止。

V4L2_CID_FLASH_INTENSITY (整数)

当闪光灯 LED 处于闪光灯模式 (V4L2_FLASH_LED_MODE_FLASH) 时,闪光灯频闪的强度。如果可能,单位应为毫安 (mA)。

V4L2_CID_FLASH_TORCH_INTENSITY (整数)

当闪光灯 LED 处于手电筒模式 (V4L2_FLASH_LED_MODE_TORCH) 时,闪光灯 LED 的强度。如果可能,单位应为毫安 (mA)。在出现某些故障时,可能无法设置此控件。请参阅 V4L2_CID_FLASH_FAULT。

V4L2_CID_FLASH_INDICATOR_INTENSITY (整数)

指示灯 LED 的强度。指示灯 LED 可以完全独立于闪光灯 LED。如果可能,单位应为微安 (uA)。

V4L2_CID_FLASH_FAULT (位掩码)

与闪光灯相关的故障。故障说明闪光灯芯片本身或连接到它的 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 (布尔值)

启用或禁用氙气闪光灯电容器的充电。

V4L2_CID_FLASH_READY (布尔值)

闪光灯是否已准备好频闪?氙气闪光灯需要在频闪之前为其电容器充电。LED 闪光灯通常在频闪后需要一个冷却期,在此期间无法进行另一次频闪。这是一个只读控件。