Added CDM support for Watermarking reporting.
[ Merge of http://go/wvgerrit/148552 ] Extended the CDM layer to report OEMCrypto's watermarking support. The reporting of watermarking comes in three (3) mechanisms: 1) ClientCapabilities in license requests 2) CryptoSession metrics when queried to OEMCrypto 3) String property query by apps If OEMCrypto implementents OEMCrypto_GetWatermarkingSupport(), then the reported watermarking support by the CDM will match that of OEMCrypto. If OEMCrypto does not implement OEMCrypto_GetWatermarkingSupport() or an error occurs, it is assumed that OEMCrypto does not support watermarking, and the CDM will report "Not Supported". Bug: 226443788 Test: run_x86_64_tests request_license_test and license_unittest Change-Id: Id929a356c395e6bcf45d371ee6887eec40d35329
This commit is contained in:
@@ -2306,6 +2306,41 @@ bool CryptoSession::GetBuildInformation(RequestedSecurityLevel security_level,
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CryptoSession::GetWatermarkingSupport(CdmWatermarkingSupport* support) {
|
||||
RETURN_IF_NOT_OPEN(false);
|
||||
return GetWatermarkingSupport(requested_security_level_, support);
|
||||
}
|
||||
|
||||
bool CryptoSession::GetWatermarkingSupport(
|
||||
RequestedSecurityLevel security_level, CdmWatermarkingSupport* support) {
|
||||
LOGV("security_level = %s", RequestedSecurityLevelToString(security_level));
|
||||
RETURN_IF_UNINITIALIZED(false);
|
||||
RETURN_IF_NULL(support, false);
|
||||
const OEMCrypto_WatermarkingSupport oec_support = WithOecReadLock(
|
||||
"GetWatermarkingSupport",
|
||||
[&] { return OEMCrypto_GetWatermarkingSupport(security_level); });
|
||||
switch (oec_support) {
|
||||
case OEMCrypto_WatermarkingNotSupported:
|
||||
*support = kWatermarkingNotSupported;
|
||||
break;
|
||||
case OEMCrypto_WatermarkingConfigurable:
|
||||
*support = kWatermarkingConfigurable;
|
||||
break;
|
||||
case OEMCrypto_WatermarkingAlwaysOn:
|
||||
*support = kWatermarkingAlwaysOn;
|
||||
break;
|
||||
case OEMCrypto_WatermarkingError:
|
||||
default:
|
||||
LOGE("GetWatermarkingSupport error: security_level = %s, result = %d",
|
||||
RequestedSecurityLevelToString(security_level),
|
||||
static_cast<int>(oec_support));
|
||||
metrics_->oemcrypto_watermarking_support_.SetError(oec_support);
|
||||
return false;
|
||||
}
|
||||
metrics_->oemcrypto_watermarking_support_.Record(oec_support);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CryptoSession::GetMaximumUsageTableEntries(
|
||||
RequestedSecurityLevel security_level, size_t* number_of_entries) {
|
||||
LOGV("Getting maximum usage table entries: security_level = %s",
|
||||
|
||||
Reference in New Issue
Block a user