Determining Channel Capabilities

Channel capabilities include overlaying video, scaling of images with the source and destination rectangles, and clipping of images with the source and destination rectangles. The DVM_GET_CHANNEL_CAPS message retrieves the channel capabilities of a driver.

Applications use DVM_GET_CHANNEL_CAPS to obtain information about the capabilities of a channel. The lParam1 parameter specifies a far pointer to a

CHANNEL_CAPS data structure and the lParam2 parameter specifies its size. The CHANNEL_CAPS structure has the following members:

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

Your driver should use the dwFlags member to return flags indicating its capabilities for overlaying video, and clipping and scaling images with the source and destination rectangles.

If your driver supports changing the size and position of the source rectangle, it should indicate the finest granularity used for changes to the rectangle in the dwSrcRectXMod, dwSrcRectYMod, dwSrcRectWidthMod, and dwSrcRectHeightMod members.

If your driver supports changing the size and position of the destination rectangle, it should indicate the finest granularity used for changes to the rectangle in the dwDstRectXMod, dwDstRectYMod, dwDstRectWidthMod, and dwDstRectHeightMod members. If a channel supports arbitrarily positioned rectangles, with arbitrary sizes, the values above should all be set to 1.

Your driver returns DV_ERR_OK if the message was processed successfully. It returns DV_ERR_NOTSUPPORTED if the message is not supported.