PFND3D11_1DDI_VIDEOPROCESSORBLT回调函数 (d3d10umddi.h)
对一个或多个输入样本执行视频处理操作,并将结果写入 Direct3D 图面。
语法
PFND3D11_1DDI_VIDEOPROCESSORBLT Pfnd3d111DdiVideoprocessorblt;
HRESULT Pfnd3d111DdiVideoprocessorblt(
D3D10DDI_HDEVICE unnamedParam1,
D3D11_1DDI_HVIDEOPROCESSOR unnamedParam2,
D3D11_1DDI_HVIDEOPROCESSOROUTPUTVIEW unnamedParam3,
UINT unnamedParam4,
UINT unnamedParam5,
const D3D11_1DDI_VIDEO_PROCESSOR_STREAM *unnamedParam6
)
{...}
参数
unnamedParam1
hDevice [in]
显示设备的句柄 (图形上下文) 。
unnamedParam2
hVideoProcessor [in]
通过调用 CreateVideoProcessor 函数创建的视频处理器对象的句柄。
unnamedParam3
hOutputView [in]
视频处理器输出视图的资源句柄。 此句柄是通过调用 CreateVideoProcessorOutputView 函数创建的。
unnamedParam4
OutputFrame [in]
输出视频帧的从零开始的索引。
unnamedParam5
StreamCount [in]
在 pStream 参数引用的数组中要处理的输入流数。
unnamedParam6
pStream [in]
指向包含输入流相关信息的 D3D11_1DDI_VIDEO_PROCESSOR_STREAM 结构的数组的指针。
返回值
VideoProcessorBlt 返回以下值之一:
返回代码 | 说明 |
---|---|
S_OK | 视频处理操作已成功完成。 |
E_OUTOFMEMORY | 内存无法完成操作。 |
注解
VideoProcessorBlt 根据先前设置的流状态和位块传输 (bitblt) 状态执行所有视频处理。
Microsoft Direct3D 运行时在调用驱动程序的 VideoProcessorBlt 函数之前执行以下数据验证:
- 如果矩形未根据格式的要求正确对齐,可以调整输入和输出 RECT 结构。
-
如果已启用视频处理器以生成立体声样本,则输出视图必须包含两个元素的纹理数组。
此外,必须至少指定一个立体声流。
如果已禁用视频处理器生成立体声样本,则输出视图必须包含单个元素。 此外,立体声格式不能配置为 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO。
注意 通过调用 VideoProcessorSetOutputStereoMode 启用或禁用用于制作立体声样本的视频处理器。 -
每个输入流都是通过 D3D11_1DDI_VIDEO_PROCESSOR_STREAM 结构指定的。 如果输入流的立体声格式配置为 D3D11_1DDI_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE,则 pInputSurfaceRight 成员不得设置为 NULL。 否则, pInputSurfaceRight 必须设置为 NULL。
注意 输入流的立体声格式是通过调用 VideoProcessorSetStreamStereoFormat 配置的。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |
另请参阅
CreateVideoProcessorOutputView
D3D11_1DDI_VIDEO_PROCESSOR_CAPS
D3D11_1DDI_VIDEO_PROCESSOR_STREAM