KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY

KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY 中定义的KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY属性 ID 用于从驱动程序获取每帧功能。 这是仅 GET 控件;驱动程序必须使任何 SET 调用失败。

使用情况摘要

若要使用驱动程序查询每帧设置功能, KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY 属性控件将连同数据缓冲区一起发送到驱动程序。 在 GET 调用中,驱动程序使用下面指定的格式布局在提供的数据缓冲区中填充每帧设置功能有效负载。

功能有效负载必须以功能标头开头。 每个功能项都必须以项标题开头。 如果功能项具有有效负载,则项标头必须后跟相应的项有效负载。

在 GET 调用中,首先将零长度缓冲区发送到驱动程序,以找出保存整个功能有效负载所需的数据缓冲区大小。 在响应调用时,驱动程序必须返回 STATUS_BUFFER_OVERFLOW 所需的功能缓冲区大小,该大小必须至少为 KSCAMERA_PERFRAMESETTING_CAP_HEADER

以下是 在 KSCAMERA_PERFRAMESETTING_ITEM_TYPE 枚举中定义的项类型的上下文中 KSCAMERA_PERFRAMESETTING_CAP_HEADER 字段的说明。 有效负载字段表示 KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER 结构之后的项有效负载结构。

曝光时间项

大小

这是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 结构的大小 + KSPROPERTY_STEPPING_LONGLONG 结构的大小(如果支持手动模式)。

类型

这必须 KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME

标志

这包含可用标志。 此字段必须包含通过对 ksmedia.h 中定义的标志执行按位 OR 提供的标志。

#define KSCAMERA_PERFRAMESETTING_AUTO       0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL     0x0000000200000000

有效负载

如果驱动程序支持手动模式,则必须在KSPROPERTY_STEPPING_LONGLONG中指定范围有效负载。Bounds.SignedMinimum\SignedMaxmum 和 KSPROPERTY_STEPPING_LONGLONG。SteppingDelta

闪存项

大小

这是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 结构的大小。

类型

这必须 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_FLASH

标志

这包含可用标志。 此字段必须包含通过对 ksmedia.h 中下面定义的 FLASH 标志执行按位 OR 提供的标志。

#define KSCAMERA_EXTENDEDPROP_FLASH_OFF                                 0x0000000000000000  
#define KSCAMERA_EXTENDEDPROP_FLASH_ON                                  0x0000000000000001  
#define KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER                  0x0000000000000002  
#define KSCAMERA_EXTENDEDPROP_FLASH_AUTO                                0x0000000000000004  
#define KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER                0x0000000000000008  
#define KSCAMERA_EXTENDEDPROP_FLASH_REDEYEREDUCTION                     0x0000000000000010

有效负载

闪存项没有有效负载。 如果在标志中指定了KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER或KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER,则 power 参数的范围为 0 到 100。

曝光补偿项

大小

这是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 结构的大小 + KSPROPERTY_STEPPING_LONG 结构的大小(如果支持步骤)。

类型

这必须 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION

标志

这包含可用标志。 此字段必须包含可通过对 ksmedia.h 中下面定义的 EVCOMP 标志执行按位 OR 或ksmedia_phone.h 中定义的 AUTO 标志来获取的标志。

#define KSCAMERA_PERFRAMESETTING_AUTO               0x0000000100000000
#define KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP      0x0000000000000001  
#define KSCAMERA_EXTENDEDPROP_EVCOMP_QUARTERSTEP    0x0000000000000002  
#define KSCAMERA_EXTENDEDPROP_EVCOMP_THIRDSTEP      0x0000000000000004  
#define KSCAMERA_EXTENDEDPROP_EVCOMP_HALFSTEP       0x0000000000000008  
#define KSCAMERA_EXTENDEDPROP_EVCOMP_FULLSTEP       0x0000000000000010

有效负载

