Fixed AMediaDrm_getKeyRequest returning both new and old requests.
If multiple key requests are made through AMediaDrm_getKeyRequest,
(e.g. Service Certification + key request in private mode), the
new request will be appended to the old request/s.
AMediaDrm_getKeyRequest should just return the most recent request.
Test: CTS test
Modify testQueryKeyStatus to make two back to back queries. The test
should pass.
Test: CTS test
ANDROID_BUILD_TOP= ./android-cts/toolsefed run cts-dev --module CtsMediaTestCases
-t android.media.cts.NativeMediaDrmClearkeyTest#testQueryKeyStatus
bug: 77713912
Change-Id: I21a30572fedc67cdf1d813ea36b92d2a67b4ebb4
diff --git a/media/ndk/NdkMediaDrm.cpp b/media/ndk/NdkMediaDrm.cpp
index 6d10f1c..5597488 100644
--- a/media/ndk/NdkMediaDrm.cpp
+++ b/media/ndk/NdkMediaDrm.cpp
@@ -309,6 +309,7 @@
}
String8 defaultUrl;
DrmPlugin::KeyRequestType keyRequestType;
+ mObj->mKeyRequest.clear();
status_t status = mObj->mDrm->getKeyRequest(*iter, mdInit, String8(mimeType),
mdKeyType, mdOptionalParameters, mObj->mKeyRequest, defaultUrl,
&keyRequestType);