PROPSETID_VIDCAP_VIDEOPROCAMP

The PROPSETID_VIDCAP_VIDEOPROCAMP property set controls devices that can adjust image color attributes of analog or digital signals.

The KSPROPERTY_VIDCAP_VIDEOPROCAMP enumeration in ksmedia.h specifies the properties of this set.

Support for this property set is optional and should be implemented only by devices that allow adjustment of brightness, contrast, hue, and other image quality settings.

Prior to USB video class, this enumeration contained the following property items:

KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION

KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS

KSPROPERTY_VIDEOPROCAMP_COLORENABLE

KSPROPERTY_VIDEOPROCAMP_CONTRAST

KSPROPERTY_VIDEOPROCAMP_GAMMA

KSPROPERTY_VIDEOPROCAMP_HUE

KSPROPERTY_VIDEOPROCAMP_SATURATION

KSPROPERTY_VIDEOPROCAMP_SHARPNESS

KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE

KSPROPERTY_VIDEOPROCAMP_GAIN

With the introduction of the USB Video Class Driver, the following properties were added to the KSPROPERTY_VIDCAP_VIDEOPROCAMP enumeration:

KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER

KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER_LIMIT

KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE_COMPONENT

KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY

Each property in the PROPSETID_VIDEOPROCAMP property set includes a range and default value. The range for the property set is defined in real-world units to allow programmatic control of parameters. Each device can define a subset of this range, as well as a step size. This allows controls, such as sliders and scroll bars, to be programmed to give a visible effect for each step.

For example, the overall theoretical range for brightness is defined as -100 to 100 IRE units. IRE is an NTSC-defined measure of video levels, where 0 corresponds to the blanking, or full-black level, and 100 represents pure white. If a VideoProcAmp was able to shift a pure black input signal (perhaps generated by completely covering the camera lens) and cause it to appear as pure white, then its range would be 0 to 100 IRE.

Most VideoProcAmps actually provide a limited range of brightness control. One way to measure the range is to cover the camera lens and determine the output signal over the range of adjustment and then normalize this to IRE units. After the range has been calculated, the stepping value can be derived by taking the maximum and minimum values and dividing by the number of adjustment steps (max + min)/N adjustment steps.

Note that values used in the property sets are multiplied by 100 to give improved granularity.

DirectShow Interface

The DirectShow IAMVideoProcAmp interface (see the DirectShow documentation in the Microsoft Windows SDK) provides access to the properties of this set.