Parameterize "forbid analog" in mod mock
Merge from Widevine repo of http://go/wvgerrit/43660 This CL adds parameters to the mod mock to control various analog output behaviour. bug: 38005556 Change-Id: I308b300a2dd73f6bb7fb798d56c2c631a09f3765
This commit is contained in:
@@ -917,8 +917,7 @@ OEMCryptoResult SessionContext::CheckKeyUse(const std::string& log_string,
|
||||
}
|
||||
}
|
||||
if (!ce_->config_local_display_only()) {
|
||||
// Only look at HDCP and Analog restrictions if the display can be
|
||||
// non-local.
|
||||
// Only look at HDCP restrictions if the display can be non-local.
|
||||
if (control.control_bits() & wvoec::kControlHDCPRequired) {
|
||||
uint8_t required_hdcp =
|
||||
(control.control_bits() & wvoec::kControlHDCPVersionMask) >>
|
||||
@@ -934,10 +933,24 @@ OEMCryptoResult SessionContext::CheckKeyUse(const std::string& log_string,
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!ce_->config_local_display_only() ||
|
||||
buffer_type == OEMCrypto_BufferType_Clear) {
|
||||
if (control.control_bits() & wvoec::kControlDisableAnalogOutput) {
|
||||
LOGE("[%s(): control bit says disable analog.", log_string.c_str());
|
||||
// If the output buffer is clear, then we cannot control whether the output is
|
||||
// an active analog display. In that case, return an error if analog displays
|
||||
// should be disabled.
|
||||
if ((control.control_bits() & wvoec::kControlDisableAnalogOutput) &&
|
||||
(ce_->analog_display_active() ||
|
||||
(buffer_type == OEMCrypto_BufferType_Clear))) {
|
||||
LOGE("[%s(): control bit says disable analog.", log_string.c_str());
|
||||
return OEMCrypto_ERROR_ANALOG_OUTPUT;
|
||||
}
|
||||
// Check if CGMS is required.
|
||||
if (control.control_bits() & wvoec::kControlCGMSMask) {
|
||||
// We can't control CGMS for a clear buffer.
|
||||
if (buffer_type == OEMCrypto_BufferType_Clear) {
|
||||
LOGE("[%s(): CGMS required, but buffer is clear.", log_string.c_str());
|
||||
return OEMCrypto_ERROR_ANALOG_OUTPUT;
|
||||
}
|
||||
if ( ce_->analog_display_active() && !ce_->cgms_a_active()) {
|
||||
LOGE("[%s(): control bit says CGMS required.", log_string.c_str());
|
||||
return OEMCrypto_ERROR_ANALOG_OUTPUT;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user