Cas Client repo update-2.
-Parse EMM in Cas plugin -Entitlement key rotation support -Multi_content_license support
This commit is contained in:
@@ -1035,6 +1035,23 @@ message WidevinePsshData {
|
||||
// PSSHs of type ENTITLED_KEY.
|
||||
repeated EntitledKey entitled_keys = 14;
|
||||
|
||||
// Video feature identifier, which is used in conjunction with |content_id|
|
||||
// to determine the set of keys to be returned in the license. Cannot be
|
||||
// present in conjunction with |key_ids|.
|
||||
// Current values are "HDR".
|
||||
optional string video_feature = 15;
|
||||
|
||||
// Audiofeature identifier, which is used in conjunction with |content_id|
|
||||
// to determine the set of keys to be returned in the license. Cannot be
|
||||
// present in conjunction with |key_ids|.
|
||||
// Current values are "commentary".
|
||||
optional string audio_feature = 16;
|
||||
|
||||
// Entitlement period index for media using entitlement key rotation. Can only
|
||||
// present in ENTITLEMENT PSSHs. It always corresponds to the entitlement key
|
||||
// period.
|
||||
optional uint32 entitlement_period_index = 17;
|
||||
|
||||
//////////////////////////// Deprecated Fields ////////////////////////////
|
||||
enum Algorithm {
|
||||
UNENCRYPTED = 0;
|
||||
|
||||
@@ -16,9 +16,11 @@ message CaDescriptorPrivateData {
|
||||
// Content ID.
|
||||
optional bytes content_id = 2;
|
||||
|
||||
// Entitlement key IDs for current content per track. Each track will allow up
|
||||
// to 2 entitlement key ids (odd and even entitlement keys).
|
||||
repeated bytes entitlement_key_ids = 3;
|
||||
// Deprecated.
|
||||
repeated bytes deprecated_entitlement_key_ids = 3;
|
||||
|
||||
// The groups ids this channel belongs to.
|
||||
repeated bytes group_ids = 4;
|
||||
}
|
||||
|
||||
// Widevine fingerprinting.
|
||||
@@ -42,6 +44,21 @@ message ServiceBlocking {
|
||||
optional int64 end_time_sec = 4;
|
||||
}
|
||||
|
||||
// The payload field for an EMM.
|
||||
message EmmPayload {
|
||||
repeated Fingerprinting fingerprinting = 1;
|
||||
repeated ServiceBlocking service_blocking = 2;
|
||||
// Epoch time in seconds. The time when the EMM is generated.
|
||||
optional int64 timestamp_secs = 3;
|
||||
}
|
||||
|
||||
message SignedEmmPayload {
|
||||
// Serialized EmmPayload.
|
||||
optional bytes serialized_payload = 1;
|
||||
// ECC (Elliptic Curve Cryptography) signature of |serialized_payload|.
|
||||
optional bytes signature = 2;
|
||||
}
|
||||
|
||||
message EcmMetaData {
|
||||
enum CipherMode {
|
||||
UNSPECIFIED = 0;
|
||||
@@ -57,6 +74,17 @@ message EcmMetaData {
|
||||
// Optional. The minimum age required to watch the content. The value
|
||||
// represents actual age, with 0 means no restriction.
|
||||
optional uint32 age_restriction = 2 [default = 0];
|
||||
// If specified, it means entitlement key rotation is enabled. The value will
|
||||
// be included in the license request. The server is expected to return
|
||||
// entitlement keys accordingly (e.g., keys for |entitlement_period_index| and
|
||||
// |entitlement_period_index| + 1).
|
||||
optional uint32 entitlement_period_index = 3;
|
||||
// Used only if entitlement key rotation is enabled. This parameter controls
|
||||
// the probability of requesting a new license by clients upon receiving this
|
||||
// ECM. The purpose is to spread out requests to avoid request storms. A
|
||||
// client will request a new license with possibility = 1 /
|
||||
// |entitlement_rotation_window_left|.
|
||||
optional uint32 entitlement_rotation_window_left = 4 [default = 1];
|
||||
}
|
||||
|
||||
message EcmKeyData {
|
||||
|
||||
Reference in New Issue
Block a user