如果驱动程序仅支持自动模式,则不包括有效负载。 否则,必须在 KSPROPERTY_STEPPING_LONG 结构中指定范围有效负载。 EV 补偿的最小值和最大值是绝对 EV 补偿值,由 KSPROPERTY_STEPPING_LONG确定。Bounds.SignedMinimum 和 KSPROPERTY_STEPPING_LONG。Bounds.SignedMaximum。 EV 补偿的步骤由对应于浮点 (的最低 EVCOMP 步骤标志的步长决定,例如,KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP) 为 1/6。

ISO 速度项

大小

这是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 结构的大小 + KSPROPERTY_STEPPING_LONG 结构的大小(如果支持手动模式)。

类型

这必须 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_ISO

标志

此字段包含可用标志。 此字段必须包含通过对 ksmedia.h 和 ksmedia_phone.h 中定义的 ISO 标志执行按位 OR 提供的标志。 如果支持每帧 ISO,驱动程序必须至少支持以下功能之一,ISO_AUTO和ISO_MANUAL,其中ISO_AUTO是必需的。 如果播发ISO_MANUAL,驱动程序必须在KSPROPERTY_STEPPING_LONG中进一步播发支持的 ISO 速度 min\max\step 如果需要手动 ISO,则必须支持ISO_MANUAL。

#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL    0x0080000000000000
#define KSCAMERA_EXTENDEDPROP_ISO_AUTO      0x0000000000000001

有效负载

如果驱动程序仅支持自动模式,则不包括有效负载。 否则,必须在 KSPROPERTY_STEPPING_LONG 结构中指定范围有效负载。 ISO 速度的最小值、最大值和步长取决于 KSPROPERTY_STEPPING_LONG。Bounds.UnsignedMinimum、KSPROPERTY_STEPPING_LONG。Bounds.UnsignedMaximumKSPROPERTY_STEPPING_LONG。Bounds.SteppingDelta。 支持整数手动 ISO 的驱动程序应仅播发支持 ISO 速度范围 (最小/最大/步长) ISO_MANUAL。 每帧 ISO 不支持数字ISO_Xxx预设。

焦点项

大小

这是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 结构的大小 + KSPROPERTY_STEPPING_LONG 结构的大小。

类型

这必须 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_FOCUS

标志

这包含可用标志。 必须通过对 ksmedis.h 中下面定义的标志执行按位 OR 来设置此字段。

#define KSCAMERA_PERFRAMESETTING_MANUAL     0x0000000200000000

有效负载

必须在KSPROPERTY_STEPPING_LONG结构中指定范围有效负载。 镜头位置的最小值、最大值和步长取决于KSPROPERTY_STEPPING_LONG。Bounds.UnsignedMinimum,KSPROPERTY_STEPPING_LONG。Bounds.UnsignedMaximumKSPROPERTY_STEPPING_LONG。单步执行。 每帧设置焦点的行为及其与全局焦点设置的交互方式定义如下。

  1. 镜头位置粘性:但焦点命令不是。 如果在全局设置中选择了连续自动对焦 (CAF) ,则仅对指定帧覆盖 CAF 操作,并且 CAF 可能会移动镜头位置 (在提供手动对焦后进行完全扫描) 。

  2. 除非在 PFS 中使用手动设置显式重写,否则始终采用全局焦点设置。

  3. 全局 AF 是一次性的,并且仅在未指定手动替代的情况下应用于第一帧。

  4. 全局 CAF 适用于所有帧,除非由 PFS 显式重写。

  5. 在手动 PFS (镜头位置保持) 后,全局手动对焦设置不会还原。

确认图像类型

大小

这是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 结构的大小。

类型

这必须 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION

标志

不使用标志字段。

有效负载

此项没有有效负载。

自定义属性项

大小

这是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 结构的大小 + GUID 的大小。

类型

这必须 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM

标志

不使用标志字段。

有效负载

这是自定义属性 GUID。

要求

标头

Ksmedia.h