Source release 18.5.0

This commit is contained in:
Matt Feddersen
2024-03-28 19:15:22 -07:00
parent b2c35151ad
commit 28ec8548c6
109 changed files with 3623 additions and 1012 deletions

View File

@@ -36,11 +36,6 @@
#include "cdm_version.h"
#include "properties_ce.h"
#ifdef HAS_EMBEDDED_CERT
extern uint8_t kDeviceCert[];
extern size_t kDeviceCertSize;
#endif
namespace widevine {
#ifdef HAS_EMBEDDED_CERT
@@ -151,6 +146,8 @@ class ReadOnlyStorage final : public Cdm::IStorage {
// TODO(b/148693106): Once we have resolved the bugs causing the CDM to
// erroneously write to read-only files, change this to an error instead of
// a silent failure.
(void)name;
(void)data;
return true;
}
@@ -162,6 +159,7 @@ class ReadOnlyStorage final : public Cdm::IStorage {
// TODO(b/148693106): Once we have resolved the bugs causing the CDM to
// erroneously write to read-only files, change this to an error instead of
// a silent failure.
(void)name;
return true;
}
@@ -576,7 +574,21 @@ Cdm::Status CdmImpl::getStatusForHdcpVersion(Cdm::HdcpVersion hdcp,
result = ConvertHdcpLevel(query_value, &max_hdcp);
if (result != kSuccess) return result;
*key_status = (hdcp <= max_hdcp ? Cdm::kUsable : Cdm::kOutputRestricted);
if (hdcp == kHdcp1_x && max_hdcp == kHdcp1_x) {
// Legacy case.
*key_status = Cdm::kUsable;
} else if (hdcp == kHdcp1_x &&
(max_hdcp >= kHdcp1_0 && max_hdcp <= kHdcp1_4)) {
// CDM app is using legacy 1.x value, but OEMCrypto is using newer
// value. Assume usable.
*key_status = Cdm::kUsable;
} else if (max_hdcp == kHdcp1_x && (hdcp >= kHdcp1_0 && hdcp <= kHdcp1_4)) {
// CDM app is using new 1.x value, but OEMCrypto is using legacy
// value. Assume usable.
*key_status = Cdm::kUsable;
} else {
*key_status = (hdcp <= max_hdcp ? Cdm::kUsable : Cdm::kOutputRestricted);
}
}
return kSuccess;
}
@@ -1355,8 +1367,19 @@ CdmSigningAlgorithm CdmImpl::ConvertSigningAlgorithm(
Cdm::Status CdmImpl::ConvertHdcpLevel(const std::string& query_value,
Cdm::HdcpVersion* result) {
if (query_value == QUERY_VALUE_HDCP_V1) {
if (query_value == QUERY_VALUE_HDCP_V1_X) {
// Generic HDCP level
*result = kHdcp1_x;
} else if (query_value == QUERY_VALUE_HDCP_V1_0) {
*result = kHdcp1_0;
} else if (query_value == QUERY_VALUE_HDCP_V1_1) {
*result = kHdcp1_1;
} else if (query_value == QUERY_VALUE_HDCP_V1_2) {
*result = kHdcp1_2;
} else if (query_value == QUERY_VALUE_HDCP_V1_3) {
*result = kHdcp1_3;
} else if (query_value == QUERY_VALUE_HDCP_V1_4) {
*result = kHdcp1_4;
} else if (query_value == QUERY_VALUE_HDCP_V2_0) {
*result = kHdcp2_0;
} else if (query_value == QUERY_VALUE_HDCP_V2_1) {