PFND3DWDDM2_4DDI_VIDEODECODERBEGINFRAME_RS4_0回调函数 (d3d10umddi.h)
启动 DirectX 视频加速 (DXVA) 解码操作以解码视频帧。
语法
PFND3DWDDM2_4DDI_VIDEODECODERBEGINFRAME_RS4_0 Pfnd3dwddm24DdiVideodecoderbeginframeRs40;
HRESULT Pfnd3dwddm24DdiVideodecoderbeginframeRs40(
D3D10DDI_HDEVICE hDevice,
D3D11_1DDI_HDECODE hDecode,
const D3DWDDM2_4DDIARG_VIDEODECODERBEGINFRAME_RS4_0 *pBeginFrame
)
{...}
参数
hDevice
显示设备的句柄 (图形上下文) 。
hDecode
通过调用 CreateVideoDecoder 函数创建的视频解码器对象的句柄。
pBeginFrame
指向D3DWDDM2_4DDIARG_VIDEODECODERBEGINFRAME_RS4_0结构的指针。 有关详细信息,请参见“备注”部分。
返回值
返回以下 HRESULT 值之一:
返回代码 | 说明 |
---|---|
S_OK | 已成功协商加密会话的会话密钥。 |
E_OUTOFMEMORY | 内存无法完成操作。 |
注解
如果此函数返回S_OK,Microsoft Direct3D 运行时将调用 VideoDecoderSubmitBuffers 函数来执行解码操作。 执行所有解码操作后,运行时会调用 VideoDecoderEndFrame 函数来停止对视频帧的解码操作。
注意
每次调用 VideoDecoderBeginFrame 都必须具有对 VideoDecoderEndFrame 的匹配调用,并且 VideoDecoderBeginFrame 调用不能嵌套。
D3DWDDM2_4DDIARG_VIDEODECODERBEGINFRAME_RS4_0结构包含以下数据:
- 将接收解密和解码数据的资源。
- 用于加密视频帧数据的内容密钥。
如果此结构的 pContentKey 成员未设置为 NULL,则此成员引用的缓冲区包含每帧内容键。 此密钥必须用于解密数据,而不是使用会话密钥。
注意
如果未将 pContentKey 成员设置为 NULL,则此成员引用的缓冲区将使用会话密钥和 AES-ECB 算法进行加密。
如果 pContentKey 成员设置为 NULL,则应使用会话密钥解密视频帧数据。
要求
要求 | 值 |
---|---|
Header | d3d10umddi.h |