Szerkesztés

Megosztás a következőn keresztül:


KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED

KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED is an extended property control that allows more global ISO control with more granularity.

Usage summary table

Scope Control Type

Version 1

Pin (Photo)

Asynchronous

The new KSCAMERA_EXTENDEDPROP_ISO_MANUAL flag is defined in ksmedia_phone.h as follows.

#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL          0x0080000000000000

The following table contains the descriptions and requirements for the KSCAMERA_EXTENDEDPROP_HEADER structure fields for the KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED control.

The Windows 8.1 KS_CAMERACONTROL_EXTENDED_ISO remains unchanged without the support of integer manual ISO. The driver should only support the new KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED control. If both of these controls are supported, the pipeline will default to the KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED control.

If the KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED control is supported, the only capabilities that the driver can advertise are the following.

  • KSCAMERA_EXTENDEDPROP_ISO_AUTO

  • KSCAMERA_EXTENDEDPROP_ISO_MANUAL

  • KSCAMERA_EXTENDEDPROP_CAPS_ASYNCCONTROL

If the driver advertises the KSCAMERA_EXTENDEDPROP_ISO_MANUAL capability flag, it must also advertise the supported ISO ranges in the Min/Max/Step value of the KSCAMERA_EXTENDED_PROP_VIDEOPROCSETTING property. If the driver advertises a Min value of 0 and a Max value of 0, or a Step value of less than 1, the control is flagged as unusable and is rejected by the pipeline.

If the driver supports both KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED and KSPROPERTY_CAMERACONTROL_EXTENDED_ISO, the driver must advertise KSCAMERA_EXTENDEDPROP_ISO_AUTO for both KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED and KSPROPERTY_CAMERACONTROL_EXTENDED_ISO. Otherwise, both ISO controls will be flagged as unusable and rejected by the MF pipeline.

If the driver advertises KSCAMERA_EXTENDEDPROP_ISO_MANUAL in KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED and the numeric KSCAMERA_EXTENDEDPROP_ISO_XXX values in KSPROPERTY_CAMERACONTROL_EXTENDED_ISO, the numeric KSCAMERA_EXTENDEDPROP_ISO_XXX values advertised in KSPROPERTY_CAMERACONTROL_EXTENDED_ISO should be in the supported manual ISO ranges advertised by KSCAMERA_EXTENDEDPROP_ISO_MANUAL. In addition, all the numeric KSCAMERA_EXTENDEDPROP_ISO_XXX values in the supported manual ranges should be advertised by KSPROPERTY_CAMERACONTROL_EXTENDED_ISO. Otherwise, both ISO controls may be flagged as unusable and rejected by the MF pipeline.

For example, capabilities of any of the following may be treated as a catastrophic failure and the control may be rejected by the MF pipeline.

  • KSCAMERA_EXTENDEDPROP_ISO_MANUAL (min= 40, max = 240, step = 20), KSCAMERA_EXTENDEDPROP_ISO_50

  • KSCAMERA_EXTENDEDPROP_ISO_MANUAL (min= 40, max = 240, step = 20), KSCAMERA_EXTENDEDPROP_ISO_80

  • KSCAMERA_EXTENDEDPROP_ISO_MANUAL (min= 40, max = 240, step = 20), KSCAMERA_EXTENDEDPROP_ISO_400

Capabilities of any of the following are accepted by the MF pipeline.

  • KSCAMERA_EXTENDEDPROP_ISO_MANUAL (min= 40, max = 240, step = 20), KSCAMERA_EXTENDEDPROP_ISO_80, KSCAMERA_EXTENDEDPROP_ISO_100, KSCAMERA_EXTENDEDPROP_ISO_200

  • KSCAMERA_EXTENDEDPROP_ISO_MANUAL (min= 40, max = 240, step = 20)

  • KSCAMERA_EXTENDEDPROP_ISO_80, KSCAMERA_EXTENDEDPROP_ISO_200

Member Description

Version

This must be 1,

PinId

This must be the Pin ID associated with the photo pin.

Size

This must be sizeof(KSCAMERA_EXTENDEDPROP_HEADER)+sizeof(KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING),

Result

This contains the error results of the last SET operation. If no SET operation has taken place, this must be 0.

Capability

This must be a bit wise OR of KSCAMERA_EXTENDEDPROP_ISO_AUTO and\or KSCAMERA_EXTENDEDPROP_ISO_MANUAL, and the KSCAMERA_EXTENDEDPROP_CAPS_ASYNCCONTROL flag. This control must be asynchronous.

Flags

This is a read/write field. This can be any of the KSCAMERA_EXTENDEDPROP_ISO_XXX flags defined above.

The following table contains the descriptions and requirements for the KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING structure fields for the ISO DDI. This structure is defined in ksmedia.h.

Member Description

Mode

This is unused and must be 0.

Min/Max/Step

The Min/Max/Step contains the minimum/maximum/increment of the manual ISO speed supported by the camera driver. The driver must return these for GET operations if manual ISO is supported.

VideoProc

If MANUAL is specified in the Flags field of the KSCAMERA_EXTENDEDPROP_HEADER, the VideoProc.Value.ul must specify the current ISO speed value within the range described by the Min/Max/Step parameter.

If Flags other than Manual is specified, for SET operations, the VideoProc field is ignored. For GET operations, the driver must always return the current ISO speed regardless.

Reserved

This is unused. This must be ignored by the driver.

GET call

The driver must advertise its capability in KSCAMERA_EXTENDEDPROP_HEADER.Capability and the current ISO flag at driver in KSCAMERA_EXTENDEDPROP_HEADER.Flags.  If no SET call has ever been issued before the Get call, driver should return its default in KSCAMERA_EXTENDEDPROP_HEADER.Flags.

If the KSCAMERA_EXTENDEDPROP_ISO_MANUAL flag is advertised in the Capability field, the driver must further advertise the supported ranges in KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING.Min/Max/Step.

The driver must also report the current ISO speed in use in KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING.VideoProc.Value.ul. If no SET call has ever been issued before the GET call, the driver should return its current ISO speed in KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING.VideoProc.Value.ul.

SET call

The KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING.VideoProc.Value.ul contains the desired integer manual ISO speed if KSCAMERA_EXTENDEDPROP_ISO_MANUAL is specified in KSCAMERA_EXTENDEDPROP_HEADER.Flags.

If the KSCAMERA_EXTENDEDPROP_ISO_AUTO flag is specified in KSCAMERA_EXTENDEDPROP_HEADER.Flags, KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING.VideoProc.Value.ul will be ignored.

Requirements

Header

Ksmedia.h