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:
@@ -526,6 +526,17 @@ status_t WVDrmPlugin::getPropertyString(const String8& name,
|
|||||||
return kErrorCDMGeneric;
|
return kErrorCDMGeneric;
|
||||||
}
|
}
|
||||||
value = status[QUERY_KEY_USAGE_SUPPORT].c_str();
|
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") {
|
} else if (name == "maxNumberOfSessions") {
|
||||||
CdmQueryMap status;
|
CdmQueryMap status;
|
||||||
CdmResponseType res = mCDM->QueryStatus(&status);
|
CdmResponseType res = mCDM->QueryStatus(&status);
|
||||||
|
|||||||
@@ -695,6 +695,10 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
|||||||
CdmQueryMap provisioningIDMap;
|
CdmQueryMap provisioningIDMap;
|
||||||
provisioningIDMap[QUERY_KEY_PROVISIONING_ID] = provisioningId;
|
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";
|
static const string maxSessions = "18";
|
||||||
CdmQueryMap maxSessionsMap;
|
CdmQueryMap maxSessionsMap;
|
||||||
maxSessionsMap[QUERY_KEY_MAX_NUMBER_OF_SESSIONS] = maxSessions;
|
maxSessionsMap[QUERY_KEY_MAX_NUMBER_OF_SESSIONS] = maxSessions;
|
||||||
@@ -710,6 +714,8 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
|||||||
Return(wvcdm::NO_ERROR)))
|
Return(wvcdm::NO_ERROR)))
|
||||||
.WillOnce(DoAll(SetArgPointee<0>(provisioningIDMap),
|
.WillOnce(DoAll(SetArgPointee<0>(provisioningIDMap),
|
||||||
Return(wvcdm::NO_ERROR)))
|
Return(wvcdm::NO_ERROR)))
|
||||||
|
.WillOnce(DoAll(SetArgPointee<0>(openSessionsMap),
|
||||||
|
Return(wvcdm::NO_ERROR)))
|
||||||
.WillOnce(DoAll(SetArgPointee<0>(maxSessionsMap),
|
.WillOnce(DoAll(SetArgPointee<0>(maxSessionsMap),
|
||||||
Return(wvcdm::NO_ERROR)));
|
Return(wvcdm::NO_ERROR)));
|
||||||
|
|
||||||
@@ -753,6 +759,10 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
|||||||
EXPECT_THAT(vectorResult, ElementsAreArray(provisioningId.data(),
|
EXPECT_THAT(vectorResult, ElementsAreArray(provisioningId.data(),
|
||||||
provisioningId.size()));
|
provisioningId.size()));
|
||||||
|
|
||||||
|
res = plugin.getPropertyString(String8("numberOfOpenSessions"), stringResult);
|
||||||
|
ASSERT_EQ(OK, res);
|
||||||
|
EXPECT_EQ(openSessions, stringResult.string());
|
||||||
|
|
||||||
res = plugin.getPropertyString(String8("maxNumberOfSessions"), stringResult);
|
res = plugin.getPropertyString(String8("maxNumberOfSessions"), stringResult);
|
||||||
ASSERT_EQ(OK, res);
|
ASSERT_EQ(OK, res);
|
||||||
EXPECT_EQ(maxSessions, stringResult.string());
|
EXPECT_EQ(maxSessions, stringResult.string());
|
||||||
|
|||||||
Reference in New Issue
Block a user