CSPROPERTY_VIDCAP_VIDEOCOMPRESSION (Windows Embedded CE 6.0)
1/6/2010
This enumeration provides values that represent the properties in the PROPSETID_VIDCAP_VIDEOCOMPRESSION property set. They describe aspects of video compression.
Syntax
typedef enum {
CSPROPERTY_VIDEOCOMPRESSION_GETINFO,
CSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE,
CSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME,
CSPROPERTY_VIDEOCOMPRESSION_QUALITY,
CSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME,
CSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE,
CSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE,
} CSPROPERTY_VIDCAP_VIDEOCOMPRESSION;
Elements
CSPROPERTY_VIDEOCOMPRESSION_GETINFO
Used to get the video compression capabilities of the device. This property must be implemented.The property value (operation data) is a CSPROPERTY_VIDEOCOMPRESSION_GETINFO_S structure.
CSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE
Used to get or set the key frame rate. This property must be implemented.The property value (operation data) is a LONG.
The Value member of the CSPROPERTY_VIDEOCOMPRESSION_S structure is used to get or set this property.
CSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME
Used to get or set the predicted (P) frame interval. This property must be implemented.The property value (operation data) is a LONG.
The Value member of the CSPROPERTY_VIDEOCOMPRESSION_S structure specifies the number of P frames per key frame. If a set request provides a negative Value, the minidriver should set the P frame rate to the default value.
Minidrivers that support this property should set the CS_CompressionCaps_CanBFrame flag (see CS_CompressionCaps) in the Capabilities member of the CSPROPERTY_VIDEOCOMPRESSION_GETINFO_S structure that is used to get the minidriver's video compression capabilities
CSPROPERTY_VIDEOCOMPRESSION_QUALITY
Used to get or set the quality of video compression. This property must be implemented.The property value (operation data) is a LONG.
The Value member of the CSPROPERTY_VIDEOCOMPRESSION_S structure is used to specify the quality metric.
Values for this property range from 0 to 10000. Zero indicates the lowest quality, 10000 the highest. The minidriver determines its default value.
Minidrivers that support this property should set the CS_CompressionCaps_CanQuality flag in the Capabilities member of the CSPROPERTY_VIDEOCOMPRESSION_GETINFO_S structure that is used to get the minidriver's video compression capabilities. If a minidriver sets the CS_CompressionCaps_CanQuality, it should support both get and set requests for the property.
CSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME
Used to temporarily override the key frame rate. This property is optional.The property value (operation data) is a LONG.
The Value member of the CSPROPERTY_VIDEOCOMPRESSION_S structure specifies the number of the frame that is to be made a key frame.
This property is not supported by video capture minidrivers.
CSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE
Used to temporarily override the frame size. This property is optional.The property value (operation data) is a LONG.
The Value member of the CSPROPERTY_VIDEOCOMPRESSION_S structure is used to specify the overriding data rate for the frame.
Minidrivers that support this property should set the CS_CompressionCaps_CanCrunch flag in the Capabilities member of the CSPROPERTY_VIDEOCOMPRESSION_GETINFO_S structure that is used to get the device's video compression capabilities.
This property is not supported by video capture minidrivers.
CSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE
Used to get or set the data rate that describes the average frame size. This property must be implemented.The property value (operation data) is a LONG.
The Value member of the CSPROPERTY_VIDEOCOMPRESSION_S structure is used to specify the window size.
Minidrivers that support this property should set the CS_CompressionCaps_CanWindow flag in the Capabilities member of the CSPROPERTY_VIDEOCOMPRESSION_GETINFO_S structure that is used to get the minidriver's video compression capabilities. If a minidriver sets the CS_CompressionCaps_CanWindow flag, it should provide both get and set support for the property.
For a window of size n, the average frame size of any consecutive n frames must not exceed the stream's specified data rate, although individual frames may be larger or smaller. For example, if the data rate has been set to 150 kilobytes per second (KBps) on a 15 frame per second (fps) movie, the average size of each frame must therefore be less than or equal to 10 kilobytes. Individual frames may be larger or smaller just so long as the average size (calculated across 15 frames per second of movie) is less than or equal to 10 kilobytes.
Remarks
The following table summarizes the usages for the CSPROPERTY_VIDCAP_VIDEOCOMPRESSION property types.
Property | Get | Set | Target | Property Descriptor Type | Property Value Type |
---|---|---|---|---|---|
CSPROPERTY_VIDEOCOMPRESSION_GETINFO |
Yes |
No |
Filter |
||
CSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE |
Yes |
Yes |
Filter |
LONG |
|
CSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME |
Yes |
Yes |
Filter |
CSPROPERTY_VIDEOCOMPRESSION_S |
LONG |
CSPROPERTY_VIDEOCOMPRESSION_QUALITY |
Yes |
Yes |
Filter |
CSPROPERTY_VIDEOCOMPRESSION_S |
LONG |
CSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME |
No |
Yes |
Filter |
CSPROPERTY_VIDEOCOMPRESSION_S |
LONG |
CSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE |
No |
Yes |
Filter |
CSPROPERTY_VIDEOCOMPRESSION_S |
LONG |
CSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE |
Yes |
Yes |
Filter |
CSPROPERTY_VIDEOCOMPRESSION_S |
LONG |
Requirements
Header | csmedia.h |
Windows Embedded CE | Windows Embedded CE 6.0 and later |
See Also
Reference
Camera Driver Enumerations
CSPROPERTY_VIDEOCOMPRESSION_GETINFO_S
CSPROPERTY_VIDEOCOMPRESSION_S
CS_CompressionCaps