Loading drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,14 @@ namespace android { return (!memcmp(uuid, mock_uuid, sizeof(uuid))); } bool MockDrmFactory::isContentTypeSupported(const String8 &mimeType) { if (mimeType != "" && mimeType != "video/mp4") { return false; } return true; } status_t MockDrmFactory::createDrmPlugin(const uint8_t uuid[16], DrmPlugin **plugin) { *plugin = new MockDrmPlugin(); Loading drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.h +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ namespace android { virtual ~MockDrmFactory() {} bool isCryptoSchemeSupported(const uint8_t uuid[16]); bool isContentTypeSupported(const String8 &mimeType); status_t createDrmPlugin(const uint8_t uuid[16], DrmPlugin **plugin); }; Loading include/media/IDrm.h +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ struct IDrm : public IInterface { virtual status_t initCheck() const = 0; virtual bool isCryptoSchemeSupported(const uint8_t uuid[16]) = 0; virtual bool isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mimeType) = 0; virtual status_t createPlugin(const uint8_t uuid[16]) = 0; Loading media/libmedia/IDrm.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -68,10 +68,11 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32(); } virtual bool isCryptoSchemeSupported(const uint8_t uuid[16]) { virtual bool isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mimeType) { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); data.write(uuid, 16); data.writeString8(mimeType); remote()->transact(IS_CRYPTO_SUPPORTED, data, &reply); return reply.readInt32() != 0; Loading Loading @@ -438,7 +439,9 @@ status_t BnDrm::onTransact( CHECK_INTERFACE(IDrm, data, reply); uint8_t uuid[16]; data.read(uuid, sizeof(uuid)); reply->writeInt32(isCryptoSchemeSupported(uuid)); String8 mimeType = data.readString8(); reply->writeInt32(isCryptoSchemeSupported(uuid, mimeType)); return OK; } Loading media/libmediaplayerservice/Drm.cpp +8 −5 Original line number Diff line number Diff line Loading @@ -211,15 +211,18 @@ bool Drm::loadLibraryForScheme(const String8 &path, const uint8_t uuid[16]) { return true; } bool Drm::isCryptoSchemeSupported(const uint8_t uuid[16]) { bool Drm::isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mimeType) { Mutex::Autolock autoLock(mLock); if (mFactory && mFactory->isCryptoSchemeSupported(uuid)) { return true; if (!mFactory || !mFactory->isCryptoSchemeSupported(uuid)) { findFactoryForScheme(uuid); if (mInitCheck != OK) { return false; } } findFactoryForScheme(uuid); return (mInitCheck == OK); return mFactory->isContentTypeSupported(mimeType); } status_t Drm::createPlugin(const uint8_t uuid[16]) { Loading Loading
drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,14 @@ namespace android { return (!memcmp(uuid, mock_uuid, sizeof(uuid))); } bool MockDrmFactory::isContentTypeSupported(const String8 &mimeType) { if (mimeType != "" && mimeType != "video/mp4") { return false; } return true; } status_t MockDrmFactory::createDrmPlugin(const uint8_t uuid[16], DrmPlugin **plugin) { *plugin = new MockDrmPlugin(); Loading
drm/mediadrm/plugins/mock/MockDrmCryptoPlugin.h +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ namespace android { virtual ~MockDrmFactory() {} bool isCryptoSchemeSupported(const uint8_t uuid[16]); bool isContentTypeSupported(const String8 &mimeType); status_t createDrmPlugin(const uint8_t uuid[16], DrmPlugin **plugin); }; Loading
include/media/IDrm.h +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ struct IDrm : public IInterface { virtual status_t initCheck() const = 0; virtual bool isCryptoSchemeSupported(const uint8_t uuid[16]) = 0; virtual bool isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mimeType) = 0; virtual status_t createPlugin(const uint8_t uuid[16]) = 0; Loading
media/libmedia/IDrm.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -68,10 +68,11 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32(); } virtual bool isCryptoSchemeSupported(const uint8_t uuid[16]) { virtual bool isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mimeType) { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); data.write(uuid, 16); data.writeString8(mimeType); remote()->transact(IS_CRYPTO_SUPPORTED, data, &reply); return reply.readInt32() != 0; Loading Loading @@ -438,7 +439,9 @@ status_t BnDrm::onTransact( CHECK_INTERFACE(IDrm, data, reply); uint8_t uuid[16]; data.read(uuid, sizeof(uuid)); reply->writeInt32(isCryptoSchemeSupported(uuid)); String8 mimeType = data.readString8(); reply->writeInt32(isCryptoSchemeSupported(uuid, mimeType)); return OK; } Loading
media/libmediaplayerservice/Drm.cpp +8 −5 Original line number Diff line number Diff line Loading @@ -211,15 +211,18 @@ bool Drm::loadLibraryForScheme(const String8 &path, const uint8_t uuid[16]) { return true; } bool Drm::isCryptoSchemeSupported(const uint8_t uuid[16]) { bool Drm::isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mimeType) { Mutex::Autolock autoLock(mLock); if (mFactory && mFactory->isCryptoSchemeSupported(uuid)) { return true; if (!mFactory || !mFactory->isCryptoSchemeSupported(uuid)) { findFactoryForScheme(uuid); if (mInitCheck != OK) { return false; } } findFactoryForScheme(uuid); return (mInitCheck == OK); return mFactory->isContentTypeSupported(mimeType); } status_t Drm::createPlugin(const uint8_t uuid[16]) { Loading