Поделиться через


CSPROPERTY_VIDCAP_VIDEOCOMPRESSION (Compact 2013)

3/26/2014

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_GETINFO_S

CSPROPERTY_VIDEOCOMPRESSION_GETINFO_S

CSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE

Yes

Yes

Filter

CSPROPERTY_VIDEOCOMPRESSION_S

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

See Also

Reference

Camera Driver Enumerations
CSPROPERTY_VIDEOCOMPRESSION_GETINFO_S
CSPROPERTY_VIDEOCOMPRESSION_S
CS_CompressionCaps