Loading drm/libmediadrm/DrmHalAidl.cpp +17 −16 Original line number Diff line number Diff line Loading @@ -393,7 +393,8 @@ DrmHalAidl::DrmSessionClient::~DrmSessionClient() { // DrmHalAidl methods DrmHalAidl::DrmHalAidl() : mListener(::ndk::SharedRefBase::make<DrmHalListener>(&mMetrics)), : mMetrics(std::make_shared<MediaDrmMetrics>()), mListener(::ndk::SharedRefBase::make<DrmHalListener>(mMetrics)), mFactories(DrmUtils::makeDrmFactoriesAidl()), mInitCheck((mFactories.size() == 0) ? ERROR_UNSUPPORTED : NO_INIT) {} Loading Loading @@ -462,8 +463,8 @@ DrmStatus DrmHalAidl::createPlugin(const uint8_t uuid[16], const String8& appPac Uuid uuidAidl = DrmUtils::toAidlUuid(uuid); std::string appPackageNameAidl = toStdString(appPackageName); std::shared_ptr<IDrmPluginAidl> pluginAidl; mMetrics.SetAppPackageName(appPackageName); mMetrics.SetAppUid(AIBinder_getCallingUid()); mMetrics->SetAppPackageName(appPackageName); mMetrics->SetAppUid(AIBinder_getCallingUid()); for (ssize_t i = mFactories.size() - 1; i >= 0; i--) { ::ndk::ScopedAStatus status = mFactories[i]->createDrmPlugin(uuidAidl, appPackageNameAidl, &pluginAidl); Loading Loading @@ -539,10 +540,10 @@ DrmStatus DrmHalAidl::openSession(DrmPlugin::SecurityLevel level, Vector<uint8_t AIBinder_getCallingPid(), std::static_pointer_cast<IResourceManagerClient>(client), sessionId); mOpenSessions.push_back(client); mMetrics.SetSessionStart(sessionId); mMetrics->SetSessionStart(sessionId); } mMetrics.mOpenSessionCounter.Increment(err); mMetrics->mOpenSessionCounter.Increment(err); return err; } Loading @@ -562,10 +563,10 @@ DrmStatus DrmHalAidl::closeSession(Vector<uint8_t> const& sessionId) { } } mMetrics.SetSessionEnd(sessionId); mMetrics->SetSessionEnd(sessionId); } mMetrics.mCloseSessionCounter.Increment(response); mMetrics->mCloseSessionCounter.Increment(response); return response; } Loading @@ -577,7 +578,7 @@ DrmStatus DrmHalAidl::getKeyRequest(Vector<uint8_t> const& sessionId, DrmPlugin::KeyRequestType* keyRequestType) { Mutex::Autolock autoLock(mLock); INIT_CHECK(); EventTimer<status_t> keyRequestTimer(&mMetrics.mGetKeyRequestTimeUs); EventTimer<status_t> keyRequestTimer(&mMetrics->mGetKeyRequestTimeUs); DrmSessionManager::Instance()->useSession(sessionId); Loading Loading @@ -618,7 +619,7 @@ DrmStatus DrmHalAidl::provideKeyResponse(Vector<uint8_t> const& sessionId, Vector<uint8_t>& keySetId) { Mutex::Autolock autoLock(mLock); INIT_CHECK(); EventTimer<status_t> keyResponseTimer(&mMetrics.mProvideKeyResponseTimeUs); EventTimer<status_t> keyResponseTimer(&mMetrics->mProvideKeyResponseTimeUs); DrmSessionManager::Instance()->useSession(sessionId); Loading Loading @@ -687,7 +688,7 @@ DrmStatus DrmHalAidl::getProvisionRequest(String8 const& certType, String8 const defaultUrl = toString8(requestAidl.defaultUrl); err = statusAidlToDrmStatus(status); mMetrics.mGetProvisionRequestCounter.Increment(err); mMetrics->mGetProvisionRequestCounter.Increment(err); return err; } Loading @@ -704,7 +705,7 @@ DrmStatus DrmHalAidl::provideProvisionResponse(Vector<uint8_t> const& response, certificate = toVector(result.certificate); wrappedKey = toVector(result.wrappedKey); err = statusAidlToDrmStatus(status); mMetrics.mProvideProvisionResponseCounter.Increment(err); mMetrics->mProvideProvisionResponseCounter.Increment(err); return err; } Loading Loading @@ -914,7 +915,7 @@ DrmStatus DrmHalAidl::getPropertyByteArrayInternal(String8 const& name, value = toVector(result); err = statusAidlToDrmStatus(status); if (name == kPropertyDeviceUniqueId) { mMetrics.mGetDeviceUniqueIdCounter.Increment(err); mMetrics->mGetDeviceUniqueIdCounter.Increment(err); } return err; } Loading @@ -940,7 +941,7 @@ DrmStatus DrmHalAidl::getMetrics(const sp<IDrmMetricsConsumer>& consumer) { if (consumer == nullptr) { return DrmStatus(UNEXPECTED_NULL); } consumer->consumeFrameworkMetrics(mMetrics); consumer->consumeFrameworkMetrics(*mMetrics.get()); // Append vendor metrics if they are supported. Loading Loading @@ -1146,7 +1147,7 @@ std::string DrmHalAidl::reportPluginMetrics() const { getPropertyByteArrayInternal(String8("metrics"), metricsVector) == OK) { metricsString = toBase64StringNoPad(metricsVector.array(), metricsVector.size()); status_t res = android::reportDrmPluginMetrics(metricsString, vendor, description, mMetrics.GetAppUid()); mMetrics->GetAppUid()); if (res != OK) { ALOGE("Metrics were retrieved but could not be reported: %d", res); } Loading @@ -1156,7 +1157,7 @@ std::string DrmHalAidl::reportPluginMetrics() const { std::string DrmHalAidl::reportFrameworkMetrics(const std::string& pluginMetrics) const { mediametrics_handle_t item(mediametrics_create("mediadrm")); mediametrics_setUid(item, mMetrics.GetAppUid()); mediametrics_setUid(item, mMetrics->GetAppUid()); String8 vendor; String8 description; status_t result = getPropertyStringInternal(String8("vendor"), vendor); Loading @@ -1173,7 +1174,7 @@ std::string DrmHalAidl::reportFrameworkMetrics(const std::string& pluginMetrics) } std::string serializedMetrics; result = mMetrics.GetSerializedMetrics(&serializedMetrics); result = mMetrics->GetSerializedMetrics(&serializedMetrics); if (result != OK) { ALOGE("Failed to serialize framework metrics: %d", result); } Loading drm/libmediadrm/DrmHalListener.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -37,12 +37,12 @@ static hidl_vec<T> toHidlVec(const Vector<T>& vector) { return vec; } DrmHalListener::DrmHalListener(MediaDrmMetrics* metrics) DrmHalListener::DrmHalListener(const std::shared_ptr<MediaDrmMetrics>& metrics) : mMetrics(metrics) {} DrmHalListener::~DrmHalListener() {} void DrmHalListener::setListener(sp<IDrmClient> listener) { void DrmHalListener::setListener(const sp<IDrmClient>& listener) { Mutex::Autolock lock(mEventLock); mListener = listener; } Loading drm/libmediadrm/include/mediadrm/DrmHalAidl.h +1 −1 Original line number Diff line number Diff line Loading @@ -123,7 +123,7 @@ struct DrmHalAidl : public IDrm{ ::ndk::ScopedAStatus onSessionLostState(const std::vector<uint8_t>& in_sessionId); private: static Mutex mLock; mutable MediaDrmMetrics mMetrics; std::shared_ptr<MediaDrmMetrics> mMetrics; std::shared_ptr<DrmHalListener> mListener; const std::vector<std::shared_ptr<IDrmFactoryAidl>> mFactories; std::shared_ptr<IDrmPluginAidl> mPlugin; Loading drm/libmediadrm/include/mediadrm/DrmHalListener.h +3 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ using aidl::android::hardware::drm::BnDrmPluginListener; namespace android { struct DrmHalListener : public BnDrmPluginListener { explicit DrmHalListener(MediaDrmMetrics* mMetrics); explicit DrmHalListener(const std::shared_ptr<MediaDrmMetrics>& in_metrics); ~DrmHalListener(); ::ndk::ScopedAStatus onEvent(EventTypeAidl in_eventType, const std::vector<uint8_t>& in_sessionId, Loading @@ -38,9 +38,9 @@ struct DrmHalListener : public BnDrmPluginListener { const std::vector<KeyStatusAidl>& in_keyStatusList, bool in_hasNewUsableKey); ::ndk::ScopedAStatus onSessionLostState(const std::vector<uint8_t>& in_sessionId); void setListener(sp<IDrmClient> listener); void setListener(const sp<IDrmClient>& listener); private: mutable MediaDrmMetrics* mMetrics; std::shared_ptr<MediaDrmMetrics> mMetrics; sp<IDrmClient> mListener; mutable Mutex mEventLock; mutable Mutex mNotifyLock; Loading Loading
drm/libmediadrm/DrmHalAidl.cpp +17 −16 Original line number Diff line number Diff line Loading @@ -393,7 +393,8 @@ DrmHalAidl::DrmSessionClient::~DrmSessionClient() { // DrmHalAidl methods DrmHalAidl::DrmHalAidl() : mListener(::ndk::SharedRefBase::make<DrmHalListener>(&mMetrics)), : mMetrics(std::make_shared<MediaDrmMetrics>()), mListener(::ndk::SharedRefBase::make<DrmHalListener>(mMetrics)), mFactories(DrmUtils::makeDrmFactoriesAidl()), mInitCheck((mFactories.size() == 0) ? ERROR_UNSUPPORTED : NO_INIT) {} Loading Loading @@ -462,8 +463,8 @@ DrmStatus DrmHalAidl::createPlugin(const uint8_t uuid[16], const String8& appPac Uuid uuidAidl = DrmUtils::toAidlUuid(uuid); std::string appPackageNameAidl = toStdString(appPackageName); std::shared_ptr<IDrmPluginAidl> pluginAidl; mMetrics.SetAppPackageName(appPackageName); mMetrics.SetAppUid(AIBinder_getCallingUid()); mMetrics->SetAppPackageName(appPackageName); mMetrics->SetAppUid(AIBinder_getCallingUid()); for (ssize_t i = mFactories.size() - 1; i >= 0; i--) { ::ndk::ScopedAStatus status = mFactories[i]->createDrmPlugin(uuidAidl, appPackageNameAidl, &pluginAidl); Loading Loading @@ -539,10 +540,10 @@ DrmStatus DrmHalAidl::openSession(DrmPlugin::SecurityLevel level, Vector<uint8_t AIBinder_getCallingPid(), std::static_pointer_cast<IResourceManagerClient>(client), sessionId); mOpenSessions.push_back(client); mMetrics.SetSessionStart(sessionId); mMetrics->SetSessionStart(sessionId); } mMetrics.mOpenSessionCounter.Increment(err); mMetrics->mOpenSessionCounter.Increment(err); return err; } Loading @@ -562,10 +563,10 @@ DrmStatus DrmHalAidl::closeSession(Vector<uint8_t> const& sessionId) { } } mMetrics.SetSessionEnd(sessionId); mMetrics->SetSessionEnd(sessionId); } mMetrics.mCloseSessionCounter.Increment(response); mMetrics->mCloseSessionCounter.Increment(response); return response; } Loading @@ -577,7 +578,7 @@ DrmStatus DrmHalAidl::getKeyRequest(Vector<uint8_t> const& sessionId, DrmPlugin::KeyRequestType* keyRequestType) { Mutex::Autolock autoLock(mLock); INIT_CHECK(); EventTimer<status_t> keyRequestTimer(&mMetrics.mGetKeyRequestTimeUs); EventTimer<status_t> keyRequestTimer(&mMetrics->mGetKeyRequestTimeUs); DrmSessionManager::Instance()->useSession(sessionId); Loading Loading @@ -618,7 +619,7 @@ DrmStatus DrmHalAidl::provideKeyResponse(Vector<uint8_t> const& sessionId, Vector<uint8_t>& keySetId) { Mutex::Autolock autoLock(mLock); INIT_CHECK(); EventTimer<status_t> keyResponseTimer(&mMetrics.mProvideKeyResponseTimeUs); EventTimer<status_t> keyResponseTimer(&mMetrics->mProvideKeyResponseTimeUs); DrmSessionManager::Instance()->useSession(sessionId); Loading Loading @@ -687,7 +688,7 @@ DrmStatus DrmHalAidl::getProvisionRequest(String8 const& certType, String8 const defaultUrl = toString8(requestAidl.defaultUrl); err = statusAidlToDrmStatus(status); mMetrics.mGetProvisionRequestCounter.Increment(err); mMetrics->mGetProvisionRequestCounter.Increment(err); return err; } Loading @@ -704,7 +705,7 @@ DrmStatus DrmHalAidl::provideProvisionResponse(Vector<uint8_t> const& response, certificate = toVector(result.certificate); wrappedKey = toVector(result.wrappedKey); err = statusAidlToDrmStatus(status); mMetrics.mProvideProvisionResponseCounter.Increment(err); mMetrics->mProvideProvisionResponseCounter.Increment(err); return err; } Loading Loading @@ -914,7 +915,7 @@ DrmStatus DrmHalAidl::getPropertyByteArrayInternal(String8 const& name, value = toVector(result); err = statusAidlToDrmStatus(status); if (name == kPropertyDeviceUniqueId) { mMetrics.mGetDeviceUniqueIdCounter.Increment(err); mMetrics->mGetDeviceUniqueIdCounter.Increment(err); } return err; } Loading @@ -940,7 +941,7 @@ DrmStatus DrmHalAidl::getMetrics(const sp<IDrmMetricsConsumer>& consumer) { if (consumer == nullptr) { return DrmStatus(UNEXPECTED_NULL); } consumer->consumeFrameworkMetrics(mMetrics); consumer->consumeFrameworkMetrics(*mMetrics.get()); // Append vendor metrics if they are supported. Loading Loading @@ -1146,7 +1147,7 @@ std::string DrmHalAidl::reportPluginMetrics() const { getPropertyByteArrayInternal(String8("metrics"), metricsVector) == OK) { metricsString = toBase64StringNoPad(metricsVector.array(), metricsVector.size()); status_t res = android::reportDrmPluginMetrics(metricsString, vendor, description, mMetrics.GetAppUid()); mMetrics->GetAppUid()); if (res != OK) { ALOGE("Metrics were retrieved but could not be reported: %d", res); } Loading @@ -1156,7 +1157,7 @@ std::string DrmHalAidl::reportPluginMetrics() const { std::string DrmHalAidl::reportFrameworkMetrics(const std::string& pluginMetrics) const { mediametrics_handle_t item(mediametrics_create("mediadrm")); mediametrics_setUid(item, mMetrics.GetAppUid()); mediametrics_setUid(item, mMetrics->GetAppUid()); String8 vendor; String8 description; status_t result = getPropertyStringInternal(String8("vendor"), vendor); Loading @@ -1173,7 +1174,7 @@ std::string DrmHalAidl::reportFrameworkMetrics(const std::string& pluginMetrics) } std::string serializedMetrics; result = mMetrics.GetSerializedMetrics(&serializedMetrics); result = mMetrics->GetSerializedMetrics(&serializedMetrics); if (result != OK) { ALOGE("Failed to serialize framework metrics: %d", result); } Loading
drm/libmediadrm/DrmHalListener.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -37,12 +37,12 @@ static hidl_vec<T> toHidlVec(const Vector<T>& vector) { return vec; } DrmHalListener::DrmHalListener(MediaDrmMetrics* metrics) DrmHalListener::DrmHalListener(const std::shared_ptr<MediaDrmMetrics>& metrics) : mMetrics(metrics) {} DrmHalListener::~DrmHalListener() {} void DrmHalListener::setListener(sp<IDrmClient> listener) { void DrmHalListener::setListener(const sp<IDrmClient>& listener) { Mutex::Autolock lock(mEventLock); mListener = listener; } Loading
drm/libmediadrm/include/mediadrm/DrmHalAidl.h +1 −1 Original line number Diff line number Diff line Loading @@ -123,7 +123,7 @@ struct DrmHalAidl : public IDrm{ ::ndk::ScopedAStatus onSessionLostState(const std::vector<uint8_t>& in_sessionId); private: static Mutex mLock; mutable MediaDrmMetrics mMetrics; std::shared_ptr<MediaDrmMetrics> mMetrics; std::shared_ptr<DrmHalListener> mListener; const std::vector<std::shared_ptr<IDrmFactoryAidl>> mFactories; std::shared_ptr<IDrmPluginAidl> mPlugin; Loading
drm/libmediadrm/include/mediadrm/DrmHalListener.h +3 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ using aidl::android::hardware::drm::BnDrmPluginListener; namespace android { struct DrmHalListener : public BnDrmPluginListener { explicit DrmHalListener(MediaDrmMetrics* mMetrics); explicit DrmHalListener(const std::shared_ptr<MediaDrmMetrics>& in_metrics); ~DrmHalListener(); ::ndk::ScopedAStatus onEvent(EventTypeAidl in_eventType, const std::vector<uint8_t>& in_sessionId, Loading @@ -38,9 +38,9 @@ struct DrmHalListener : public BnDrmPluginListener { const std::vector<KeyStatusAidl>& in_keyStatusList, bool in_hasNewUsableKey); ::ndk::ScopedAStatus onSessionLostState(const std::vector<uint8_t>& in_sessionId); void setListener(sp<IDrmClient> listener); void setListener(const sp<IDrmClient>& listener); private: mutable MediaDrmMetrics* mMetrics; std::shared_ptr<MediaDrmMetrics> mMetrics; sp<IDrmClient> mListener; mutable Mutex mEventLock; mutable Mutex mNotifyLock; Loading