Share via


Initialization Data (initData)

Initialization data refers to container-specific data that is used by a Content Decryption Module to generate a key request. Initialization data conforms to a format standardized by World Wide Web Consortium (W3C) and consists of a list of PSSH/UUID boxes. Each PSSH/UUID box represents initialization data for a particular content protection system.

Note

PSSH is defined in ISO.IEC 23001-7 2012, Information technology—MPEG systems technologies—Part 7: Common encryption in ISO base media file format files.

The following table describes the structure of the initialization data used by a PlayReady content protection system.

Name Type Description
Size DWORD The size of the whole PSSH box including the field itself.
4CC DWORD Always 0x70, 0x73, 0x73, 0x68 (pssh).
Version WORD The version of the PSSH box. Currently, if this value is greater than zero (0) all key identifiers are ignored.
Flags WORD Always 0 (zero).
Protection system ID GUID For PlayReady it's {0x9A04F079, 0x9840, 0x4286, 0xAB, 0x92, 0xE6, 0x5B, 0xE0, 0x88, 0x5F, 0x95 }.
Protection system payload size DWORD  
Actual payload Size is "Protection system payload size". PlayReady PRO.

Note

All numeric values in the previous table are represented in big endian format.

The initialization data is sent as a payload of the needKey event to your Web app. PlayReady CDM only parses the PlayReady PSSH that it first encounters—all others are ignored. Your Web app's needKey event handler should pass the initialization data to MediaKeys::createSession. You could also replace the initialization data with other values before passing it to the CDM session.