Group license support
This commit is contained in:
@@ -30,12 +30,9 @@ class WidevineCasPlugin : public CasPlugin, public CasEventListener {
|
||||
// MediaCas platform api documentation.
|
||||
WidevineCasPlugin(void* appData, CasPluginCallback callback);
|
||||
WidevineCasPlugin(void* appData, CasPluginCallbackExt callback);
|
||||
~WidevineCasPlugin() override {}
|
||||
virtual ~WidevineCasPlugin() override {}
|
||||
|
||||
virtual status_t initialize();
|
||||
|
||||
// Returns true if the device has been provisioned with a device certificate.
|
||||
bool is_provisioned();
|
||||
status_t initialize();
|
||||
|
||||
// Provide a callback to report plugin status.
|
||||
status_t setStatusCallback(CasPluginStatusCallback callback) override;
|
||||
@@ -88,19 +85,28 @@ class WidevineCasPlugin : public CasPlugin, public CasEventListener {
|
||||
WidevineCasPlugin(const WidevineCasPlugin&) = delete;
|
||||
WidevineCasPlugin& operator=(const WidevineCasPlugin&) = delete;
|
||||
|
||||
protected:
|
||||
// For unit test only.
|
||||
virtual void SetWidevineCasApi(
|
||||
std::unique_ptr<WidevineCas> widevine_cas_api) {
|
||||
widevine_cas_api_ = std::move(widevine_cas_api);
|
||||
}
|
||||
WidevineCasPlugin(){};
|
||||
|
||||
private:
|
||||
virtual std::shared_ptr<CryptoSession> getCryptoSession();
|
||||
// |sessionId| is nullptr if the event is not a session event.
|
||||
virtual CasStatus processEvent(int32_t event, int32_t arg,
|
||||
const CasData& eventData,
|
||||
const CasSessionId* sessionId);
|
||||
virtual CasStatus HandleIndividualizationResponse(const CasData& response);
|
||||
virtual CasStatus HandleEntitlementResponse(const CasData& response);
|
||||
virtual status_t requestLicense(const std::string& init_data);
|
||||
virtual CasStatus HandleEntitlementRenewalResponse(const CasData& response);
|
||||
virtual CasStatus HandleUniqueIDQuery();
|
||||
virtual CasStatus HandleSetParentalControlAge(const CasData& data);
|
||||
virtual CasStatus HandleLicenseRemoval(const CasData& license_id);
|
||||
CasStatus processEvent(int32_t event, int32_t arg, const CasData& eventData,
|
||||
const CasSessionId* sessionId);
|
||||
CasStatus HandleIndividualizationResponse(const CasData& response);
|
||||
CasStatus HandleEntitlementResponse(const CasData& response);
|
||||
status_t requestLicense(const std::string& init_data);
|
||||
CasStatus HandleEntitlementRenewalResponse(const CasData& response);
|
||||
CasStatus HandleUniqueIDQuery();
|
||||
CasStatus HandleSetParentalControlAge(const CasData& data);
|
||||
CasStatus HandleLicenseRemoval(const CasData& license_id);
|
||||
CasStatus HandleAssignLicenseID(const CasData& license_id);
|
||||
// Returns true if the device has been provisioned with a device certificate.
|
||||
bool is_provisioned() const;
|
||||
|
||||
// Event listener implementation
|
||||
void OnSessionRenewalNeeded() override;
|
||||
@@ -120,8 +126,9 @@ class WidevineCasPlugin : public CasPlugin, public CasEventListener {
|
||||
|
||||
// Choose to use |callback_| or |callback_ext_| to send back information.
|
||||
// |sessionId| is ignored if |callback_ext_| is null,
|
||||
void CallBack(void* appData, int32_t event, int32_t arg, uint8_t* data,
|
||||
size_t size, const CasSessionId* sessionId) const;
|
||||
virtual void CallBack(void* appData, int32_t event, int32_t arg,
|
||||
uint8_t* data, size_t size,
|
||||
const CasSessionId* sessionId) const;
|
||||
|
||||
void* app_data_;
|
||||
CasPluginCallback callback_;
|
||||
@@ -132,7 +139,7 @@ class WidevineCasPlugin : public CasPlugin, public CasEventListener {
|
||||
// is used to build a PSSH, and others are discarded.
|
||||
bool is_emm_request_sent_ = false;
|
||||
std::string provision_data_;
|
||||
WidevineCas widevine_cas_;
|
||||
std::unique_ptr<WidevineCas> widevine_cas_api_;
|
||||
};
|
||||
|
||||
} // namespace wvcas
|
||||
|
||||
Reference in New Issue
Block a user