Add Android property for numberOfOpenSessions

Merged from Widevine CDM repo:
https://widevine-internal-review.googlesource.com/#/c/13960

Change-Id: I04c63c75987b7cd81fd60af925676c6d99368b22
This commit is contained in:
Kongqun Yang
2015-04-01 17:39:24 -07:00
parent 74afe9dd4e
commit de35e1e228
2 changed files with 21 additions and 0 deletions

View File

@@ -526,6 +526,17 @@ status_t WVDrmPlugin::getPropertyString(const String8& name,
return kErrorCDMGeneric;
}
value = status[QUERY_KEY_USAGE_SUPPORT].c_str();
} else if (name == "numberOfOpenSessions") {
CdmQueryMap status;
CdmResponseType res = mCDM->QueryStatus(&status);
if (res != wvcdm::NO_ERROR) {
ALOGE("Error querying CDM status: %u", res);
return mapCdmResponseType(res);
} else if (!status.count(QUERY_KEY_NUMBER_OF_OPEN_SESSIONS)) {
ALOGE("CDM did not report number of open media drm sessions");
return kErrorCDMGeneric;
}
value = status[QUERY_KEY_NUMBER_OF_OPEN_SESSIONS].c_str();
} else if (name == "maxNumberOfSessions") {
CdmQueryMap status;
CdmResponseType res = mCDM->QueryStatus(&status);

View File

@@ -695,6 +695,10 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
CdmQueryMap provisioningIDMap;
provisioningIDMap[QUERY_KEY_PROVISIONING_ID] = provisioningId;
static const string openSessions = "15";
CdmQueryMap openSessionsMap;
openSessionsMap[QUERY_KEY_NUMBER_OF_OPEN_SESSIONS] = openSessions;
static const string maxSessions = "18";
CdmQueryMap maxSessionsMap;
maxSessionsMap[QUERY_KEY_MAX_NUMBER_OF_SESSIONS] = maxSessions;
@@ -710,6 +714,8 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
Return(wvcdm::NO_ERROR)))
.WillOnce(DoAll(SetArgPointee<0>(provisioningIDMap),
Return(wvcdm::NO_ERROR)))
.WillOnce(DoAll(SetArgPointee<0>(openSessionsMap),
Return(wvcdm::NO_ERROR)))
.WillOnce(DoAll(SetArgPointee<0>(maxSessionsMap),
Return(wvcdm::NO_ERROR)));
@@ -753,6 +759,10 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
EXPECT_THAT(vectorResult, ElementsAreArray(provisioningId.data(),
provisioningId.size()));
res = plugin.getPropertyString(String8("numberOfOpenSessions"), stringResult);
ASSERT_EQ(OK, res);
EXPECT_EQ(openSessions, stringResult.string());
res = plugin.getPropertyString(String8("maxNumberOfSessions"), stringResult);
ASSERT_EQ(OK, res);
EXPECT_EQ(maxSessions, stringResult.string());