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