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