Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Unified Diff: webkit/media/crypto/ppapi/content_decryption_module.h

Issue 10837252: Update CDM interface and add clear key CDM. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge "ppapi_cdm_wrapper" target into "clearkeycdmplugin". Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/media/crypto/ppapi/clear_key_cdm.cc ('k') | webkit/media/webkit_media.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/media/crypto/ppapi/content_decryption_module.h
diff --git a/webkit/media/crypto/ppapi/content_decryption_module.h b/webkit/media/crypto/ppapi/content_decryption_module.h
index 491c064f15bb7379c03d0f74dc65a782b8210909..0023d497a52e4f871a7c6611e4030d6aed0ac812 100644
--- a/webkit/media/crypto/ppapi/content_decryption_module.h
+++ b/webkit/media/crypto/ppapi/content_decryption_module.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef WEBKIT_MEDIA_CRYPTO_CONTENT_DECRYPTION_MODULE_H_
-#define WEBKIT_MEDIA_CRYPTO_CONTENT_DECRYPTION_MODULE_H_
+#ifndef WEBKIT_MEDIA_CRYPTO_PPAPI_CONTENT_DECRYPTION_MODULE_H_
+#define WEBKIT_MEDIA_CRYPTO_PPAPI_CONTENT_DECRYPTION_MODULE_H_
#if defined(_MSC_VER)
typedef unsigned char uint8_t;
@@ -13,18 +13,35 @@ typedef __int64 int64_t;
#include <stdint.h>
#endif
+#include "webkit/media/crypto/ppapi/cdm_export.h"
+
namespace cdm {
class ContentDecryptionModule;
}
extern "C" {
-cdm::ContentDecryptionModule* CreateCdmInstance();
-void DestroyCdmInstance(cdm::ContentDecryptionModule* instance);
-const char* GetCdmVersion();
+CDM_EXPORT cdm::ContentDecryptionModule* CreateCdmInstance();
+CDM_EXPORT void DestroyCdmInstance(cdm::ContentDecryptionModule* instance);
+CDM_EXPORT const char* GetCdmVersion();
}
namespace cdm {
+enum Status {
+ kSuccess = 0,
+ kErrorUnknown,
+ kErrorNoKey
+};
+
+struct KeyMessage {
+ char* session_id;
+ uint32_t session_id_size;
+ uint8_t* message;
+ uint32_t message_size;
+ char* default_url;
+ uint32_t default_url_size;
+};
+
// An input buffer can be split into several continuous subsamples.
// A SubsampleEntry specifies the number of clear and cipher bytes in each
// subsample. For example, the following buffer has three subsamples:
@@ -82,31 +99,20 @@ struct OutputBuffer {
class ContentDecryptionModule {
public:
- enum Status {
- kSuccess = 0,
- kErrorUnknown,
- kErrorNoKey
- };
-
- // Generates a |key_request| as well as a |session_id| given the |init_data|.
- // The CDM may also extract a |default_url|.
+ // Generates a |key_request| given the |init_data|.
// Returns kSuccess if the key request was successfully generated,
// in which case the callee should have allocated memory for the output
- // parameters (e.g |session_id|) and passed the ownership to the caller.
- // Returns kErrorUnknown otherwise, in which case the output
- // parameters should not be used by the caller.
+ // parameters (e.g |session_id| in |key_request|) and passed the ownership
+ // to the caller.
+ // Returns kErrorUnknown otherwise, in which case the output parameters should
+ // not be used by the caller.
//
// TODO(xhwang): It's not safe to pass the ownership of the dynamically
// allocated memory over library boundaries. Fix it after related PPAPI change
// and sample CDM are landed.
virtual Status GenerateKeyRequest(const uint8_t* init_data,
int init_data_size,
- char** session_id,
- int* session_id_size,
- uint8_t** key_request,
- int* key_request_size,
- char** default_url,
- int* default_url_size) = 0;
+ KeyMessage* key_request) = 0;
// Adds the |key| to the CDM to be associated with |key_id|.
// Returns kSuccess if the key was successfully added.
@@ -137,14 +143,12 @@ class ContentDecryptionModule {
// TODO(xhwang): It's not safe to pass the ownership of the dynamically
// allocated memory over library boundaries. Fix it after related PPAPI change
// and sample CDM are landed.
- virtual Status Decrypt(const char* session_id,
- int session_id_size,
- const InputBuffer& encrypted_buffer,
+ virtual Status Decrypt(const InputBuffer& encrypted_buffer,
OutputBuffer* decrypted_buffer) = 0;
- virtual ~ContentDecryptionModule() {};
+ virtual ~ContentDecryptionModule() {}
};
} // namespace cdm
-#endif // WEBKIT_MEDIA_CRYPTO_CONTENT_DECRYPTION_MODULE_H_
+#endif // WEBKIT_MEDIA_CRYPTO_PPAPI_CONTENT_DECRYPTION_MODULE_H_
« no previous file with comments | « webkit/media/crypto/ppapi/clear_key_cdm.cc ('k') | webkit/media/webkit_media.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698