KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL
The KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL property ID that is defined in the KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY enumeration is used to get or configure the ROI settings and apply the desired processing.
Usage summary table
Scope | Control | Type |
---|---|---|
Version 1 |
Filter |
Asynchronous, Cancelable |
To get the current ROI settings from the driver or to configure the ROI settings and apply the desired processing (3As), the KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL extended property control is sent to the driver along with a standard KSCAMERA_EXTENDEDPROP_HEADER structure followed by a KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER structure followed by a KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL structure and then by one or more corresponding ISP specific control payload structures. The following list illustrates a data structure layout with one focus ROI and two exposure ROIs.
KSCAMERA_EXTENDEDPROP_HEADER
KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER
KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL (Focus)
KSCAMERA_EXTENDEDPROP_ROI_FOCUS
KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL (Exposure with 2 ROIs)
KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE (ROI 1)
KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE (ROI 2)
The table below contains the descriptions and requirements for the KSCAMERA_EXTENDEDPROP_HEADER structure fields when using the KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL property of the extended ROI control.
Member | Description |
---|---|
Version |
This must be 1, |
PinId |
This must be KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF), |
Size |
For the initial GET call (when no SET call has ever taken place) this must be sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER). In addition, the driver must return 0 within ControlCount in its ISO control header payload. For any other SET or GET calls, this must be sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_ ROI_ISPCONTROLHEADER) + ControlCount * sizeof(KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL) + sizeof(KSCAMERA_EXTENDEDPROP_ROI_FOCUS) * ROICount(focus) + sizeof(KSCAMERA_EXTENDEDPROP_EXPOSURE) * ROICount(exposure) + sizeof(KSCAMERA_EXTENDEDPROP_WHITEBALANCE) * ROICount(whitebalance). |
Result |
This indicates the error results of the last SET operation. If no SET operation has taken place, this must be 0. The value 0 indicates that no errors were detected for all ISP controls configured. |
Capability |
This must be a bit-wise OR of KSCAMERA_EXTENDEDPROP_CAPS_ASYNCONTROL and KSCAMERA_EXTENDEDPROP_CAPS_CANCELLABLE. |
Flags |
This is a read/write field This may be KSCAMERA_EXTENDEDPROP_FLAG_CANCELOPERATION for a SET call. This must be 0 for a GET call. |
Adjustable Output Window Considerations
The 3A ROI coordinates sent to the camera are sent relative to the current output window of the camera. If the field of view has been modified due to use of a control such as Zoom, Pan or Tilt or Digital Window, the camera (or component implementing the Digital Window/PTZ control) is responsible for mapping the provided coordinates back to the sensor's full field of view, taking the current output window into consideration to ensure that the camera's 3A algorithm is targeting the correct spot. Depending on where the field of view modification occurs, the coordinate mapping may need to be bidirectional. For example, if a camera uses the Windows Platform DMFT for face detection, but the field of view modification is implemented in a component after the Platform DMFT in the driver chain, ROI coordinates provided by the application need to be mapped back to the full field of view before sending down to the camera and ROI coordinates calculated in the Platform DMFT need to be mapped to the modified field of view before being sent to an app requesting them.
Requirements
Header |
Ksmedia.h |