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) |