Platform SDK: DirectX

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.

Requirements

  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.