CHANNEL_CAPS

Contains the capabilities of a video capture channel.


typedef struct {
    DWORD dwFlags;              //see below
    DWORD dwSrcRectXMod;        //see below
    DWORD dwSrcRectYMod;        //see below
    DWORD dwSrcRectWidthMod;    //see below
    DWORD dwSrcRectHeightMod;   //see below
    DWORD dwDstRectXMod;        //see below
    DWORD dwDstRectYMod;        //see below
    DWORD dwDstRectWidthMod;    //see below
    DWORD dwDstRectHeightMod;   //see below
} CHANNEL_CAPS;

dwFlags

Flags providing information about the channel. The following flags are defined:

VCAPS_OVERLAY

Indicates the channel is capable of overlay. This flag is used only for VIDEO_EXTERNALOUT channels.

VCAPS_SRC_CAN_CLIP

Indicates the source rectangle can be set smaller than the maximum dimensions.

VCAPS_DST_CAN_CLIP

Indicates the destination rectangle can be set smaller than the maximum dimensions.

VCAPS_CAN_SCALE

Indicates the source rectangle can be a different size than the destination rectangle.


dwSrcRectXMod, dwSrcRectYMod

Granularity allowed when positioning the source rectangle in the horizontal and vertical directions.

dwSrcRectWidthMod, dwSrcRectHeightMod

Granularity allowed when setting the width and height of the source rectangle.

dwDstRectXMod, dwDstRectYMod

Returns the granularity allowed when positioning the destination rectangle in the horizontal and vertical directions.

dwDstRectWidthMod, dwDstRectHeightMod

Returns the granularity allowed when setting the width and height of the destination rectangle.

Some channels can only use source and destination rectangles which fall on 2, 4, or 8 pixel boundaries. Similarly, some channels only accept capture rectangles widths and heights that are multiples of a fixed value. Rectangle dimensions indicated by modulus operators are considered advisory. When requesting a particular rectangle, the application must always check the return value to insure the request was accepted by the driver. For example, if dwDstRectWidthMod is set to 64, the application might try to set destination rectangles with widths of 64, 128, 192, 256, ..., and 640 pixels. The driver might actually support a subset of these sizes and indicates the supported sizes with the return value of the DVM_DST_RECT message. If a channel supports arbitrarily positioned rectangles, with arbitrary sizes, the values above should all be set to 1.