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

Unified Diff: media/base/android/media_drm_bridge.h

Issue 962793005: Adds MediaClientAndroid to support embedder/MediaDrmBridge interaction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: native API example Created 5 years, 9 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
Index: media/base/android/media_drm_bridge.h
diff --git a/media/base/android/media_drm_bridge.h b/media/base/android/media_drm_bridge.h
index 06716dfa6cf6e02de6fdd787e00ce3c6f08ed215..a6b42c342d5c0cfc6ae60130b1d5440aff494259 100644
--- a/media/base/android/media_drm_bridge.h
+++ b/media/base/android/media_drm_bridge.h
@@ -27,6 +27,21 @@ class MediaPlayerManager;
// This class provides DRM services for android EME implementation.
class MEDIA_EXPORT MediaDrmBridge : public BrowserCdm {
public:
+ class Delegate {
xhwang 2015/03/23 04:59:47 Add comment please.
gunsch 2015/04/09 01:36:39 Done.
+ public:
+ void OnCreateSession(
xhwang 2015/03/23 04:59:47 How about SanitizeInitData()? (Search for "sanitiz
xhwang 2015/03/23 04:59:47 virtual?
gunsch 2015/04/09 01:36:39 1) I feel like isn't, strictly speaking, "sanitiza
gunsch 2015/04/09 01:36:39 Done.
+ const std::string& init_data_type,
+ const uint8* init_data,
+ int init_data_length,
+ std::vector<uint8>& init_data_out,
+ std::vector<std::string>& additional_data_out) {}
+
+ private:
+ virtual ~Delegate() {}
+
+ DISALLOW_COPY_AND_ASSIGN(Delegate);
+ };
+
// TODO(ddorwin): These are specific to Widevine. http://crbug.com/459400
enum SecurityLevel {
SECURITY_LEVEL_NONE = 0,
@@ -56,6 +71,11 @@ class MEDIA_EXPORT MediaDrmBridge : public BrowserCdm {
const std::string& key_system,
const std::string& container_mime_type);
+ // Registers a delegate to handle requests with a given UUID.
+ static void RegisterDelegate(
+ const std::string& key_system,
+ Delegate* delegate);
+
static bool RegisterMediaDrmBridge(JNIEnv* env);
// Returns a MediaDrmBridge instance if |key_system| is supported, or a NULL
@@ -185,7 +205,8 @@ class MEDIA_EXPORT MediaDrmBridge : public BrowserCdm {
const SessionMessageCB& session_message_cb,
const SessionClosedCB& session_closed_cb,
const SessionErrorCB& session_error_cb,
- const SessionKeysChangeCB& session_keys_change_cb);
+ const SessionKeysChangeCB& session_keys_change_cb,
+ Delegate* delegate);
static bool IsSecureDecoderRequired(SecurityLevel security_level);
@@ -198,6 +219,8 @@ class MEDIA_EXPORT MediaDrmBridge : public BrowserCdm {
// Java MediaDrm instance.
base::android::ScopedJavaGlobalRef<jobject> j_media_drm_;
+ Delegate* const delegate_;
+
// Callbacks for firing session events.
SessionMessageCB session_message_cb_;
SessionClosedCB session_closed_cb_;

Powered by Google App Engine
This is Rietveld 408576698