Return error to NDK on failure
Corrections to AMediaDrm_openSession and AMediaDrm_provideKeyResponse
to return an appropriate error from the plugin.
Bug: 177481075
Test: NativeMediaDrmClearkeyTest
Change-Id: Ieedbf5b50902fb410286a567452f0020ff4f1a53
diff --git a/media/ndk/NdkMediaDrm.cpp b/media/ndk/NdkMediaDrm.cpp
index 3af9771..6e9945d 100644
--- a/media/ndk/NdkMediaDrm.cpp
+++ b/media/ndk/NdkMediaDrm.cpp
@@ -380,12 +380,15 @@
}
Vector<uint8_t> session;
status_t status = mObj->mDrm->openSession(DrmPlugin::kSecurityLevelMax, session);
- if (status == OK) {
- mObj->mIds.push_front(session);
- List<idvec_t>::iterator iter = mObj->mIds.begin();
- sessionId->ptr = iter->array();
- sessionId->length = iter->size();
+ if (status != OK) {
+ sessionId->ptr = NULL;
+ sessionId->length = 0;
+ return translateStatus(status);
}
+ mObj->mIds.push_front(session);
+ List<idvec_t>::iterator iter = mObj->mIds.begin();
+ sessionId->ptr = iter->array();
+ sessionId->length = iter->size();
return AMEDIA_OK;
}
@@ -489,6 +492,7 @@
} else {
keySetId->ptr = NULL;
keySetId->length = 0;
+ return translateStatus(status);
}
return AMEDIA_OK;
}