Migration from jb-mr2 to master for Widevine CDM
Android development of the widevine CDM has been done on the jb-mr2 branch of the cdm code base. This CL contains a merge of that jb-mr2 work to CDM master, and also reflects the evolution of the common Modular DRM code base since jb-mr2 branched. Change-Id: I1d7e1a12d092c00044a4298261146cb97808d4ef
This commit is contained in:
@@ -206,10 +206,10 @@ status_t WVDrmPlugin::provideKeyResponse(
|
||||
CdmKeyResponse cdmResponse(response.begin(), response.end());
|
||||
CdmKeySetId cdmKeySetId;
|
||||
|
||||
bool isRequest = (memcmp(scope.array(), SESSION_ID_PREFIX.data(),
|
||||
SESSION_ID_PREFIX.size()) == 0);
|
||||
bool isRelease = (memcmp(scope.array(), KEY_SET_ID_PREFIX.data(),
|
||||
KEY_SET_ID_PREFIX.size()) == 0);
|
||||
bool isRequest = (memcmp(scope.array(), SESSION_ID_PREFIX,
|
||||
sizeof(SESSION_ID_PREFIX) - 1) == 0);
|
||||
bool isRelease = (memcmp(scope.array(), KEY_SET_ID_PREFIX,
|
||||
sizeof(KEY_SET_ID_PREFIX) - 1) == 0);
|
||||
|
||||
if (isRequest) {
|
||||
cdmSessionId.assign(scope.begin(), scope.end());
|
||||
@@ -219,7 +219,7 @@ status_t WVDrmPlugin::provideKeyResponse(
|
||||
return android::ERROR_DRM_CANNOT_HANDLE;
|
||||
}
|
||||
|
||||
CdmResponseType res = mCDM->AddKey(cdmSessionId, cdmResponse, cdmKeySetId);
|
||||
CdmResponseType res = mCDM->AddKey(cdmSessionId, cdmResponse, &cdmKeySetId);
|
||||
|
||||
if (isRequest && isCdmResponseTypeSuccess(res)) {
|
||||
keySetId.clear();
|
||||
|
||||
@@ -37,7 +37,7 @@ class MockCDM : public WvContentDecryptionModule {
|
||||
|
||||
MOCK_METHOD3(AddKey, CdmResponseType(const CdmSessionId&,
|
||||
const CdmKeyResponse&,
|
||||
CdmKeySetId&));
|
||||
CdmKeySetId*));
|
||||
|
||||
MOCK_METHOD1(CancelKeyRequest, CdmResponseType(const CdmSessionId&));
|
||||
|
||||
@@ -117,7 +117,7 @@ class WVDrmPluginTest : public Test {
|
||||
fread(sessionIdRaw, sizeof(uint8_t), kSessionIdSize, fp);
|
||||
fclose(fp);
|
||||
|
||||
memcpy(sessionIdRaw, SESSION_ID_PREFIX.data(), SESSION_ID_PREFIX.size());
|
||||
memcpy(sessionIdRaw, SESSION_ID_PREFIX, sizeof(SESSION_ID_PREFIX) - 1);
|
||||
sessionId.appendArray(sessionIdRaw, kSessionIdSize);
|
||||
cdmSessionId.assign(sessionId.begin(), sessionId.end());
|
||||
|
||||
@@ -149,6 +149,9 @@ TEST_F(WVDrmPluginTest, OpensSessions) {
|
||||
EXPECT_CALL(cdm, DetachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.openSession(sessionId);
|
||||
|
||||
ASSERT_EQ(OK, res);
|
||||
@@ -185,7 +188,7 @@ TEST_F(WVDrmPluginTest, GeneratesKeyRequests) {
|
||||
fread(keySetIdRaw, sizeof(uint8_t), kKeySetIdSize, fp);
|
||||
fclose(fp);
|
||||
|
||||
memcpy(keySetIdRaw, KEY_SET_ID_PREFIX.data(), KEY_SET_ID_PREFIX.size());
|
||||
memcpy(keySetIdRaw, KEY_SET_ID_PREFIX, sizeof(KEY_SET_ID_PREFIX) - 1);
|
||||
CdmKeySetId cdmKeySetId(reinterpret_cast<char *>(keySetIdRaw), kKeySetIdSize);
|
||||
Vector<uint8_t> keySetId;
|
||||
keySetId.appendArray(keySetIdRaw, kKeySetIdSize);
|
||||
@@ -292,7 +295,7 @@ TEST_F(WVDrmPluginTest, AddsKeys) {
|
||||
Vector<uint8_t> response;
|
||||
response.appendArray(responseRaw, kResponseSize);
|
||||
|
||||
memcpy(keySetIdRaw, KEY_SET_ID_PREFIX.data(), KEY_SET_ID_PREFIX.size());
|
||||
memcpy(keySetIdRaw, KEY_SET_ID_PREFIX, sizeof(KEY_SET_ID_PREFIX) - 1);
|
||||
CdmKeySetId cdmKeySetId(reinterpret_cast<char *>(keySetIdRaw), kKeySetIdSize);
|
||||
Vector<uint8_t> keySetId;
|
||||
|
||||
@@ -300,11 +303,11 @@ TEST_F(WVDrmPluginTest, AddsKeys) {
|
||||
|
||||
EXPECT_CALL(cdm, AddKey(cdmSessionId,
|
||||
ElementsAreArray(responseRaw, kResponseSize), _))
|
||||
.WillOnce(DoAll(SetArgReferee<2>(cdmKeySetId),
|
||||
.WillOnce(DoAll(SetArgPointee<2>(cdmKeySetId),
|
||||
Return(wvcdm::KEY_ADDED)));
|
||||
|
||||
EXPECT_CALL(cdm, AddKey("", ElementsAreArray(responseRaw, kResponseSize),
|
||||
cdmKeySetId))
|
||||
Pointee(cdmKeySetId)))
|
||||
.Times(1);
|
||||
|
||||
status_t res = plugin.provideKeyResponse(sessionId, response, keySetId);
|
||||
@@ -646,6 +649,9 @@ TEST_F(WVDrmPluginTest, FailsGenericMethodsWithoutAnAlgorithmSet) {
|
||||
EXPECT_CALL(cdm, DetachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.openSession(sessionId);
|
||||
ASSERT_EQ(OK, res);
|
||||
|
||||
@@ -729,6 +735,9 @@ TEST_F(WVDrmPluginTest, CallsGenericEncrypt) {
|
||||
EXPECT_CALL(cdm, DetachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.openSession(sessionId);
|
||||
ASSERT_EQ(OK, res);
|
||||
|
||||
@@ -793,6 +802,9 @@ TEST_F(WVDrmPluginTest, CallsGenericDecrypt) {
|
||||
EXPECT_CALL(cdm, DetachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.openSession(sessionId);
|
||||
ASSERT_EQ(OK, res);
|
||||
|
||||
@@ -859,6 +871,9 @@ TEST_F(WVDrmPluginTest, CallsGenericSign) {
|
||||
EXPECT_CALL(cdm, DetachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.openSession(sessionId);
|
||||
ASSERT_EQ(OK, res);
|
||||
|
||||
@@ -935,6 +950,9 @@ TEST_F(WVDrmPluginTest, CallsGenericVerify) {
|
||||
EXPECT_CALL(cdm, DetachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.openSession(sessionId);
|
||||
ASSERT_EQ(OK, res);
|
||||
|
||||
@@ -972,6 +990,9 @@ TEST_F(WVDrmPluginTest, RegistersForEvents) {
|
||||
EXPECT_CALL(cdm, DetachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.openSession(sessionId);
|
||||
ASSERT_EQ(OK, res);
|
||||
}
|
||||
@@ -1015,6 +1036,9 @@ TEST_F(WVDrmPluginTest, UnregistersForAllEventsOnDestruction) {
|
||||
EXPECT_CALL(cdm, AttachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.openSession(sessionId);
|
||||
ASSERT_EQ(OK, res);
|
||||
|
||||
@@ -1063,6 +1087,9 @@ TEST_F(WVDrmPluginTest, MarshalsEvents) {
|
||||
EXPECT_CALL(cdm, DetachEventListener(_, _))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
EXPECT_CALL(cdm, CloseSession(_))
|
||||
.Times(AtLeast(0));
|
||||
|
||||
status_t res = plugin.setListener(listener);
|
||||
ASSERT_EQ(OK, res);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user