Shaka Packager SDK
Public Member Functions | List of all members
shaka::media::WidevineKeySource Class Reference

#include <widevine_key_source.h>

Inheritance diagram for shaka::media::WidevineKeySource:
shaka::media::KeySource

Public Member Functions

 WidevineKeySource (const std::string &server_url, bool add_common_pssh)
 
Status FetchKeys (const std::vector< uint8_t > &content_id, const std::string &policy)
 
void set_protection_scheme (FourCC protection_scheme)
 Set the protection scheme for the key source.
 
void set_signer (std::unique_ptr< RequestSigner > signer)
 
void set_key_fetcher (std::unique_ptr< KeyFetcher > key_fetcher)
 
void set_group_id (const std::vector< uint8_t > &group_id)
 
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, const std::string &stream_label, EncryptionKey *key) override
 

Detailed Description

WidevineKeySource talks to the Widevine encryption service to acquire the encryption keys.

Definition at line 31 of file widevine_key_source.h.

Constructor & Destructor Documentation

◆ WidevineKeySource()

shaka::media::WidevineKeySource::WidevineKeySource ( const std::string &  server_url,
bool  add_common_pssh 
)
Parameters
server_urlis the Widevine common encryption server url.

Definition at line 130 of file widevine_key_source.cc.

Member Function Documentation

◆ FetchKeys() [1/2]

Status shaka::media::WidevineKeySource::FetchKeys ( EmeInitDataType  init_data_type,
const std::vector< uint8_t > &  init_data 
)
overridevirtual

Fetch keys based on the specified encrypted media init data.

Parameters
init_data_typespecifies the encrypted media init data type.
init_datacontains the init data.
Returns
OK on success, an error status otherwise.

Implements shaka::media::KeySource.

Definition at line 181 of file widevine_key_source.cc.

◆ FetchKeys() [2/2]

Status shaka::media::WidevineKeySource::FetchKeys ( const std::vector< uint8_t > &  content_id,
const std::string &  policy 
)

Fetch keys for CENC from the key server.

Parameters
content_idthe unique id identify the content.
policyspecifies the DRM content rights.
Returns
OK on success, an error status otherwise.

Definition at line 158 of file widevine_key_source.cc.

◆ GetCryptoPeriodKey()

Status shaka::media::WidevineKeySource::GetCryptoPeriodKey ( uint32_t  crypto_period_index,
const std::string &  stream_label,
EncryptionKey key 
)
overridevirtual

Get encryption key of the specified track type at the specified index.

Parameters
crypto_period_indexis the sequence number of the key rotation period for which the key is being retrieved.
stream_labelis the label of stream for which retrieving the key.
keyis a pointer to the EncryptionKey which will hold the retrieved key. Owner retains ownership, and may not be NULL.
Returns
OK on success, an error status otherwise.

Implements shaka::media::KeySource.

Definition at line 264 of file widevine_key_source.cc.

◆ GetKey() [1/2]

Status shaka::media::WidevineKeySource::GetKey ( const std::string &  stream_label,
EncryptionKey key 
)
overridevirtual

Get encryption key of the specified stream label.

Parameters
stream_labelis the label of stream for which retrieving the key.
keyis a pointer to the EncryptionKey which will hold the retrieved key. Owner retains ownership, and may not be NULL.
Returns
OK on success, an error status otherwise.

Implements shaka::media::KeySource.

Definition at line 240 of file widevine_key_source.cc.

◆ GetKey() [2/2]

Status shaka::media::WidevineKeySource::GetKey ( const std::vector< uint8_t > &  key_id,
EncryptionKey key 
)
overridevirtual

Get the encryption key specified by the CENC key ID.

Parameters
key_idis the unique identifier for the key being retreived.
keyis a pointer to the EncryptionKey which will hold the retrieved key. Owner retains ownership, and may not be NULL.
Returns
OK on success, or an error status otherwise.

Implements shaka::media::KeySource.

Definition at line 251 of file widevine_key_source.cc.

◆ set_key_fetcher()

void shaka::media::WidevineKeySource::set_key_fetcher ( std::unique_ptr< KeyFetcher key_fetcher)

Inject an KeyFetcher object, mainly used for testing.

Parameters
key_fetcherpoints to the KeyFetcher object to be injected.

Definition at line 290 of file widevine_key_source.cc.

◆ set_signer()

void shaka::media::WidevineKeySource::set_signer ( std::unique_ptr< RequestSigner signer)

Set signer for the key source.

Parameters
signersigns the request message.

Definition at line 286 of file widevine_key_source.cc.


The documentation for this class was generated from the following files: