Loading media/jni/android_media_MediaDrm.cpp +34 −0 Original line number Diff line number Diff line Loading @@ -523,6 +523,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(); Loading media/jni/android_media_MediaDrm.h +21 −1 Original line number Diff line number Diff line Loading @@ -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> Loading @@ -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(); Loading @@ -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); }; Loading Loading
media/jni/android_media_MediaDrm.cpp +34 −0 Original line number Diff line number Diff line Loading @@ -523,6 +523,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(); Loading
media/jni/android_media_MediaDrm.h +21 −1 Original line number Diff line number Diff line Loading @@ -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> Loading @@ -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(); Loading @@ -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); }; Loading