Update of DRM framework
- Overload openDecryptSession() with uri parameter
in order to accept URI of DRM content,
Following API is added,
DecryptHandle*openDecryptSession(const char* uri);.
- Unify texisting three event types of processDrmInfo()
so that caller of DRM framework does not have to handle many event types.
- Let DrmManagerService call load/unload plugins API so that
client of DRM framework does not have to manage plug-in load/unload.
- Trivial fix in DrmManagerClient.java is also incorporated.
Changes are made by Sony Corporation.
Change-Id: If62b47fa0360718fdc943e6e6143671d7db26adc
diff --git a/drm/libdrmframework/include/IDrmManagerService.h b/drm/libdrmframework/include/IDrmManagerService.h
index 5c668ed..1275488 100644
--- a/drm/libdrmframework/include/IDrmManagerService.h
+++ b/drm/libdrmframework/include/IDrmManagerService.h
@@ -46,10 +46,9 @@
enum {
ADD_UNIQUEID = IBinder::FIRST_CALL_TRANSACTION,
REMOVE_UNIQUEID,
- LOAD_PLUGINS,
- LOAD_PLUGINS_FROM_PATH,
+ ADD_CLIENT,
+ REMOVE_CLIENT,
SET_DRM_SERVICE_LISTENER,
- UNLOAD_PLUGINS,
INSTALL_DRM_ENGINE,
GET_CONSTRAINTS_FROM_CONTENT,
CAN_HANDLE,
@@ -69,6 +68,7 @@
CLOSE_CONVERT_SESSION,
GET_ALL_SUPPORT_INFO,
OPEN_DECRYPT_SESSION,
+ OPEN_DECRYPT_SESSION_FROM_URI,
CLOSE_DECRYPT_SESSION,
INITIALIZE_DECRYPT_UNIT,
DECRYPT,
@@ -84,15 +84,13 @@
virtual void removeUniqueId(int uniqueId) = 0;
- virtual status_t loadPlugIns(int uniqueId) = 0;
+ virtual void addClient(int uniqueId) = 0;
- virtual status_t loadPlugIns(int uniqueId, const String8& plugInDirPath) = 0;
+ virtual void removeClient(int uniqueId) = 0;
virtual status_t setDrmServiceListener(
int uniqueId, const sp<IDrmServiceListener>& infoListener) = 0;
- virtual status_t unloadPlugIns(int uniqueId) = 0;
-
virtual status_t installDrmEngine(int uniqueId, const String8& drmEngineFile) = 0;
virtual DrmConstraints* getConstraints(
@@ -140,6 +138,8 @@
virtual DecryptHandle* openDecryptSession(int uniqueId, int fd, int offset, int length) = 0;
+ virtual DecryptHandle* openDecryptSession(int uniqueId, const char* uri) = 0;
+
virtual status_t closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle) = 0;
virtual status_t initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle,
@@ -168,15 +168,13 @@
virtual void removeUniqueId(int uniqueId);
- virtual status_t loadPlugIns(int uniqueId);
+ virtual void addClient(int uniqueId);
- virtual status_t loadPlugIns(int uniqueId, const String8& plugInDirPath);
+ virtual void removeClient(int uniqueId);
virtual status_t setDrmServiceListener(
int uniqueId, const sp<IDrmServiceListener>& infoListener);
- virtual status_t unloadPlugIns(int uniqueId);
-
virtual status_t installDrmEngine(int uniqueId, const String8& drmEngineFile);
virtual DrmConstraints* getConstraints(int uniqueId, const String8* path, const int action);
@@ -221,6 +219,8 @@
virtual DecryptHandle* openDecryptSession(int uniqueId, int fd, int offset, int length);
+ virtual DecryptHandle* openDecryptSession(int uniqueId, const char* uri);
+
virtual status_t closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle);
virtual status_t initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle,