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

另请参阅

CreateVideoDecoderNegotiateCryptoSessionKeyeExchange