media jni: remove Parcel from IDrmClient interface
Bug: 134787536
Test: MediaDrmClearkeyTest#testClearKeyPlaybackCenc
Change-Id: Ibaa8fbc87e4ca7cb569a2e918b3953c0a5e745fb
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp
index f412161..f9090d2 100644
--- a/media/jni/android_media_MediaDrm.cpp
+++ b/media/jni/android_media_MediaDrm.cpp
@@ -537,6 +537,40 @@
}
}
+void JDrm::sendEvent(
+ DrmPlugin::EventType eventType,
+ const hardware::hidl_vec<uint8_t> &sessionId,
+ const hardware::hidl_vec<uint8_t> &data) {
+ Parcel obj;
+ DrmUtils::WriteByteArray(obj, sessionId);
+ DrmUtils::WriteByteArray(obj, data);
+ notify(eventType, 0, &obj);
+}
+
+void JDrm::sendExpirationUpdate(
+ const hardware::hidl_vec<uint8_t> &sessionId,
+ int64_t expiryTimeInMS) {
+ Parcel obj;
+ DrmUtils::WriteExpirationUpdateToParcel(obj, sessionId, expiryTimeInMS);
+ notify(DrmPlugin::kDrmPluginEventExpirationUpdate, 0, &obj);
+}
+
+void JDrm::sendKeysChange(
+ const hardware::hidl_vec<uint8_t> &sessionId,
+ const std::vector<DrmKeyStatus> &keyStatusList,
+ bool hasNewUsableKey) {
+ Parcel obj;
+ DrmUtils::WriteKeysChange(obj, sessionId, keyStatusList, hasNewUsableKey);
+ notify(DrmPlugin::kDrmPluginEventKeysChange, 0, &obj);
+}
+
+void JDrm::sendSessionLostState(
+ const hardware::hidl_vec<uint8_t> &sessionId) {
+ Parcel obj;
+ DrmUtils::WriteByteArray(obj, sessionId);
+ notify(DrmPlugin::kDrmPluginEventSessionLostState, 0, &obj);
+}
+
void JDrm::disconnect() {
if (mDrm != NULL) {
mDrm->destroyPlugin();
diff --git a/media/jni/android_media_MediaDrm.h b/media/jni/android_media_MediaDrm.h
index 684069b..37d9e07 100644
--- a/media/jni/android_media_MediaDrm.h
+++ b/media/jni/android_media_MediaDrm.h
@@ -21,6 +21,8 @@
#include <media/stagefright/foundation/ABase.h>
#include <mediadrm/IDrm.h>
+#include <mediadrm/IDrmClient.h>
+#include <hidl/HidlSupport.h>
#include <utils/Errors.h>
#include <utils/RefBase.h>
@@ -44,7 +46,23 @@
status_t initCheck() const;
sp<IDrm> getDrm() { return mDrm; }
- void notify(DrmPlugin::EventType, int extra, const Parcel *obj);
+ void sendEvent(
+ DrmPlugin::EventType eventType,
+ const hardware::hidl_vec<uint8_t> &sessionId,
+ const hardware::hidl_vec<uint8_t> &data) override;
+
+ void sendExpirationUpdate(
+ const hardware::hidl_vec<uint8_t> &sessionId,
+ int64_t expiryTimeInMS) override;
+
+ void sendKeysChange(
+ const hardware::hidl_vec<uint8_t> &sessionId,
+ const std::vector<DrmKeyStatus> &keyStatusList,
+ bool hasNewUsableKey) override;
+
+ void sendSessionLostState(
+ const hardware::hidl_vec<uint8_t> &sessionId) override;
+
status_t setListener(const sp<DrmListener>& listener);
void disconnect();
@@ -63,6 +81,8 @@
static sp<IDrm> MakeDrm();
static sp<IDrm> MakeDrm(const uint8_t uuid[16], const String8 &appPackageName);
+ void notify(DrmPlugin::EventType, int extra, const Parcel *obj);
+
DISALLOW_EVIL_CONSTRUCTORS(JDrm);
};