Make OEM Crypto API version available through mediaDrm properties
[ Merge of http://go/wvgerrit/15540 ] b/22771529 Change-Id: I8a3d3b3d7a943c531ef0ff2c860442e0690b9175
This commit is contained in:
@@ -57,6 +57,8 @@ static const std::string QUERY_KEY_NUMBER_OF_OPEN_SESSIONS =
|
||||
"NumberOfOpenSessions";
|
||||
static const std::string QUERY_KEY_MAX_NUMBER_OF_SESSIONS =
|
||||
"MaxNumberOfSessions";
|
||||
static const std::string QUERY_KEY_OEMCRYPTO_API_VERSION =
|
||||
"OemCryptoApiVersion";
|
||||
|
||||
static const std::string QUERY_VALUE_TRUE = "True";
|
||||
static const std::string QUERY_VALUE_FALSE = "False";
|
||||
|
||||
@@ -473,6 +473,14 @@ CdmResponseType CdmEngine::QueryStatus(SecurityLevel security_level,
|
||||
max_sessions_stream.str();
|
||||
}
|
||||
|
||||
uint32_t api_version;
|
||||
success = crypto_session.GetApiVersion(&api_version);
|
||||
if (success) {
|
||||
std::ostringstream api_version_stream;
|
||||
api_version_stream << api_version;
|
||||
(*key_info)[QUERY_KEY_OEMCRYPTO_API_VERSION] = api_version_stream.str();
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
@@ -2056,6 +2056,56 @@ TEST_F(WvCdmRequestLicenseTest, QueryStatus) {
|
||||
itr = query_info.find(wvcdm::QUERY_KEY_PROVISIONING_ID);
|
||||
ASSERT_TRUE(itr != query_info.end());
|
||||
EXPECT_EQ(16u, itr->second.size());
|
||||
|
||||
itr = query_info.find(QUERY_KEY_CURRENT_HDCP_LEVEL);
|
||||
ASSERT_TRUE(itr != query_info.end());
|
||||
EXPECT_TRUE(itr->second == QUERY_VALUE_UNPROTECTED ||
|
||||
itr->second == QUERY_VALUE_HDCP_V1 ||
|
||||
itr->second == QUERY_VALUE_HDCP_V2_0 ||
|
||||
itr->second == QUERY_VALUE_HDCP_V2_1 ||
|
||||
itr->second == QUERY_VALUE_HDCP_V2_2 ||
|
||||
itr->second == QUERY_VALUE_DISCONNECTED);
|
||||
|
||||
itr = query_info.find(QUERY_KEY_MAX_HDCP_LEVEL);
|
||||
ASSERT_TRUE(itr != query_info.end());
|
||||
EXPECT_TRUE(itr->second == QUERY_VALUE_UNPROTECTED ||
|
||||
itr->second == QUERY_VALUE_HDCP_V1 ||
|
||||
itr->second == QUERY_VALUE_HDCP_V2_0 ||
|
||||
itr->second == QUERY_VALUE_HDCP_V2_1 ||
|
||||
itr->second == QUERY_VALUE_HDCP_V2_2 ||
|
||||
itr->second == QUERY_VALUE_DISCONNECTED);
|
||||
|
||||
itr = query_info.find(QUERY_KEY_USAGE_SUPPORT);
|
||||
ASSERT_TRUE(itr != query_info.end());
|
||||
EXPECT_TRUE(itr->second == QUERY_VALUE_TRUE ||
|
||||
itr->second == QUERY_VALUE_FALSE);
|
||||
|
||||
itr = query_info.find(QUERY_KEY_NUMBER_OF_OPEN_SESSIONS);
|
||||
ASSERT_TRUE(itr != query_info.end());
|
||||
ss.clear();
|
||||
ss.str(itr->second);
|
||||
uint32_t open_sessions;
|
||||
EXPECT_TRUE(ss >> open_sessions);
|
||||
EXPECT_TRUE(ss.eof());
|
||||
|
||||
itr = query_info.find(QUERY_KEY_MAX_NUMBER_OF_SESSIONS);
|
||||
ASSERT_TRUE(itr != query_info.end());
|
||||
ss.clear();
|
||||
ss.str(itr->second);
|
||||
uint32_t max_sessions;
|
||||
EXPECT_TRUE(ss >> max_sessions);
|
||||
EXPECT_TRUE(ss.eof());
|
||||
EXPECT_LE(open_sessions, max_sessions);
|
||||
EXPECT_LE(8u, max_sessions);
|
||||
|
||||
itr = query_info.find(QUERY_KEY_OEMCRYPTO_API_VERSION);
|
||||
ASSERT_TRUE(itr != query_info.end());
|
||||
ss.clear();
|
||||
ss.str(itr->second);
|
||||
uint32_t api_version;
|
||||
EXPECT_TRUE(ss >> api_version);
|
||||
EXPECT_TRUE(ss.eof());
|
||||
EXPECT_LE(10u, api_version);
|
||||
}
|
||||
|
||||
TEST_F(WvCdmRequestLicenseTest, QueryStatusL3) {
|
||||
|
||||
@@ -478,6 +478,8 @@ status_t WVDrmPlugin::getPropertyString(const String8& name,
|
||||
return queryProperty(QUERY_KEY_NUMBER_OF_OPEN_SESSIONS, value);
|
||||
} else if (name == "maxNumberOfSessions") {
|
||||
return queryProperty(QUERY_KEY_MAX_NUMBER_OF_SESSIONS, value);
|
||||
} else if (name == "oemCryptoApiVersion") {
|
||||
return queryProperty(QUERY_KEY_OEMCRYPTO_API_VERSION, value);
|
||||
} else if (name == "appId") {
|
||||
value = mPropertySet.app_id().c_str();
|
||||
} else if (name == "origin") {
|
||||
|
||||
@@ -827,6 +827,10 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
CdmQueryMap maxSessionsMap;
|
||||
maxSessionsMap[QUERY_KEY_MAX_NUMBER_OF_SESSIONS] = maxSessions;
|
||||
|
||||
static const string oemCryptoApiVersion = "10";
|
||||
CdmQueryMap oemCryptoApiVersionMap;
|
||||
oemCryptoApiVersionMap[QUERY_KEY_OEMCRYPTO_API_VERSION] = oemCryptoApiVersion;
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, _))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(l1Map),
|
||||
Return(wvcdm::NO_ERROR)))
|
||||
@@ -841,6 +845,8 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
.WillOnce(DoAll(SetArgPointee<1>(openSessionsMap),
|
||||
Return(wvcdm::NO_ERROR)))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(maxSessionsMap),
|
||||
Return(wvcdm::NO_ERROR)))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(oemCryptoApiVersionMap),
|
||||
Return(wvcdm::NO_ERROR)));
|
||||
|
||||
String8 stringResult;
|
||||
@@ -890,6 +896,10 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
res = plugin.getPropertyString(String8("maxNumberOfSessions"), stringResult);
|
||||
ASSERT_EQ(OK, res);
|
||||
EXPECT_EQ(maxSessions, stringResult.string());
|
||||
|
||||
res = plugin.getPropertyString(String8("oemCryptoApiVersion"), stringResult);
|
||||
ASSERT_EQ(OK, res);
|
||||
EXPECT_EQ(oemCryptoApiVersion, stringResult.string());
|
||||
}
|
||||
|
||||
TEST_F(WVDrmPluginTest, DoesNotGetUnknownProperties) {
|
||||
|
||||
Reference in New Issue
Block a user