Loading drm/mediadrm/plugins/clearkey/DrmPlugin.h +10 −0 Original line number Diff line number Diff line Loading @@ -113,11 +113,21 @@ public: return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop) { UNUSED(ssid); UNUSED(secureStop); return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t releaseSecureStops(const Vector<uint8_t>& ssRelease) { UNUSED(ssRelease); return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t releaseAllSecureStops() { return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t getPropertyString( const String8& name, String8& value) const; Loading include/media/IDrm.h +2 −1 Original line number Diff line number Diff line Loading @@ -73,8 +73,10 @@ struct IDrm : public IInterface { virtual status_t unprovisionDevice() = 0; virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops) = 0; virtual status_t getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop) = 0; virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease) = 0; virtual status_t releaseAllSecureStops() = 0; virtual status_t getPropertyString(String8 const &name, String8 &value) const = 0; virtual status_t getPropertyByteArray(String8 const &name, Loading Loading @@ -137,4 +139,3 @@ private: } // namespace android #endif // ANDROID_IDRM_H_ media/libmedia/IDrm.cpp +41 −2 Original line number Diff line number Diff line Loading @@ -54,7 +54,9 @@ enum { SIGN_RSA, VERIFY, SET_LISTENER, UNPROVISION_DEVICE UNPROVISION_DEVICE, GET_SECURE_STOP, RELEASE_ALL_SECURE_STOPS }; struct BpDrm : public BpInterface<IDrm> { Loading Loading @@ -255,6 +257,17 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32(); } virtual status_t getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop) { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); writeVector(data, ssid); remote()->transact(GET_SECURE_STOP, data, &reply); readVector(reply, secureStop); return reply.readInt32(); } virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease) { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); Loading @@ -265,6 +278,15 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32(); } virtual status_t releaseAllSecureStops() { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); remote()->transact(RELEASE_ALL_SECURE_STOPS, data, &reply); return reply.readInt32(); } virtual status_t getPropertyString(String8 const &name, String8 &value) const { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); Loading Loading @@ -655,6 +677,17 @@ status_t BnDrm::onTransact( return OK; } case GET_SECURE_STOP: { CHECK_INTERFACE(IDrm, data, reply); Vector<uint8_t> ssid, secureStop; readVector(data, ssid); status_t result = getSecureStop(ssid, secureStop); writeVector(reply, secureStop); reply->writeInt32(result); return OK; } case RELEASE_SECURE_STOPS: { CHECK_INTERFACE(IDrm, data, reply); Loading @@ -664,6 +697,13 @@ status_t BnDrm::onTransact( return OK; } case RELEASE_ALL_SECURE_STOPS: { CHECK_INTERFACE(IDrm, data, reply); reply->writeInt32(releaseAllSecureStops()); return OK; } case GET_PROPERTY_STRING: { CHECK_INTERFACE(IDrm, data, reply); Loading Loading @@ -809,4 +849,3 @@ status_t BnDrm::onTransact( } } // namespace android media/libmediaplayerservice/Drm.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -449,6 +449,20 @@ status_t Drm::getSecureStops(List<Vector<uint8_t> > &secureStops) { return mPlugin->getSecureStops(secureStops); } status_t Drm::getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { return mInitCheck; } if (mPlugin == NULL) { return -EINVAL; } return mPlugin->getSecureStop(ssid, secureStop); } status_t Drm::releaseSecureStops(Vector<uint8_t> const &ssRelease) { Mutex::Autolock autoLock(mLock); Loading @@ -463,6 +477,20 @@ status_t Drm::releaseSecureStops(Vector<uint8_t> const &ssRelease) { return mPlugin->releaseSecureStops(ssRelease); } status_t Drm::releaseAllSecureStops() { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { return mInitCheck; } if (mPlugin == NULL) { return -EINVAL; } return mPlugin->releaseAllSecureStops(); } status_t Drm::getPropertyString(String8 const &name, String8 &value ) const { Mutex::Autolock autoLock(mLock); Loading media/libmediaplayerservice/Drm.h +2 −0 Original line number Diff line number Diff line Loading @@ -78,8 +78,10 @@ struct Drm : public BnDrm, virtual status_t unprovisionDevice(); virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops); virtual status_t getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop); virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease); virtual status_t releaseAllSecureStops(); virtual status_t getPropertyString(String8 const &name, String8 &value ) const; virtual status_t getPropertyByteArray(String8 const &name, Loading Loading
drm/mediadrm/plugins/clearkey/DrmPlugin.h +10 −0 Original line number Diff line number Diff line Loading @@ -113,11 +113,21 @@ public: return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop) { UNUSED(ssid); UNUSED(secureStop); return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t releaseSecureStops(const Vector<uint8_t>& ssRelease) { UNUSED(ssRelease); return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t releaseAllSecureStops() { return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t getPropertyString( const String8& name, String8& value) const; Loading
include/media/IDrm.h +2 −1 Original line number Diff line number Diff line Loading @@ -73,8 +73,10 @@ struct IDrm : public IInterface { virtual status_t unprovisionDevice() = 0; virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops) = 0; virtual status_t getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop) = 0; virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease) = 0; virtual status_t releaseAllSecureStops() = 0; virtual status_t getPropertyString(String8 const &name, String8 &value) const = 0; virtual status_t getPropertyByteArray(String8 const &name, Loading Loading @@ -137,4 +139,3 @@ private: } // namespace android #endif // ANDROID_IDRM_H_
media/libmedia/IDrm.cpp +41 −2 Original line number Diff line number Diff line Loading @@ -54,7 +54,9 @@ enum { SIGN_RSA, VERIFY, SET_LISTENER, UNPROVISION_DEVICE UNPROVISION_DEVICE, GET_SECURE_STOP, RELEASE_ALL_SECURE_STOPS }; struct BpDrm : public BpInterface<IDrm> { Loading Loading @@ -255,6 +257,17 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32(); } virtual status_t getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop) { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); writeVector(data, ssid); remote()->transact(GET_SECURE_STOP, data, &reply); readVector(reply, secureStop); return reply.readInt32(); } virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease) { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); Loading @@ -265,6 +278,15 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32(); } virtual status_t releaseAllSecureStops() { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); remote()->transact(RELEASE_ALL_SECURE_STOPS, data, &reply); return reply.readInt32(); } virtual status_t getPropertyString(String8 const &name, String8 &value) const { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); Loading Loading @@ -655,6 +677,17 @@ status_t BnDrm::onTransact( return OK; } case GET_SECURE_STOP: { CHECK_INTERFACE(IDrm, data, reply); Vector<uint8_t> ssid, secureStop; readVector(data, ssid); status_t result = getSecureStop(ssid, secureStop); writeVector(reply, secureStop); reply->writeInt32(result); return OK; } case RELEASE_SECURE_STOPS: { CHECK_INTERFACE(IDrm, data, reply); Loading @@ -664,6 +697,13 @@ status_t BnDrm::onTransact( return OK; } case RELEASE_ALL_SECURE_STOPS: { CHECK_INTERFACE(IDrm, data, reply); reply->writeInt32(releaseAllSecureStops()); return OK; } case GET_PROPERTY_STRING: { CHECK_INTERFACE(IDrm, data, reply); Loading Loading @@ -809,4 +849,3 @@ status_t BnDrm::onTransact( } } // namespace android
media/libmediaplayerservice/Drm.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -449,6 +449,20 @@ status_t Drm::getSecureStops(List<Vector<uint8_t> > &secureStops) { return mPlugin->getSecureStops(secureStops); } status_t Drm::getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { return mInitCheck; } if (mPlugin == NULL) { return -EINVAL; } return mPlugin->getSecureStop(ssid, secureStop); } status_t Drm::releaseSecureStops(Vector<uint8_t> const &ssRelease) { Mutex::Autolock autoLock(mLock); Loading @@ -463,6 +477,20 @@ status_t Drm::releaseSecureStops(Vector<uint8_t> const &ssRelease) { return mPlugin->releaseSecureStops(ssRelease); } status_t Drm::releaseAllSecureStops() { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { return mInitCheck; } if (mPlugin == NULL) { return -EINVAL; } return mPlugin->releaseAllSecureStops(); } status_t Drm::getPropertyString(String8 const &name, String8 &value ) const { Mutex::Autolock autoLock(mLock); Loading
media/libmediaplayerservice/Drm.h +2 −0 Original line number Diff line number Diff line Loading @@ -78,8 +78,10 @@ struct Drm : public BnDrm, virtual status_t unprovisionDevice(); virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops); virtual status_t getSecureStop(Vector<uint8_t> const &ssid, Vector<uint8_t> &secureStop); virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease); virtual status_t releaseAllSecureStops(); virtual status_t getPropertyString(String8 const &name, String8 &value ) const; virtual status_t getPropertyByteArray(String8 const &name, Loading