VideoProcessorBlt function

Performs a video processing operation on one or more input samples and writes the result to a Direct3D surface.


HRESULT APIENTRY* VideoProcessorBlt(
  _In_       D3D10DDI_HDEVICE                     hDevice,
  _In_       D3D11_1DDI_HVIDEOPROCESSOR           hVideoProcessor,
  _In_       UINT                                 OutputFrame,
  _In_       UINT                                 StreamCount,
  _In_ const D3D11_1DDI_VIDEO_PROCESSOR_STREAM    *pStream


hDevice [in]

A handle to the display device (graphics context).

hVideoProcessor [in]

A handle to the video processor object that was created through a call to the CreateVideoProcessor function.

hOutputView [in]

A handle to the resource for the output view of the video processor. This handle was created through a call to the CreateVideoProcessorOutputView function.

OutputFrame [in]

The zero-based index of the output video frame.

StreamCount [in]

The number of input streams to process in the array referenced by the pStream parameter.

Note  The maximum value of this parameter is specified by the MaxStreamStates member of the D3D11_1DDI_VIDEO_PROCESSOR_CAPS structure. The maximum number of streams that can be enabled at one time is given in the MaxInputStreams member of that structure.
pStream [in]

A pointer to an array of D3D11_1DDI_VIDEO_PROCESSOR_STREAM structures that contain information about the input streams.

Return value

VideoProcessorBlt returns one of the following values:

Return codeDescription

The video processing operation completed successfully.


Memory was not available to complete the operation.



The VideoProcessorBlt performs all of the video processing based on the stream states and bit-block transfer (bitblt) states that have been previously set.

The Microsoft Direct3D runtime performs the following data validation before it calls the driver's VideoProcessorBlt function:

  • The input and output RECT structures may be adjusted if the rectangles are not aligned properly according to the requirements of the format.

  • If the video processor has been enabled to produce stereo samples, the output view must contain a texture array of two elements. Also, at least one stereo stream must be specified.

    If the video processor has been disabled from producing stereo samples, the output view must contain a single element. Also, the stereo format cannot be configured as D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO.

    Note  A video processor is enabled or disabled for the production of stereo samples through a call to VideoProcessorSetOutputStereoMode.
  • Each input stream is specified through a D3D11_1DDI_VIDEO_PROCESSOR_STREAM structure. If the stereo format of the input stream is configured to be D3D11_1DDI_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE, the pInputSurfaceRight member must not be set to NULL. Otherwise, the pInputSurfaceRight must be set to NULL.

    Note  The stereo format for an input stream is configured through a call to VideoProcessorSetStreamStereoFormat.

If multiple input streams are enabled and the video processor is enabled to produce stereo output, it is possible that one of the input streams may be a mono sample.

Note  This function does not honor a D3D11 predicate that may have been set.


Minimum supported client

Windows 8

Minimum supported server

Windows Server 2012

Target platform



D3d10umddi.h (include D3d10umddi.h)

See also




Send comments about this topic to Microsoft