// d3d10umddi.h
PFND3DWDDM2_4DDI_VIDEODECODERBEGINFRAME Pfnd3dwddm24DdiVideodecoderbeginframe;
HRESULT Pfnd3dwddm24DdiVideodecoderbeginframe(
D3D10DDI_HDEVICE hDevice,
D3D11_1DDI_HDECODE hDecode,
const D3DWDDM2_4DDIARG_VIDEODECODERBEGINFRAME *pBeginFrame
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
Starts a DirectX Video Acceleration (DXVA) decoding operation to decode a video frame.
hDeviceA handle to the display device (graphics context).
hDecodeA handle to the video decoder object that was created through a call to the CreateVideoDecoder function.
pBeginFrameA pointer to a D3DWDDM2_4DDIARG_VIDEODECODERBEGINFRAME_RS4_0 structure. For more information, see the Remarks section.
Returns one of the following HRESULT values:
| Return code | Description |
|---|---|
| S_OK | The session key for the cryptographic session was negotiated successfully. |
| E_OUTOFMEMORY | Memory was not available to complete the operation. |
//Declaration
PFND3DWDDM2_4DDI_VIDEODECODERBEGINFRAME Pfnd3dwddm24DdiVideodecoderbeginframe;
// Definition
HRESULT Pfnd3dwddm24DdiVideodecoderbeginframe
(
D3D10DDI_HDEVICE hDevice
D3D11_1DDI_HDECODE hDecode
CONST D3DWDDM2_4DDIARG_VIDEODECODERBEGINFRAME *pBeginFrame
)
{...}
PFND3DWDDM2_4DDI_VIDEODECODERBEGINFRAME
If this function returns S_OK, the Microsoft Direct3D runtime calls the VideoDecoderSubmitBuffers function to perform the decoding operations. When all decoding operations have been executed, the runtime calls the VideoDecoderEndFrame function to stop the decoding operation on a video frame.
[!NOTE] Each call to VideoDecoderBeginFrame must have a matching call to VideoDecoderEndFrame, and VideoDecoderBeginFrame calls cannot be nested.
The D3DWDDM2_4DDIARG_VIDEODECODERBEGINFRAME_RS4_0 structure contains the following data:
If the pContentKey member of this structure is not set to NULL, the buffer that is referenced by this member contains a per-frame content key. This key must be used to decrypt the data instead of using the session key.
[!NOTE] If the pContentKey member is not set to NULL, the buffer that is referenced by this member is encrypted by using the session key with the AES-ECB algorithm.
If the pContentKey member is set to NULL, the video frame data should be decrypted by using the session key.
CreateVideoDecoder NegotiateCryptoSessionKeyeExchange