Report analog output capabilities
[ Merge of http://go/wvgerrit/41840 ] Bug: 69867619 Test: WV unit/integration tests Playback using netflix and play movies on Taimen Change-Id: I49d0dd9ae12322eecc80efb8cb744419c85e8ae5
This commit is contained in:
@@ -207,6 +207,9 @@ class CryptoSession {
|
|||||||
const std::string& provider_session_token);
|
const std::string& provider_session_token);
|
||||||
virtual CdmResponseType CopyOldUsageEntry(
|
virtual CdmResponseType CopyOldUsageEntry(
|
||||||
const std::string& provider_session_token);
|
const std::string& provider_session_token);
|
||||||
|
virtual bool GetAnalogOutputCapabilities(bool* can_support_output,
|
||||||
|
bool* can_disable_output,
|
||||||
|
bool* can_support_cgms_a);
|
||||||
virtual metrics::CryptoMetrics* GetCryptoMetrics() { return metrics_; }
|
virtual metrics::CryptoMetrics* GetCryptoMetrics() { return metrics_; }
|
||||||
|
|
||||||
virtual CdmResponseType AddSubSession(const std::string& sub_session_key_id,
|
virtual CdmResponseType AddSubSession(const std::string& sub_session_key_id,
|
||||||
|
|||||||
@@ -232,6 +232,27 @@ CdmResponseType ClientIdentification::Prepare(
|
|||||||
if (crypto_session_->GetSrmVersion(&srm_version))
|
if (crypto_session_->GetSrmVersion(&srm_version))
|
||||||
client_capabilities->set_srm_version(srm_version);
|
client_capabilities->set_srm_version(srm_version);
|
||||||
}
|
}
|
||||||
|
bool can_support_output;
|
||||||
|
bool can_disable_output;
|
||||||
|
bool can_support_cgms_a;
|
||||||
|
if (crypto_session_->GetAnalogOutputCapabilities(&can_support_output,
|
||||||
|
&can_disable_output,
|
||||||
|
&can_support_cgms_a)) {
|
||||||
|
video_widevine::ClientIdentification_ClientCapabilities_AnalogOutputCapabilities
|
||||||
|
capabilities = video_widevine::ClientIdentification_ClientCapabilities_AnalogOutputCapabilities_ANALOG_OUTPUT_NONE;
|
||||||
|
|
||||||
|
if (can_support_output) {
|
||||||
|
if (can_support_cgms_a) {
|
||||||
|
capabilities = video_widevine::ClientIdentification_ClientCapabilities_AnalogOutputCapabilities_ANALOG_OUTPUT_SUPPORTS_CGMS_A;
|
||||||
|
} else {
|
||||||
|
capabilities = video_widevine::ClientIdentification_ClientCapabilities_AnalogOutputCapabilities_ANALOG_OUTPUT_SUPPORTED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
client_capabilities->set_analog_output_capabilities(capabilities);
|
||||||
|
client_capabilities->set_can_disable_analog_output(can_disable_output);
|
||||||
|
} else {
|
||||||
|
client_capabilities->set_analog_output_capabilities(video_widevine::ClientIdentification_ClientCapabilities_AnalogOutputCapabilities_ANALOG_OUTPUT_UNKNOWN);
|
||||||
|
}
|
||||||
|
|
||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2764,6 +2764,19 @@ CdmResponseType CryptoSession::CopyOldUsageEntry(
|
|||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CryptoSession::GetAnalogOutputCapabilities(bool* can_support_output,
|
||||||
|
bool* can_disable_output,
|
||||||
|
bool* can_support_cgms_a) {
|
||||||
|
LOGV("GetAnalogOutputCapabilities: id=%ld", (uint32_t)oec_session_id_);
|
||||||
|
uint32_t flags = OEMCrypto_GetAnalogOutputFlags(requested_security_level_);
|
||||||
|
|
||||||
|
if ((flags & OEMCrypto_Unknown_Analog_Output) != 0) return false;
|
||||||
|
*can_support_cgms_a = flags & OEMCrypto_Supports_CGMS_A;
|
||||||
|
*can_support_output = flags & OEMCrypto_Supports_Analog_Output;
|
||||||
|
*can_disable_output = flags & OEMCrypto_Can_Disable_Analog_Ouptput;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
CdmResponseType CryptoSession::AddSubSession(
|
CdmResponseType CryptoSession::AddSubSession(
|
||||||
const std::string& sub_session_key_id,
|
const std::string& sub_session_key_id,
|
||||||
const std::string& group_master_key_id) {
|
const std::string& group_master_key_id) {
|
||||||
|
|||||||
@@ -536,6 +536,13 @@ message ClientIdentification {
|
|||||||
RSA_3072 = 1;
|
RSA_3072 = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum AnalogOutputCapabilities {
|
||||||
|
ANALOG_OUTPUT_UNKNOWN = 0;
|
||||||
|
ANALOG_OUTPUT_NONE = 1;
|
||||||
|
ANALOG_OUTPUT_SUPPORTED = 2;
|
||||||
|
ANALOG_OUTPUT_SUPPORTS_CGMS_A = 3;
|
||||||
|
}
|
||||||
|
|
||||||
optional bool client_token = 1 [default = false];
|
optional bool client_token = 1 [default = false];
|
||||||
optional bool session_token = 2 [default = false];
|
optional bool session_token = 2 [default = false];
|
||||||
optional bool video_resolution_constraints = 3 [default = false];
|
optional bool video_resolution_constraints = 3 [default = false];
|
||||||
@@ -551,6 +558,9 @@ message ClientIdentification {
|
|||||||
// of updating SRM data.
|
// of updating SRM data.
|
||||||
optional bool can_update_srm = 8 [default = false];
|
optional bool can_update_srm = 8 [default = false];
|
||||||
repeated CertificateKeyType supported_certificate_key_type = 9;
|
repeated CertificateKeyType supported_certificate_key_type = 9;
|
||||||
|
optional AnalogOutputCapabilities analog_output_capabilities = 10
|
||||||
|
[default = ANALOG_OUTPUT_UNKNOWN];
|
||||||
|
optional bool can_disable_analog_output = 11 [default = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type of factory-provisioned device root of trust. Optional.
|
// Type of factory-provisioned device root of trust. Optional.
|
||||||
|
|||||||
Reference in New Issue
Block a user