Source release 18.5.0
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user