diff options
author | Kei Takahashi <KeiA.Takahashi@jp.sony.com> | 2012-01-18 17:10:19 +0900 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2012-05-23 14:44:06 -0700 |
commit | cba7b32d8f2c47632313f54118ed3733b4b02cc8 (patch) | |
tree | b24101645accdc9067e7970ef22f3d934bda8edf /drm/libdrmframework/plugins | |
parent | cf0bf78c28cf25c30c42c784c1dc5bc094e6035d (diff) | |
download | frameworks_av-cba7b32d8f2c47632313f54118ed3733b4b02cc8.zip frameworks_av-cba7b32d8f2c47632313f54118ed3733b4b02cc8.tar.gz frameworks_av-cba7b32d8f2c47632313f54118ed3733b4b02cc8.tar.bz2 |
Add a new API on DRM Framework for streaming
In case of DRM streaming, decrypt session can start just after
receiving the header, and it doesn't need to wait for the entire
content. However, current API of DRM framework only accepts file
handle or URI. With this new API, DRM session can start
without waiting for the entire content.
Changes are made by SEMC and Sony.
Change-Id: I74375fe127df636067f1c300ea91654ba3d1aa3c
Diffstat (limited to 'drm/libdrmframework/plugins')
-rw-r--r-- | drm/libdrmframework/plugins/common/include/DrmEngineBase.h | 18 | ||||
-rw-r--r-- | drm/libdrmframework/plugins/common/include/IDrmEngine.h | 13 |
2 files changed, 31 insertions, 0 deletions
diff --git a/drm/libdrmframework/plugins/common/include/DrmEngineBase.h b/drm/libdrmframework/plugins/common/include/DrmEngineBase.h index 08f6e6d..6cebb97 100644 --- a/drm/libdrmframework/plugins/common/include/DrmEngineBase.h +++ b/drm/libdrmframework/plugins/common/include/DrmEngineBase.h @@ -87,6 +87,9 @@ public: int uniqueId, DecryptHandle* decryptHandle, const char* uri, const char* mime); + status_t openDecryptSession(int uniqueId, DecryptHandle* decryptHandle, + const DrmBuffer& buf, const String8& mimeType); + status_t closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle); status_t initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle, @@ -433,6 +436,21 @@ protected: } /** + * Open the decrypt session to decrypt the given protected content + * + * @param[in] uniqueId Unique identifier for a session + * @param[in] decryptHandle Handle for the current decryption session + * @param[in] buf Data to initiate decrypt session + * @param[in] mimeType Mime type of the protected content + * @return + * DRM_ERROR_CANNOT_HANDLE for failure and DRM_NO_ERROR for success + */ + virtual status_t onOpenDecryptSession(int uniqueId, DecryptHandle* decryptHandle, + const DrmBuffer& buf, const String8& mimeType) { + return DRM_ERROR_CANNOT_HANDLE; + } + + /** * Close the decrypt session for the given handle * * @param[in] uniqueId Unique identifier for a session diff --git a/drm/libdrmframework/plugins/common/include/IDrmEngine.h b/drm/libdrmframework/plugins/common/include/IDrmEngine.h index dcf5977..60f4c1b 100644 --- a/drm/libdrmframework/plugins/common/include/IDrmEngine.h +++ b/drm/libdrmframework/plugins/common/include/IDrmEngine.h @@ -345,6 +345,19 @@ public: const char* uri, const char* mime) = 0; /** + * Open the decrypt session to decrypt the given protected content + * + * @param[in] uniqueId Unique identifier for a session + * @param[in] decryptHandle Handle for the current decryption session + * @param[in] buf Data to initiate decrypt session + * @param[in] mimeType Mime type of the protected content + * @return + * DRM_ERROR_CANNOT_HANDLE for failure and DRM_NO_ERROR for success + */ + virtual status_t openDecryptSession(int uniqueId, DecryptHandle* decryptHandle, + const DrmBuffer& buf, const String8& mimeType) = 0; + + /** * Close the decrypt session for the given handle * * @param[in] uniqueId Unique identifier for a session |