Source release v3.4.1

This commit is contained in:
Gene Morgan
2017-09-01 14:17:56 -07:00
parent 8082775924
commit 183aacf0a3
50 changed files with 1508 additions and 2342 deletions

View File

@@ -146,6 +146,10 @@ class CdmImpl : public Cdm,
virtual Status load(const std::string& session_id) OVERRIDE;
virtual Status load(const std::string& session_id,
InitDataType init_data_type,
const std::string& init_data) OVERRIDE;
virtual Status update(const std::string& session_id,
const std::string& response) OVERRIDE;
@@ -613,6 +617,38 @@ Cdm::Status CdmImpl::load(const std::string& session_id) {
return kSuccess;
}
Cdm::Status CdmImpl::load(const std::string& session_id,
InitDataType init_data_type,
const std::string& init_data) {
if (!cdm_engine_.IsOpenSession(session_id)) {
LOGE("Session %s does not exist.", session_id.c_str());
return kSessionNotFound;
}
if (init_data_type != kCenc) {
LOGE("Invalid init data type: %d", init_data_type);
return kTypeError;
}
InitializationData init_data_obj(CENC_INIT_DATA_FORMAT, init_data);
if (init_data_obj.IsEmpty()) {
// Note that InitializationData's idea of "empty" includes "failed to find
// and parse a Widevine PSSH". This should not happen for WebM init data,
// which requires no parsing.
LOGE("Failed to parse init data, may not contain a Widevine PSSH.");
return kNotSupported;
}
CdmKeyRequest key_request;
CdmResponseType result = cdm_engine_.GenerateKeyRequest(
session_id, session_id, init_data_obj, kLicenseTypeSubSession,
app_parameters_, &key_request);
if (result != KEY_MESSAGE) {
return kUnexpectedError;
}
return kSuccess;
}
Cdm::Status CdmImpl::update(const std::string& session_id,
const std::string& response) {
if (provision_request_sent_) {