media jni: remove Parcel from IDrmClient interface

Bug: 134787536
Test: MediaDrmClearkeyTest#testClearKeyPlaybackCenc
Change-Id: Ibaa8fbc87e4ca7cb569a2e918b3953c0a5e745fb
This commit is contained in:
Robert Shih
2019-08-15 14:48:11 -07:00
parent 2e63cedc0e
commit 3a523903c0
2 changed files with 55 additions and 1 deletions

View File

@@ -537,6 +537,40 @@ void JDrm::notify(DrmPlugin::EventType eventType, int extra, const Parcel *obj)
}
}
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();

View File

@@ -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 @@ struct JDrm : public BnDrmClient {
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 @@ private:
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);
};