Add getSupportedSchemes Api for IDrm
Bug: 225064675
Test: CtsMediaDrmFrameworkTestCases
Change-Id: If8bb27072d6ed649802d2968dd66429288211cac
diff --git a/drm/libmediadrm/DrmHalAidl.cpp b/drm/libmediadrm/DrmHalAidl.cpp
index 284abd5..bdd83e9 100644
--- a/drm/libmediadrm/DrmHalAidl.cpp
+++ b/drm/libmediadrm/DrmHalAidl.cpp
@@ -1189,6 +1189,25 @@
return serializedMetrics;
}
+status_t DrmHalAidl::getSupportedSchemes(std::vector<uint8_t> &schemes) const {
+ Mutex::Autolock autoLock(mLock);
+
+ if (mFactories.empty()) return UNKNOWN_ERROR;
+ for (ssize_t i = mFactories.size() - 1; i >= 0; i--) {
+ CryptoSchemes curSchemes{};
+ auto err = mFactories[i]->getSupportedCryptoSchemes(&curSchemes);
+ if (!err.isOk()) {
+ continue;
+ }
+
+ for (auto uuidObj : curSchemes.uuids) {
+ schemes.insert(schemes.end(), uuidObj.uuid.begin(), uuidObj.uuid.end());
+ }
+ }
+
+ return OK;
+}
+
void DrmHalAidl::cleanup() {
closeOpenSessions();