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;
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. |
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.