Source release v3.3.0
This commit is contained in:
@@ -63,21 +63,31 @@ class CDM_EXPORT Cdm : public ITimerClient {
|
||||
// is used instead of App-Assisted
|
||||
} MessageType;
|
||||
|
||||
// Status codes returned by CDM functions.
|
||||
//
|
||||
typedef enum {
|
||||
// These are defined by Widevine:
|
||||
kSuccess = 0,
|
||||
kNeedsDeviceCertificate = 1,
|
||||
kSessionNotFound = 2,
|
||||
kDecryptError = 3,
|
||||
kNoKey = 4,
|
||||
|
||||
// These are analogous to the errors used by EME:
|
||||
kTypeError = 5,
|
||||
kInvalidAccess = kTypeError, // deprecated name from June 1 draft
|
||||
kNotSupported = 6,
|
||||
kInvalidState = 7,
|
||||
kQuotaExceeded = 8,
|
||||
kRangeError = 9,
|
||||
// These are analogous to the exceptions defined in the EME specification.
|
||||
// Client implementations that support the EME API should pass these
|
||||
// directly to the client application.
|
||||
// Note: kTypeError replaced kInvalidAccess in the 6/1/2015 EME spec.
|
||||
kTypeError = 1,
|
||||
kNotSupported = 2,
|
||||
kInvalidState = 3,
|
||||
kQuotaExceeded = 4,
|
||||
|
||||
// These are additional codes defined by Widevine. In client implementations
|
||||
// that support the EME API, these codes should be handled in the system
|
||||
// layer. If it is necessary to notify the client application of one of
|
||||
// these statuses, it should be mapped to one of the exception codes defined
|
||||
// in the EME specification.
|
||||
kNeedsDeviceCertificate = 101,
|
||||
kSessionNotFound = 102,
|
||||
kDecryptError = 103,
|
||||
kNoKey = 104,
|
||||
kKeyUsageBlockedByPolicy = 105,
|
||||
kRangeError = 106,
|
||||
|
||||
// The action could not be completed yet but has been scheduled to be done
|
||||
// later. A call to |event_listener.onDeferredComplete| will be made once
|
||||
@@ -341,6 +351,24 @@ class CDM_EXPORT Cdm : public ITimerClient {
|
||||
// as a preliminary step in the license request.
|
||||
virtual Status setServiceCertificate(const std::string& certificate) = 0;
|
||||
|
||||
// Create a Service Certificate Request message.
|
||||
// This is used to fetch a service certificate from the license server.
|
||||
// It is needed in cases where the system or application does not have
|
||||
// a service certificate for the license server.
|
||||
// The service certificate holds the RSA public key for the server and
|
||||
// other fields needed for provisioning. It is also needed for privacy mode.
|
||||
virtual Status getServiceCertificateRequest(std::string* message) = 0;
|
||||
|
||||
// Parse a Service Certificate Response message and extract the certificate.
|
||||
// This is used when fetching a service certificate from the license server.
|
||||
// The response input is the string returned by the license server
|
||||
// (see getServiceCertificateRequest()). The service certificate is installed
|
||||
// if no error is returned. The returned certificate string may be used in
|
||||
// future sessions as the input to setServiceCertificate(), avoiding extra
|
||||
// calls to the license server.
|
||||
virtual Status parseServiceCertificateResponse(const std::string& response,
|
||||
std::string* certificate) = 0;
|
||||
|
||||
// Determine if the device has a Device Certificate (for the current origin).
|
||||
// The Device Certificate is origin-specific, and the origin is
|
||||
// dertermined by the CDM's current IStorage object.
|
||||
@@ -360,6 +388,22 @@ class CDM_EXPORT Cdm : public ITimerClient {
|
||||
// CDM's current IStorage object.
|
||||
virtual Status listStoredLicenses(std::vector<std::string>* key_set_ids) = 0;
|
||||
|
||||
// Get the current list of secure-stop licenses on the system.
|
||||
// License storage is origin-specific, and the origin is determined by the
|
||||
// CDM's current IStorage object. ksids receives list of KSIDs representing
|
||||
// usage records or secure-stop licenses.
|
||||
virtual Status listUsageRecords(std::vector<std::string>* ksids) = 0;
|
||||
|
||||
// Delete the usage record for the given key_set_id.
|
||||
// Usage info storage is origin-specific, and the origin is determined by the
|
||||
// CDM's current IStorage object.
|
||||
virtual Status deleteUsageRecord(const std::string& key_set_id) = 0;
|
||||
|
||||
// Delete all usage records for the current origin.
|
||||
// Usage info storage is origin-specific, and the origin is determined by the
|
||||
// CDM's current IStorage object.
|
||||
virtual Status deleteAllUsageRecords() = 0;
|
||||
|
||||
// Creates a new session.
|
||||
// Do not use this to load an existing persistent session (use load()).
|
||||
// If successful, the session_id is returned via |sessionId|.
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
// Widevine CE CDM Version
|
||||
#define CDM_VERSION "v3.2.0-0-g565f4378-ce"
|
||||
#define CDM_VERSION "v3.3.0-0-gffcfda19-ce"
|
||||
|
||||
@@ -14,6 +14,7 @@ class PropertiesCE {
|
||||
public:
|
||||
static Cdm::ClientInfo GetClientInfo();
|
||||
static Cdm::SecureOutputType GetSecureOutputType();
|
||||
static void SetProvisioningMessagesAreBinary(bool bin_prov);
|
||||
|
||||
private:
|
||||
static void SetSecureOutputType(Cdm::SecureOutputType secure_output_type);
|
||||
|
||||
Reference in New Issue
Block a user