DXVADDI_VIDEOPROCESSORCAPS structure (d3dumddi.h)
The DXVADDI_VIDEOPROCESSORCAPS structure describes the video processing capabilities of a specific deinterlace mode.
Syntax
typedef struct _DXVADDI_VIDEOPROCESSORCAPS {
[out] D3DDDI_POOL InputPool;
[out] UINT NumForwardRefSamples;
[out] UINT NumBackwardRefSamples;
[out] D3DDDIFORMAT OutputFormat;
[out] UINT DeinterlaceTechnology;
[out] UINT ProcAmpControlCaps;
[out] UINT VideoProcessorOperations;
[out] UINT NoiseFilterTechnology;
[out] UINT DetailFilterTechnology;
} DXVADDI_VIDEOPROCESSORCAPS;
Members
[out] InputPool
A D3DDDI_POOL-typed value that indicates the memory pool from which the interlaced source surfaces should be allocated.
[out] NumForwardRefSamples
The required number of forward reference samples for the defined deinterlace mode. The samples are in subsequent fields. This value is zero for bob and line blending and can be other values (such as 1, 2, or 3) for adaptive deinterlacing and frame-rate conversion.
[out] NumBackwardRefSamples
The required backward reference samples for the defined deinterlace mode. The samples are in former fields. This value is zero for bob, 1 for line blending and can be other values (such as 1, 2, or 3) for adaptive deinterlacing and frame-rate conversion.
[out] OutputFormat
A D3DDDIFORMAT-typed value that indicates the pixel format of the uncompressed output frames. Typically, a deinterlace algorithm outputs frames in a pixel format that matches the input sample format. This member ensures that the Video Mixing Renderer (VMR) or other video renderer is able to supply the correct output frame surfaces to the deinterlacing hardware.
Note that if the DXVADDI_VIDEOPROCESS_YUV2RGB value is returned in the VideoProcessorOperations member, the VMR determines that valid output formats are specified by this member as well as an D3DFMT_X8R8G8B8 format.
[out] DeinterlaceTechnology
A bitwise OR of the following values to indicate the underlying deinterlacing technology that is used to implement the deinterlacing algorithm. The values can be combined as required to most closely match the algorithm's implementation.
Value | Meaning |
---|---|
DXVADDI_DEINTERLACETECH_UNKNOWN | The deinterlacing technology is unknown. |
DXVADDI_DEINTERLACETECH_BOBLINEREPLICATE | The deinterlace algorithm creates missing lines by repeating the line either above or below a missing line. This method looks jagged and is not recommended. |
DXVADDI_DEINTERLACETECH_BOBVERTICALSTRETCH | A deinterlace algorithm that creates missing lines by vertically stretching each video field by a factor of two by averaging two lines. Slight vertical adjustments are made to ensure that the resulting image does not move up and down. |
DXVADDI_DEINTERLACETECH_BOBVERTICALSTRETCH4TAP | A deinterlace algorithm that creates missing lines by vertically stretching each video field by a factor of two by using a [-1, 9, 9, -1] / 16 filter across four lines. Slight vertical adjustments are made to ensure that the resulting image does not move up and down. |
DXVADDI_DEINTERLACETECH_MEDIANFILTERING | The pixels in the missing line are recreated by a median filtering operation. |
DXVADDI_DEINTERLACETECH_EDGEFILTERING | Pixels in the missing line are recreated by an edge filter. In this process, spatial directional filters are applied to determine the orientation of edges in the picture content, and missing pixels are created by filtering along (rather than across) the detected edges. |
DXVADDI_DEINTERLACETECH_FIELDADAPTIVE | Pixels in the missing line are recreated by switching on a field-by-field basis between either spatial or temporal interpolation, depending on the amount of motion. |
DXVADDI_DEINTERLACETECH_PIXELADAPTIVE | Pixels in the missing line are recreated by switching on a pixel-by-pixel basis between either spatial or temporal interpolation, depending on the amount of motion. |
DXVADDI_DEINTERLACETECH_MOTIONVECTORSTEERED | Objects within a sequence of video fields. The missing pixels are recreated after first aligning the movement axis of the individual objects in the scene to make them parallel with the time axis. |
DXVADDI_DEINTERLACETECH_INVERSETELECINE | A deinterlace algorithm that can undo the 3:2 pull-down process that is used for displaying 24Hz-content on 60Hz-displays, 25Hz-content on 50Hz-displays, or so on. |
[out] ProcAmpControlCaps
A bitwise OR of the following values to indicate the ProcAmp operations that the hardware supports.
Value | Meaning |
---|---|
DXVADDI_PROCAMP_NONE | The hardware does not support any ProcAmp operations. |
DXVADDI_PROCAMP_BRIGHTNESS | Brightness adjustments to the video image are allowed. |
DXVADDI_PROCAMP_CONTRAST | Contrast adjustments to the video image are allowed. |
DXVADDI_PROCAMP_HUE | Hue adjustments to the video image are allowed. |
DXVADDI_PROCAMP_SATURATION | Saturation adjustments to the video image are allowed. |
[out] VideoProcessorOperations
A bitwise OR of the following values to indicate which additional video processing operations the hardware can perform concurrently with the requested VideoProcessBlt operation.
Value | Meaning |
---|---|
DXVADDI_VIDEOPROCESS_NONE | The hardware cannot perform any more video processing operations. |
DXVADDI_VIDEOPROCESS_YUV2RGB | Video conversion from the YUV color space to the RGB color space is allowed. The RGB format that is used has at least 8 bits of precision for each color component. If this operation is possible, a buffer copy within the VMR can be avoided. Note that conversion from the RGB color space to the YUV color space is not required. |
DXVADDI_VIDEOPROCESS_STRETCHX | Aspect ratio correction can be performed at the same time as the video is ProcAmp-adjusted if the hardware is able to stretch or shrink horizontally. |
DXVADDI_VIDEOPROCESS_STRETCHY | Aspect ratio adjustment is combined with a general picture resizing operation to scale the video image within an application-defined composition space. This operation is rare and not an essential feature. It is best if the scaling that is required for resizing the video to fit into the application window can be done at the same time as the scaling required for ProcAmp adjustment. This type of operation avoids cumulative artifacts. |
DXVADDI_VIDEOPROCESS_ALPHABLEND | The VMR does not perform a buffer copy when an alpha value is changed. Applications rarely alter the constant alpha value that is associated with the video stream, so this operation is a low priority feature. |
DXVADDI_VIDEOPROCESS_SUBRECTS | The video processing device can operate on a subrectangle region of the video image. This operation is useful if the video image must be cropped before being processed further as the size of the output frame is reduced. |
DXVADDI_VIDEOPROCESS_SUBSTREAMS | The video processing device can combine video substreams with the video stream. |
DXVADDI_VIDEOPROCESS_SUBSTREAMSEXTENDED | Necessary color adjustments can be made to the source video streams and substreams. These adjustments are indicated in the extended color data, as the video is deinterlaced, composited with the substreams, and written to the destination surface. |
DXVADDI_VIDEOPROCESS_YUV2RGBEXTENDED | A color-space-conversion operation can be performed as the deinterlaced and composited pixels are written to the destination surface by using the extended color information that is specified for the source and destination surfaces. |
DXVADDI_VIDEOPROCESS_ALPHABLENDEXTENDED | An alpha-blend operation can be performed with the destination surface when the deinterlaced and composited pixels are written to the destination surface. The driver must handle background color based on the alpha value of the Alpha member of the D3DDDIARG_VIDEOPROCESSBLT structure. When the alpha value is 1.0, the background color is drawn opaque (without transparency). When the alpha value is 0.0, the background should not be drawn (transparent). |
DXVADDI_VIDEOPROCESS_CONSTRICTION | The video processing device can temporarily reduce the output frame to a size that the ConstrictionSize member of the D3DDDIARG_VIDEOPROCESSBLT structure specifies. |
DXVADDI_VIDEOPROCESS_NOISEFILTER | The video processing device can perform noise filtering operations on the video stream. |
DXVADDI_VIDEOPROCESS_DETAILFILTER | The video processing device can perform detail filtering operations on the video stream. |
DXVADDI_VIDEOPROCESS_PLANARALPHA | The video processing device can apply a constant alpha blend to the entire video stream (plane) while it mixes the video stream and substreams together. The Alpha member of D3DDDIARG_VIDEOPROCESSBLT specifies the alpha value. |
DXVADDI_VIDEOPROCESS_LINEARSCALING | The video processing device can linearly scale the video stream. |
DXVADDI_VIDEOPROCESS_GAMMACOMPENSATED | The video processing device can perform gamma conversion on the video stream. |
DXVADDI_VIDEOPROCESS_MAINTAINSORIGINALFIELDDATA | The video processing device can maintain the original field data. |
[out] NoiseFilterTechnology
A bitwise OR of the following values to indicate the underlying technology that is used to implement noise filtering. The values can be combined as required to most closely match the noise-filter implementation.
Value | Meaning |
---|---|
DXVADDI_NOISEFILTERTECH_UNSUPPORTED | No noise-filter technology is supported. |
DXVADDI_NOISEFILTERTECH_UNKNOWN | The noise-filter technology is unknown. |
DXVADDI_NOISEFILTERTECH_MEDIAN | The video processing device uses median noise filtering. |
DXVADDI_NOISEFILTERTECH_TEMPORAL | The video processing device uses temporal noise filtering. |
DXVADDI_NOISEFILTERTECH_BLOCKNOISE | The video processing device uses block noise filtering. |
DXVADDI_NOISEFILTERTECH_MOSQUITONOISE | The video processing device uses mosquito noise filtering. |
[out] DetailFilterTechnology
A bitwise OR of the following values to indicate the underlying technology that is used to implement detail filtering. The values can be combined as required to most closely match the detail-filter implementation.
Value | Meaning |
---|---|
DXVADDI_DETAILFILTERTECH_UNSUPPORTED | No detail-filter technology is supported. |
DXVADDI_DETAILFILTERTECH_UNKNOWN | The detail-filter technology is unknown. |
DXVADDI_DETAILFILTERTECH_EDGE | The video processing device uses edge detail filtering. |
DXVADDI_DETAILFILTERTECH_SHARPENING | The video processing device uses sharpening detail filtering. |
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available in Windows Vista and later versions of the Windows operating systems. |
Header | d3dumddi.h (include D3dumddi.h) |