|
Shaka Packager SDK
|
#include <cpix_key_source.h>
Public Member Functions | |
KeySource implementation overrides. | |
| Status | FetchKeys (EmeInitDataType init_data_type, const std::vector< uint8_t > &init_data) override |
| Status | GetKey (const std::string &stream_label, EncryptionKey *key) override |
| Status | GetKey (const std::vector< uint8_t > &key_id, EncryptionKey *key) override |
| Status | GetCryptoPeriodKey (uint32_t crypto_period_index, int32_t crypto_period_duration_in_seconds, const std::string &stream_label, EncryptionKey *key) override |
Static Public Member Functions | |
| static std::unique_ptr< CpixKeySource > | Create (const CpixEncryptionParams &cpix_params) |
| static std::unique_ptr< CpixKeySource > | CreateWithFetcher (const CpixEncryptionParams &cpix_params, CpixFetcher *fetcher) |
| static std::unique_ptr< CpixKeySource > | CreateForDecryption (const CpixEncryptionParams &cpix_params) |
A key source that uses keys from a CPIX (DASH-IF Content Protection Information Exchange) document. Keys are mapped to streams through the document's ContentKeyUsageRuleList: the intendedTrackType attribute is matched against the DRM label of the stream (e.g. AUDIO, SD, HD, UHD1). DRM signaling (PSSH) is taken from the document's DRMSystemList.
Definition at line 42 of file cpix_key_source.h.
|
override |
Definition at line 613 of file cpix_key_source.cc.
|
static |
Creates a new CpixKeySource from the given parameters. Returns null if the document cannot be read or fetched, or is malformed. A key's commonEncryptionScheme binding is carried on the returned keys and enforced where the stream's actual protection scheme is known.
| cpix_params | contains parameters to setup the key source. |
Definition at line 669 of file cpix_key_source.cc.
|
static |
Creates a new CpixKeySource for decryption. Keys are looked up by key ID, so the document's usage rules and commonEncryptionScheme binding are ignored. Returns null if the document cannot be read or fetched, or is malformed.
| cpix_params | contains parameters to setup the key source. |
Definition at line 681 of file cpix_key_source.cc.
|
static |
Same as above, with an injected document fetcher. Should be used for testing only.
Definition at line 675 of file cpix_key_source.cc.
|
overridevirtual |
Fetch keys based on the specified encrypted media init data.
| init_data_type | specifies the encrypted media init data type. |
| init_data | contains the init data. |
Implements shaka::media::KeySource.
Definition at line 615 of file cpix_key_source.cc.
|
overridevirtual |
Get encryption key of the specified track type at the specified index.
| crypto_period_index | is the sequence number of the key rotation period for which the key is being retrieved. |
| crypto_period_duration_in_seconds | is the duration of the crypto period in seconds. |
| stream_label | is the label of stream for which retrieving the key. |
| key | is a pointer to the EncryptionKey which will hold the retrieved key. Owner retains ownership, and may not be NULL. |
Implements shaka::media::KeySource.
Definition at line 656 of file cpix_key_source.cc.
|
overridevirtual |
Get encryption key of the specified stream label.
| stream_label | is the label of stream for which retrieving the key. |
| key | is a pointer to the EncryptionKey which will hold the retrieved key. Owner retains ownership, and may not be NULL. |
Implements shaka::media::KeySource.
Definition at line 623 of file cpix_key_source.cc.
|
overridevirtual |
Get the encryption key specified by the CENC key ID.
| key_id | is the unique identifier for the key being retreived. |
| key | is a pointer to the EncryptionKey which will hold the retrieved key. Owner retains ownership, and may not be NULL. |
Implements shaka::media::KeySource.
Definition at line 641 of file cpix_key_source.cc.