diff options
Diffstat (limited to 'drm/libdrmframework')
-rw-r--r-- | drm/libdrmframework/DrmManagerClient.cpp | 5 | ||||
-rw-r--r-- | drm/libdrmframework/DrmManagerClientImpl.cpp | 5 | ||||
-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 | 3 | ||||
-rw-r--r-- | drm/libdrmframework/include/IDrmManagerService.h | 7 | ||||
-rw-r--r-- | drm/libdrmframework/plugins/common/include/DrmEngineBase.h | 18 | ||||
-rw-r--r-- | drm/libdrmframework/plugins/common/include/IDrmEngine.h | 13 |
8 files changed, 66 insertions, 0 deletions
diff --git a/drm/libdrmframework/DrmManagerClient.cpp b/drm/libdrmframework/DrmManagerClient.cpp index 8768c08..d4db461 100644 --- a/drm/libdrmframework/DrmManagerClient.cpp +++ b/drm/libdrmframework/DrmManagerClient.cpp @@ -130,6 +130,11 @@ sp<DecryptHandle> DrmManagerClient::openDecryptSession( mUniqueId, uri, mime); } +sp<DecryptHandle> DrmManagerClient::openDecryptSession( + const DrmBuffer& buf, const String8& mimeType) { + return mDrmManagerClientImpl->openDecryptSession(mUniqueId, buf, mimeType); +} + status_t DrmManagerClient::closeDecryptSession(sp<DecryptHandle> &decryptHandle) { return mDrmManagerClientImpl->closeDecryptSession(mUniqueId, decryptHandle); } diff --git a/drm/libdrmframework/DrmManagerClientImpl.cpp b/drm/libdrmframework/DrmManagerClientImpl.cpp index fb0439e..b1228d4 100644 --- a/drm/libdrmframework/DrmManagerClientImpl.cpp +++ b/drm/libdrmframework/DrmManagerClientImpl.cpp @@ -272,6 +272,11 @@ sp<DecryptHandle> DrmManagerClientImpl::openDecryptSession( return handle; } +sp<DecryptHandle> DrmManagerClientImpl::openDecryptSession( + int uniqueId, const DrmBuffer& buf, const String8& mimeType) { + return getDrmManagerService()->openDecryptSession(uniqueId, buf, mimeType); +} + status_t DrmManagerClientImpl::closeDecryptSession( int uniqueId, sp<DecryptHandle> &decryptHandle) { status_t status = DRM_ERROR_UNKNOWN; diff --git a/drm/libdrmframework/include/DrmManager.h b/drm/libdrmframework/include/DrmManager.h index c9167d4..3942efe 100644 --- a/drm/libdrmframework/include/DrmManager.h +++ b/drm/libdrmframework/include/DrmManager.h @@ -116,6 +116,9 @@ public: DecryptHandle* openDecryptSession(int uniqueId, const char* uri, const char* mime); + DecryptHandle* openDecryptSession(int uniqueId, const DrmBuffer& buf, + const String8& mimeType); + status_t closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle); status_t initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle, diff --git a/drm/libdrmframework/include/DrmManagerClientImpl.h b/drm/libdrmframework/include/DrmManagerClientImpl.h index 2aa493f..f3d9315 100644 --- a/drm/libdrmframework/include/DrmManagerClientImpl.h +++ b/drm/libdrmframework/include/DrmManagerClientImpl.h @@ -320,6 +320,18 @@ public: int uniqueId, const char* uri, const char* mime); /** + * Open the decrypt session to decrypt the given protected content + * + * @param[in] uniqueId Unique identifier for a session + * @param[in] buf Data to initiate decrypt session + * @param[in] mimeType Mime type of the protected content + * @return + * Handle for the decryption session + */ + sp<DecryptHandle> openDecryptSession(int uniqueId, const DrmBuffer& buf, + const String8& mimeType); + + /** * Close the decrypt session for the given handle * * @param[in] uniqueId Unique identifier for a session diff --git a/drm/libdrmframework/include/DrmManagerService.h b/drm/libdrmframework/include/DrmManagerService.h index 1a8c2ae..066fe4a 100644 --- a/drm/libdrmframework/include/DrmManagerService.h +++ b/drm/libdrmframework/include/DrmManagerService.h @@ -104,6 +104,9 @@ public: DecryptHandle* openDecryptSession( int uniqueId, const char* uri, const char* mime); + DecryptHandle* openDecryptSession(int uniqueId, const DrmBuffer& buf, + const String8& mimeType); + status_t closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle); status_t initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle, diff --git a/drm/libdrmframework/include/IDrmManagerService.h b/drm/libdrmframework/include/IDrmManagerService.h index a7d21c5..5b89c91 100644 --- a/drm/libdrmframework/include/IDrmManagerService.h +++ b/drm/libdrmframework/include/IDrmManagerService.h @@ -70,6 +70,7 @@ public: GET_ALL_SUPPORT_INFO, OPEN_DECRYPT_SESSION, OPEN_DECRYPT_SESSION_FROM_URI, + OPEN_DECRYPT_SESSION_FOR_STREAMING, CLOSE_DECRYPT_SESSION, INITIALIZE_DECRYPT_UNIT, DECRYPT, @@ -146,6 +147,9 @@ public: virtual DecryptHandle* openDecryptSession( int uniqueId, const char* uri, const char* mime) = 0; + virtual DecryptHandle* openDecryptSession( + int uniqueId, const DrmBuffer& buf, const String8& mimeType) = 0; + virtual status_t closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle) = 0; virtual status_t initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle, @@ -232,6 +236,9 @@ public: virtual DecryptHandle* openDecryptSession( int uniqueId, const char* uri, const char* mime); + virtual DecryptHandle* openDecryptSession( + int uniqueId, const DrmBuffer& buf, const String8& mimeType); + virtual status_t closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle); virtual status_t initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle, 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 |