KSPROPERTY_CAMERACONTROL_EXTENDED_FRAMERATE_THROTTLE

KSPROPERTY_CAMERACONTROL_EXTENDED_FRAMERATE_THROTTLE is a dynamic control that reduces the frame rate of the video by a scale factor of the original frame rate.

Usage summary table

Get Set Target Property descriptor type Property value type
Yes Yes Filter KSPROPERTY KSCAMERA_EXTENDEDPROP_HEADER

The property value (operation data) contains a KSCAMERA_EXTENDEDPROP_HEADER structure and a KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING structure.

The total property data size is sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING). The Size member of KSCAMERA_EXTENDEDPROP_HEADER is set to this total property data size.

The Capability member of KSCAMERA_EXTENDEDPROP_HEADER contains one of the following values.

Frame rate throttle control Description
KSCAMERA_EXTENDEDPROP_FRAMERATE_THROTTLE_OFF Framerate Throttle is disabled.
KSCAMERA_EXTENDEDPROP_FRAMERATE_THROTTLE_ON Framerate Throttle is enabled.

The Flags member of KSCAMERA_EXTENDEDPROP_HEADER contains the flag currently set for the camera. KSCAMERA_EXTENDEDPROP_FRAMERATE_THROTTLE_OFF should be the default.

This property control is synchronous and not cancelable.

This control only applies while the camera is actively streaming. To be actively streaming means a preview or record pin must be in KSSTATE_RUN, ready and able to deliver frames. On a set if a stream isn't active, then this control should return STATUS_INVALID_DEVICE_STATE. Even as this is a Filter scope control, this shouldn't impact photo-pin or non-RGB streams such as IR/depth.

Remarks

Get the property

When responding to a KSPROPERTY_TYPE_GET request, the driver sets the members of the KSCAMERA_EXTENDEDPROP_HEADER to the following.

Member Value
Version 1
PinId KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF)
Size Must be sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING)
Result Must be 0. This field is used to return the result of last SET operation.
Capability KSCAMERA_EXTENDEDPROP_FRAMERATE_THROTTLE_ON or 0x1
Flags This can either be KSCAMERA_EXTENDEDPROP_FRAMERATE_THROTTLE_ON or KSCAMERA_EXTENDEDPROP_FRAMERATE_THROTTLE_OFF.

If no framerate throttle flag previously set, then the driver sets Flags to KSCAMERA_EXTENDEDPROP_FRAMERATE_THROTTLE_OFF. The members of the KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING structure that follows KSCAMERA_EXTENDEDPROP_HEADER are set according to the requirements of the framerate throttle mode.

Set the property

When the property is set, a KSPROPERTY_TYPE_SET request, the Flags member of KSCAMERA_EXTENDEDPROP_HEADER contains the framerate throttle mode to set. The VideoProc.Value member of KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING must be ignored when Flags contains the KSCAMERA_EXTENDEDPROP_FRAMERATE_THROTTLE_OFF flag.

Payload structure

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

Member Description
Mode This is unused and must be 0.
Min/Max/Step The Max must be 100, which indicates no change in frame rate. The Step should be a factor of 100 such that Max % Step == 0. Min should be equal to at least one step size or a multiple of the step size. Min can't be 0.
VideoProc The VideoProc.Value.ul must specify the scale factor percentage for this control. This value should be within the range of Min and Max, and it should be set to a multiple of the Step value.
By setting this value appropriately an application can make sure that the new frame rate never exceeds the original value, nor go to zero. For example, setting a value of 80 would produce a frame rate of 80% of the original frame rate.
Reserved This is unused. This must be ignored by the driver.

Requirements

Minimum supported client: Windows 11, version 24H2

Header: ksmedia.h (include Ksmedia.h)

See also

KSCAMERA_EXTENDEDPROP_HEADER

KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING