PFND3D11_1DDI_VIDEOPROCESSORBLT callback function

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

Syntax

PFND3D11_1DDI_VIDEOPROCESSORBLT Pfnd3d111DdiVideoprocessorblt;

HRESULT Pfnd3d111DdiVideoprocessorblt(
  D3D10DDI_HDEVICE Arg1,
  D3D11_1DDI_HVIDEOPROCESSOR Arg2,
  D3D11_1DDI_HVIDEOPROCESSOROUTPUTVIEW Arg3,
  UINT Arg4,
  UINT Arg5,
  const D3D11_1DDI_VIDEO_PROCESSOR_STREAM *Arg6
)
{...}

Parameters

Arg1

hDevice [in]

A handle to the display device (graphics context).

Arg2

hVideoProcessor [in]

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

Arg3

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.

Arg4

OutputFrame [in]

The zero-based index of the output video frame.

Arg5

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.
 

Arg6

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 code Description
S_OK The video processing operation completed successfully.
E_OUTOFMEMORY Memory was not available to complete the operation.

Remarks

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.
 

Requirements

   
Minimum supported client Windows 8
Minimum supported server Windows Server 2012
Target Platform Desktop
Header d3d10umddi.h (include D3d10umddi.h)

See Also

CreateVideoProcessor

CreateVideoProcessorOutputView

D3D11_1DDI_VIDEO_PROCESSOR_CAPS

D3D11_1DDI_VIDEO_PROCESSOR_STREAM

RECT

VideoProcessorSetOutputStereoMode

VideoProcessorSetStreamStereoFormat