Loading drm/libmediadrm/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ cc_library { "android.hardware.drm@1.1", "android.hardware.drm@1.2", "android.hardware.drm@1.3", "android.hardware.drm@1.4", "libhidlallocatorutils", "libhidlbase", ], Loading drm/libmediadrm/DrmHal.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -387,6 +387,7 @@ void DrmHal::cleanup() { mPlugin.clear(); mPluginV1_1.clear(); mPluginV1_2.clear(); mPluginV1_4.clear(); } std::vector<sp<IDrmFactory>> DrmHal::makeDrmFactories() { Loading Loading @@ -622,6 +623,7 @@ status_t DrmHal::createPlugin(const uint8_t uuid[16], mPlugin = plugin; mPluginV1_1 = drm::V1_1::IDrmPlugin::castFrom(mPlugin); mPluginV1_2 = drm::V1_2::IDrmPlugin::castFrom(mPlugin); mPluginV1_4 = drm::V1_4::IDrmPlugin::castFrom(mPlugin); break; } } Loading @@ -642,6 +644,7 @@ status_t DrmHal::createPlugin(const uint8_t uuid[16], mPlugin.clear(); mPluginV1_1.clear(); mPluginV1_2.clear(); mPluginV1_4.clear(); } } Loading Loading @@ -1564,4 +1567,22 @@ void DrmHal::reportPluginMetrics() const } } bool DrmHal::requiresSecureDecoder(const char *mime) const { Mutex::Autolock autoLock(mLock); if (mPluginV1_4 == NULL) { return false; } return mPluginV1_4->requiresSecureDecoderDefault(hidl_string(mime)); } bool DrmHal::requiresSecureDecoder(const char *mime, DrmPlugin::SecurityLevel securityLevel) const { Mutex::Autolock autoLock(mLock); if (mPluginV1_4 == NULL) { return false; } auto hLevel = toHidlSecurityLevel(securityLevel); return mPluginV1_4->requiresSecureDecoder(hidl_string(mime), hLevel); } } // namespace android drm/libmediadrm/fuzzer/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ cc_fuzz { "android.hardware.drm@1.1", "android.hardware.drm@1.2", "android.hardware.drm@1.3", "android.hardware.drm@1.4", "libhidlallocatorutils", "libhidlbase", ], Loading drm/libmediadrm/include/mediadrm/DrmHal.h +9 −0 Original line number Diff line number Diff line Loading @@ -25,7 +25,9 @@ #include <android/hardware/drm/1.2/IDrmFactory.h> #include <android/hardware/drm/1.2/IDrmPlugin.h> #include <android/hardware/drm/1.2/IDrmPluginListener.h> #include <android/hardware/drm/1.4/IDrmPlugin.h> #include <media/drm/DrmAPI.h> #include <mediadrm/DrmMetrics.h> #include <mediadrm/DrmSessionManager.h> #include <mediadrm/IDrm.h> Loading Loading @@ -176,6 +178,12 @@ struct DrmHal : public IDrm, virtual status_t setListener(const sp<IDrmClient>& listener); virtual bool requiresSecureDecoder(const char *mime) const; virtual bool requiresSecureDecoder( const char *mime, DrmPlugin::SecurityLevel securityLevel) const; // Methods of IDrmPluginListener Return<void> sendEvent(EventType eventType, const hidl_vec<uint8_t>& sessionId, const hidl_vec<uint8_t>& data); Loading @@ -202,6 +210,7 @@ private: sp<IDrmPlugin> mPlugin; sp<drm::V1_1::IDrmPlugin> mPluginV1_1; sp<drm::V1_2::IDrmPlugin> mPluginV1_2; sp<drm::V1_4::IDrmPlugin> mPluginV1_4; String8 mAppPackageName; // Mutable to allow modification within GetPropertyByteArray. Loading drm/libmediadrm/include/mediadrm/IDrm.h +7 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,13 @@ struct IDrm : public virtual RefBase { virtual status_t setListener(const sp<IDrmClient>& listener) = 0; virtual bool requiresSecureDecoder( const char *mime) const = 0; virtual bool requiresSecureDecoder( const char *mime, DrmPlugin::SecurityLevel securityLevel) const = 0; protected: IDrm() {} Loading Loading
drm/libmediadrm/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ cc_library { "android.hardware.drm@1.1", "android.hardware.drm@1.2", "android.hardware.drm@1.3", "android.hardware.drm@1.4", "libhidlallocatorutils", "libhidlbase", ], Loading
drm/libmediadrm/DrmHal.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -387,6 +387,7 @@ void DrmHal::cleanup() { mPlugin.clear(); mPluginV1_1.clear(); mPluginV1_2.clear(); mPluginV1_4.clear(); } std::vector<sp<IDrmFactory>> DrmHal::makeDrmFactories() { Loading Loading @@ -622,6 +623,7 @@ status_t DrmHal::createPlugin(const uint8_t uuid[16], mPlugin = plugin; mPluginV1_1 = drm::V1_1::IDrmPlugin::castFrom(mPlugin); mPluginV1_2 = drm::V1_2::IDrmPlugin::castFrom(mPlugin); mPluginV1_4 = drm::V1_4::IDrmPlugin::castFrom(mPlugin); break; } } Loading @@ -642,6 +644,7 @@ status_t DrmHal::createPlugin(const uint8_t uuid[16], mPlugin.clear(); mPluginV1_1.clear(); mPluginV1_2.clear(); mPluginV1_4.clear(); } } Loading Loading @@ -1564,4 +1567,22 @@ void DrmHal::reportPluginMetrics() const } } bool DrmHal::requiresSecureDecoder(const char *mime) const { Mutex::Autolock autoLock(mLock); if (mPluginV1_4 == NULL) { return false; } return mPluginV1_4->requiresSecureDecoderDefault(hidl_string(mime)); } bool DrmHal::requiresSecureDecoder(const char *mime, DrmPlugin::SecurityLevel securityLevel) const { Mutex::Autolock autoLock(mLock); if (mPluginV1_4 == NULL) { return false; } auto hLevel = toHidlSecurityLevel(securityLevel); return mPluginV1_4->requiresSecureDecoder(hidl_string(mime), hLevel); } } // namespace android
drm/libmediadrm/fuzzer/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ cc_fuzz { "android.hardware.drm@1.1", "android.hardware.drm@1.2", "android.hardware.drm@1.3", "android.hardware.drm@1.4", "libhidlallocatorutils", "libhidlbase", ], Loading
drm/libmediadrm/include/mediadrm/DrmHal.h +9 −0 Original line number Diff line number Diff line Loading @@ -25,7 +25,9 @@ #include <android/hardware/drm/1.2/IDrmFactory.h> #include <android/hardware/drm/1.2/IDrmPlugin.h> #include <android/hardware/drm/1.2/IDrmPluginListener.h> #include <android/hardware/drm/1.4/IDrmPlugin.h> #include <media/drm/DrmAPI.h> #include <mediadrm/DrmMetrics.h> #include <mediadrm/DrmSessionManager.h> #include <mediadrm/IDrm.h> Loading Loading @@ -176,6 +178,12 @@ struct DrmHal : public IDrm, virtual status_t setListener(const sp<IDrmClient>& listener); virtual bool requiresSecureDecoder(const char *mime) const; virtual bool requiresSecureDecoder( const char *mime, DrmPlugin::SecurityLevel securityLevel) const; // Methods of IDrmPluginListener Return<void> sendEvent(EventType eventType, const hidl_vec<uint8_t>& sessionId, const hidl_vec<uint8_t>& data); Loading @@ -202,6 +210,7 @@ private: sp<IDrmPlugin> mPlugin; sp<drm::V1_1::IDrmPlugin> mPluginV1_1; sp<drm::V1_2::IDrmPlugin> mPluginV1_2; sp<drm::V1_4::IDrmPlugin> mPluginV1_4; String8 mAppPackageName; // Mutable to allow modification within GetPropertyByteArray. Loading
drm/libmediadrm/include/mediadrm/IDrm.h +7 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,13 @@ struct IDrm : public virtual RefBase { virtual status_t setListener(const sp<IDrmClient>& listener) = 0; virtual bool requiresSecureDecoder( const char *mime) const = 0; virtual bool requiresSecureDecoder( const char *mime, DrmPlugin::SecurityLevel securityLevel) const = 0; protected: IDrm() {} Loading