diff options
author | Takeshi Aimi <aimitakeshi@gmail.com> | 2010-11-16 13:56:11 +0900 |
---|---|---|
committer | Takeshi Aimi <aimitakeshi@gmail.com> | 2010-11-19 22:02:51 +0900 |
commit | 3473846f64f5b28e1cbeb70ef5867073fc93159e (patch) | |
tree | 9651de1dd360d8d77d9d4a53a23ed1181845b93c /drm/libdrmframework/include | |
parent | cf6a8d23345a6e54834e53b1eb7e465f3cb5e914 (diff) | |
download | frameworks_av-3473846f64f5b28e1cbeb70ef5867073fc93159e.zip frameworks_av-3473846f64f5b28e1cbeb70ef5867073fc93159e.tar.gz frameworks_av-3473846f64f5b28e1cbeb70ef5867073fc93159e.tar.bz2 |
Update of DRM Framework.
-Access permission handling
Introduce an internal function which allows the desired process to
access decryption flow. This new function is just for reference and
each OEM manufacturer should implement/replace with their solutions.
-New API, getMetadata()
This API is for retrieving media metadata from container-based DRM,
such as OMA forward-lock content. This API asks DRM agent to retrieve
media metadata hiddein inside of DRM special container.
-New API, acquireRights()
This API wraps acquireDrmInfo() and processDrmInfo().
If DRM agent has valid implementation of both APIs,
Application can acquire DrmRights only by calling this API.
-Bug fix in event loop of OnInfoListener.
Separate OnInfo event loop from mail thread loop so as to avoid
the issue that message is not dispatched when mail thread is busy.
Changes are made by SEMC and Sony.
Change-Id: I04ee3e0988152a71e221f2256d83253749a29da0
Diffstat (limited to 'drm/libdrmframework/include')
-rw-r--r-- | drm/libdrmframework/include/DrmManager.h | 3 | ||||
-rw-r--r-- | drm/libdrmframework/include/DrmManagerClientImpl.h | 12 | ||||
-rw-r--r-- | drm/libdrmframework/include/DrmManagerService.h | 2 | ||||
-rw-r--r-- | drm/libdrmframework/include/IDrmManagerService.h | 6 |
4 files changed, 23 insertions, 0 deletions
diff --git a/drm/libdrmframework/include/DrmManager.h b/drm/libdrmframework/include/DrmManager.h index d782f5b..bc462c2 100644 --- a/drm/libdrmframework/include/DrmManager.h +++ b/drm/libdrmframework/include/DrmManager.h @@ -32,6 +32,7 @@ class DrmUnregistrationInfo; class DrmRightsAcquisitionInfo; class DrmContentIds; class DrmConstraints; +class DrmMetadata; class DrmRights; class DrmInfo; class DrmInfoStatus; @@ -74,6 +75,8 @@ public: DrmConstraints* getConstraints(int uniqueId, const String8* path, const int action); + DrmMetadata* getMetadata(int uniqueId, const String8* path); + bool canHandle(int uniqueId, const String8& path, const String8& mimeType); DrmInfoStatus* processDrmInfo(int uniqueId, const DrmInfo* drmInfo); diff --git a/drm/libdrmframework/include/DrmManagerClientImpl.h b/drm/libdrmframework/include/DrmManagerClientImpl.h index 1c6be46..ff84fc7 100644 --- a/drm/libdrmframework/include/DrmManagerClientImpl.h +++ b/drm/libdrmframework/include/DrmManagerClientImpl.h @@ -86,6 +86,18 @@ public: DrmConstraints* getConstraints(int uniqueId, const String8* path, const int action); /** + * Get metadata information associated with input content. + * + * @param[in] uniqueId Unique identifier for a session + * @param[in] path Path of the protected content + * @return DrmMetadata + * key-value pairs of metadata are embedded in it + * @note + * In case of error, return NULL + */ + DrmMetadata* getMetadata(int uniqueId, const String8* path); + + /** * Check whether the given mimetype or path can be handled * * @param[in] uniqueId Unique identifier for a session diff --git a/drm/libdrmframework/include/DrmManagerService.h b/drm/libdrmframework/include/DrmManagerService.h index 4a3aeae..f346356 100644 --- a/drm/libdrmframework/include/DrmManagerService.h +++ b/drm/libdrmframework/include/DrmManagerService.h @@ -61,6 +61,8 @@ public: DrmConstraints* getConstraints(int uniqueId, const String8* path, const int action); + DrmMetadata* getMetadata(int uniqueId, const String8* path); + bool canHandle(int uniqueId, const String8& path, const String8& mimeType); DrmInfoStatus* processDrmInfo(int uniqueId, const DrmInfo* drmInfo); diff --git a/drm/libdrmframework/include/IDrmManagerService.h b/drm/libdrmframework/include/IDrmManagerService.h index 1275488..f1dabd3 100644 --- a/drm/libdrmframework/include/IDrmManagerService.h +++ b/drm/libdrmframework/include/IDrmManagerService.h @@ -27,6 +27,7 @@ namespace android { class DrmContentIds; class DrmConstraints; +class DrmMetadata; class DrmRights; class DrmInfo; class DrmInfoStatus; @@ -51,6 +52,7 @@ public: SET_DRM_SERVICE_LISTENER, INSTALL_DRM_ENGINE, GET_CONSTRAINTS_FROM_CONTENT, + GET_METADATA_FROM_CONTENT, CAN_HANDLE, PROCESS_DRM_INFO, ACQUIRE_DRM_INFO, @@ -96,6 +98,8 @@ public: virtual DrmConstraints* getConstraints( int uniqueId, const String8* path, const int action) = 0; + virtual DrmMetadata* getMetadata(int uniqueId, const String8* path) = 0; + virtual bool canHandle(int uniqueId, const String8& path, const String8& mimeType) = 0; virtual DrmInfoStatus* processDrmInfo(int uniqueId, const DrmInfo* drmInfo) = 0; @@ -179,6 +183,8 @@ public: virtual DrmConstraints* getConstraints(int uniqueId, const String8* path, const int action); + virtual DrmMetadata* getMetadata(int uniqueId, const String8* path); + virtual bool canHandle(int uniqueId, const String8& path, const String8& mimeType); virtual DrmInfoStatus* processDrmInfo(int uniqueId, const DrmInfo* drmInfo); |