summaryrefslogtreecommitdiffstats
path: root/media/base/android/media_drm_bridge.h
diff options
context:
space:
mode:
authorxhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-16 16:55:29 +0000
committerxhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-16 16:55:29 +0000
commit4f91fc49aff3fb7b72a94b1293836ed3a8a0361c (patch)
treec7e26f54b2a6956aa4ea778747ad718d8d7b5d34 /media/base/android/media_drm_bridge.h
parent8ba705136f136c2091d767f3ba04159b42891b1b (diff)
downloadchromium_src-4f91fc49aff3fb7b72a94b1293836ed3a8a0361c.zip
chromium_src-4f91fc49aff3fb7b72a94b1293836ed3a8a0361c.tar.gz
chromium_src-4f91fc49aff3fb7b72a94b1293836ed3a8a0361c.tar.bz2
BrowserMediaPlayerManager manages MediaKeys objects.
Changes in this CL: - Add cdm_factory.h to support platform specific CDM creation. - Detach BrowserMediaPlayerManager from MediaDrmBridge. - Store the security origin of CDMs in the manager so that CDMs don't need to know it. - Keep the CDM ID in the manager so that CDMs don't see it. BUG=338910 TEST=Test page plays and tests still pass. Review URL: https://codereview.chromium.org/276973005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271034 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/android/media_drm_bridge.h')
-rw-r--r--media/base/android/media_drm_bridge.h45
1 files changed, 25 insertions, 20 deletions
diff --git a/media/base/android/media_drm_bridge.h b/media/base/android/media_drm_bridge.h
index f34bbc4..60b4dd8 100644
--- a/media/base/android/media_drm_bridge.h
+++ b/media/base/android/media_drm_bridge.h
@@ -59,10 +59,19 @@ class MEDIA_EXPORT MediaDrmBridge : public MediaKeys {
// Returns a MediaDrmBridge instance if |key_system| is supported, or a NULL
// pointer otherwise.
- static scoped_ptr<MediaDrmBridge> Create(int cdm_id,
- const std::string& key_system,
- const GURL& security_origin,
- MediaPlayerManager* manager);
+ static scoped_ptr<MediaDrmBridge> Create(
+ const std::string& key_system,
+ const SessionCreatedCB& session_created_cb,
+ const SessionMessageCB& session_message_cb,
+ const SessionReadyCB& session_ready_cb,
+ const SessionClosedCB& session_closed_cb,
+ const SessionErrorCB& session_error_cb);
+
+ // Returns a MediaDrmBridge instance if |key_system| is supported, or a NULL
+ // otherwise. No session callbacks are provided. This is used when we need to
+ // use MediaDrmBridge without creating any sessions.
+ static scoped_ptr<MediaDrmBridge> CreateSessionless(
+ const std::string& key_system);
// Returns true if |security_level| is successfully set, or false otherwise.
// Call this function right after Create() and before any other calls.
@@ -120,33 +129,29 @@ class MEDIA_EXPORT MediaDrmBridge : public MediaKeys {
// video playback.
bool IsProtectedSurfaceRequired();
- int cdm_id() const { return cdm_id_; }
-
- const GURL& security_origin() const { return security_origin_; }
-
private:
- MediaDrmBridge(int cdm_id,
- const std::vector<uint8>& scheme_uuid,
- const GURL& security_origin,
- MediaPlayerManager* manager);
+ MediaDrmBridge(const std::vector<uint8>& scheme_uuid,
+ const SessionCreatedCB& session_created_cb,
+ const SessionMessageCB& session_message_cb,
+ const SessionReadyCB& session_ready_cb,
+ const SessionClosedCB& session_closed_cb,
+ const SessionErrorCB& session_error_cb);
// Get the security level of the media.
SecurityLevel GetSecurityLevel();
- // ID of the CDM object.
- int cdm_id_;
-
// UUID of the key system.
std::vector<uint8> scheme_uuid_;
- // media stream's security origin.
- const GURL security_origin_;
-
// Java MediaDrm instance.
base::android::ScopedJavaGlobalRef<jobject> j_media_drm_;
- // Non-owned pointer.
- MediaPlayerManager* manager_;
+ // Callbacks for firing session events.
+ SessionCreatedCB session_created_cb_;
+ SessionMessageCB session_message_cb_;
+ SessionReadyCB session_ready_cb_;
+ SessionClosedCB session_closed_cb_;
+ SessionErrorCB session_error_cb_;
base::Closure media_crypto_ready_cb_;