DXVA2_AES_CTR_IV structure (dxva2api.h)

Contains an initialization vector (IV) for 128-bit Advanced Encryption Standard CTR mode (AES-CTR) block cipher encryption.

Syntax

typedef struct _DXVA2_AES_CTR_IV {
  UINT64 IV;
  UINT64 Count;
} DXVA2_AES_CTR_IV;

Members

IV

The IV, in big-endian format.

Count

The block count, in big-endian format.

Remarks

For AES-CTR encryption, the pvPVPState member of the DXVA2_DecodeBufferDesc structure points to a DXVA2_AES_CTR_IV structure.

The D3DAES_CTR_IV structure and the DXVA2_AES_CTR_IV structure are equivalent.

Sequential Counts

If the IDirect3DDevice9Video::GetContentProtectionCaps method returns the D3DCPCAPS_SEQUENTIAL_CTR_IV flag, the caller should keep IV unchanged when submitting multiple buffers for the same video frame, and Count should be in sequential order of the previous submission for the frame.

Example: Suppose the software decoder submits three buffers for a single frame, and that each buffer contains three 128-bit blocks. For the first buffer, IV can be any value. For the next two buffers, the same value of IV must be used. The value of Count starts at 1. For the second buffer, Count equals 4 (1 + 3 blocks from the first submission). For the third buffer, Count equals 7 (4 + 3 blocks from the second submission).

When the D3DCPCAPS_SEQUENTIAL_CTR_IV capability is present, it is recommended to submit data in 128-bit blocks.

Requirements

Requirement Value
Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Header dxva2api.h

See also

DXVA2_DecodeBufferDesc

Media Foundation Structures