DDVIDEOPORTCAPS
The DDVIDEOPORTCAPS structure describes the capabilities and alignment restrictions of a video port. This structure is used with the IDDVideoPortContainer::EnumVideoPorts method.
typedef struct _DDVIDEOPORTCAPS {
DWORD dwSize;
DWORD dwFlags;
DWORD dwMaxWidth;
DWORD dwMaxVBIWidth;
DWORD dwMaxHeight;
DWORD dwVideoPortID;
DWORD dwCaps;
DWORD dwFX;
DWORD dwNumAutoFlipSurfaces;
DWORD dwAlignVideoPortBoundary;
DWORD dwAlignVideoPortPrescaleWidth;
DWORD dwAlignVideoPortCropBoundary;
DWORD dwAlignVideoPortCropWidth;
DWORD dwPreshrinkXStep;
DWORD dwPreshrinkYStep;
DWORD dwNumVBIAutoFlipSurfaces;
DWORD dwNumPreferredAutoflip;
WORD wNumFilterTapsX;
WORD wNumFilterTapsY;
} DDVIDEOPORTCAPS, *LPDDVIDEOPORTCAPS;
Members
- dwSize
- Size of the structure, in bytes. This must be initialized before the structure is used.
- dwFlags
- Flag values indicating the fields that contain valid data. The following flags are defined:
- DDVPD_AUTOFLIP
- The dwNumAutoFlipSurfaces member is valid.
- DDVPD_ALIGN
- The dwAlignVideoPortBoundary, dwAlignVideoPortPrescaleWidth, dwAlignVideoPortCropBoundary, and dwAlignVideoPortCropWidth are valid.
- DDVPD_CAPS
- The dwCaps member is valid.
- DDVPD_FILTERQUALITY
- The wNumFilterTapsX and wNumFilterTapsY members are valid.
- DDVPD_FX
- The dwFX member is valid.
- DDVPD_HEIGHT
- The dwMaxHeight member is valid.
- DDVPD_ID
- The dwVideoPortID member is valid.
- DDVPD_PREFERREDAUTOFLIP
- The dwNumPreferredAutoflip member is valid.
- DDVPD_WIDTH
- The dwMaxWidth member is valid.
- dwMaxWidth
- Maximum width of the video port field.
- dwMaxVBIWidth
- Maximum width of the VBI data.
- dwMaxHeight
- Maximum height of the video port field.
- dwVideoPortID
- Zero-based index identifying the video port.
- dwCaps
- The following video-port capabilities:
- DDVPCAPS_AUTOFLIP
- Flip can be performed automatically to avoid tearing when a VREF occurs. If the data is being interleaved in memory, it flips on every other VREF.
- DDVPCAPS_COLORCONTROL
- Can perform color control operations on incoming data before writing to the frame buffer.
- DDVPCAPS_INTERLACED
- Supports interlaced video.
- DDVPCAPS_NONINTERLACED
- Supports noninterlaced video.
- DDVPCAPS_OVERSAMPLEDVBI
- Accepts VBI data in a different format or width than regular video data.
- DDVPCAPS_READBACKFIELD
- Supports the IDirectDrawVideoPort::GetFieldPolarity method.
- DDVPCAPS_READBACKLINE
- Supports the IDirectDrawVideoPort::GetVideoLine method.
- DDVPCAPS_SHAREABLE
- Supports two genlocked video streams that share the video port; one stream uses the even fields, and the other uses the odd fields. Separate parameters (including address, scaling, cropping, and so on) are maintained for each field.
- DDVPCAPS_SKIPEVENFIELDS
- Even fields of video can be automatically discarded.
- DDVPCAPS_SKIPODDFIELDS
- Odd fields of video can be automatically discarded.
- DDVPCAPS_SYNCMASTER
- Can drive the graphics refresh rate, based on the video port sync.
- DDVPCAPS_SYSTEMMEMORY
- Can write to surfaces created in system memory.
- DDVPCAPS_VBIANDVIDEOINDEPENDENT
- The VBI and video portions of the video stream can be controlled by independent processes.
- DDVPCAPS_VBISURFACE
- Data within the VBI can be written to a different surface.
- dwFX
- The following additional video-port capabilities:
- DDVPFX_CROPTOPDATA
- Limited cropping is available to crop VBI data.
- DDVPFX_CROPX
- Incoming data can be cropped in the x-direction before it is written to the surface.
- DDVPFX_CROPY
- Incoming data can be cropped in the y-direction before it is written to the surface.
- DDVPFX_IGNOREVBIXCROP
- The video port can ignore the left and right cropping coordinates when cropping oversampled VBI data.
- DDVPFX_INTERLEAVE
- Supports interleaving interlaced fields in memory.
- DDVPFX_MIRRORLEFTRIGHT
- Supports mirroring left to right as the video data is written into the frame buffer.
- DDVPFX_MIRRORUPDOWN
- Supports mirroring top to bottom as the video data is written into the frame buffer.
- DDVPFX_PRESHRINKX
- Data can be arbitrarily shrunk in the x-direction before it is written to the surface.
- DDVPFX_PRESHRINKY
- Data can be arbitrarily shrunk in the y-direction before it is written to the surface.
- DDVPFX_PRESHRINKXB
- Data can be binary shrunk (1/2, 1/4, 1/8, and so on) in the x-direction before it is written to the surface.
- DDVPFX_PRESHRINKYB
- Data can be binary shrunk (1/2, 1/4, 1/8, and so on) in the y-direction before it is written to the surface.
- DDVPCAPS_PRESHRINKXS
- Data can be shrunk in the x-direction by increments of 1/x, where x is specified in the dwShrinkXStep member.
- DDVPCAPS_PRESHRINKYS
- Data can be shrunk in the y-direction by increments of 1/y, where y is specified in the dwShrinkYStep
- DDVPFX_PRESTRETCHX
- Data can be arbitrarily stretched in the x-direction before it is written to the surface.
- DDVPFX_PRESTRETCHY
- Data can be arbitrarily stretched in the y-direction before it is written to the surface.
- DDVPFX_PRESTRETCHXN
- Data can be integer stretched in the x-direction before it is written to the surface. (1x, 2x, 3x, and so forth)
- DDVPFX_PRESTRETCHYN
- Data can be integer stretched in the y-direction before it is written to the surface. (1x, 2x, 3x, and so forth)
- DDVPFX_VBICONVERT
- Data within the VBI can be converted, independent of the remaining video data.
- DDVPFX_VBINOINTERLEAVE
- Interleaving can be disabled for data within the VBI.
- DDVPFX_VBINOSCALE
- Scaling can be disabled for data within the VBI.
- dwNumAutoFlipSurfaces
- Maximum number of autoflippable surfaces supported by the video port.
- dwAlignVideoPortBoundary
- Byte restriction of placement within the surface.
- dwAlignVideoPortPrescaleWidth
- Byte restriction of width after prescaling.
- dwAlignVideoPortCropBoundary
- Byte restriction of left cropping.
- dwAlignVideoPortCropWidth
- Byte restriction of cropping width.
- dwPreshrinkXStep
- Width can be shrunk in the x-direction in steps of 1/dwPreshrinkXStep.
- dwPreshrinkYStep
- Height can be shrunk in the y-direction in steps of 1/dwPreshrinkYStep.
- dwNumVBIAutoFlipSurfaces
- Maximum number of autoflipping surfaces capable of receiving data transmitted during the vertical blanking interval (VBI), independent of the remainder of the video stream. When constructing the autoflipping chain, the number of VBI surfaces must equal the number of surfaces receiving the remainder of the video data.
- dwNumPreferredAutoflip
- Optimal number of autoflippable surfaces supported by the hardware.
- wNumFilterTapsX and wNumFilterTapsY
- Number of taps that the prescaler filter uses in the x- and y-directions. The value of 0 indicates that no prescaling is performed in that direction, 1 indicates that the prescaler performs replication, 2 indicates that the prescaler uses two taps, and so on.
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
Header: Declared in dvp.h.