PFND3DDDI_DECODEEXECUTE回调函数 (d3dumddi.h)

DecodeExecute 函数使用给定的 Microsoft DirectX 视频加速器 (VA) 解码设备执行解码操作。

语法

PFND3DDDI_DECODEEXECUTE Pfnd3dddiDecodeexecute;

HRESULT Pfnd3dddiDecodeexecute(
  HANDLE hDevice,
  const D3DDDIARG_DECODEEXECUTE *unnamedParam2
)
{...}

参数

hDevice

显示设备的句柄 (图形上下文) 。

unnamedParam2

pData [in]

指向描述要执行的 DirectX VA 解码操作 的 D3DDDIARG_DECODEEXECUTE 结构的指针。

返回值

DecodeExecute 返回以下值之一:

返回代码 说明
S_OK 已成功执行 DirectX VA 解码操作。
E_OUTOFMEMORY DecodeExecute 无法分配完成所需的内存。

注解

Microsoft Direct3D 运行时对所有标准 DirectX VA 解码操作调用 DecodeExecute 函数。 首次为每个帧调用 DecodeExecute 时,由 pData 指定的D3DDDIARG_DECODEEXECUTE结构应包含解码帧所需的所有缓冲区信息。 随后可以为同一帧调用 DecodeExecute;但是,这些调用只需要增量数据。 如果特定 DirectX VA 解码类型的 GUID 不使用 D3DDDIARG_DECODEEXECUTE 中指定的缓冲区,则缓冲区的句柄和说明将设置为 NULL。 例如,由于 MPEG2 解码类型需要图片参数、宏块缓冲区和残差缓冲区,因此所有这些项都必须存在于每个帧的第一次调用中。 但是,根据数据的大小,Direct3D 运行时可能会再次调用 DecodeExecute ,以仅提供解码整个帧所需的其他残差数据。

DirectX VA 1.0 通过调用 DdMoCompQueryStatus 函数支持外部同步机制。 在 DirectX VA 2.0 中,用户模式显示驱动程序应执行自己的同步,类似于同步三维管道的方式。 有关此同步的详细信息,请参阅 同步视频解码操作

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
目标平台 桌面
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

D3DDDIARG_DECODEEXECUTE

D3DDDI_DEVICEFUNCS