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:
With the introduction of the USB Video Class Driver, the following properties were added to the KSPROPERTY_VIDCAP_VIDEOPROCAMP enumeration:
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.
The DirectShow IAMVideoProcAmp interface (see the DirectShow documentation in the Microsoft Windows SDK) provides access to the properties of this set.