diff options
author | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-16 16:55:29 +0000 |
---|---|---|
committer | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-16 16:55:29 +0000 |
commit | 4f91fc49aff3fb7b72a94b1293836ed3a8a0361c (patch) | |
tree | c7e26f54b2a6956aa4ea778747ad718d8d7b5d34 /media/base/android/media_drm_bridge.h | |
parent | 8ba705136f136c2091d767f3ba04159b42891b1b (diff) | |
download | chromium_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.h | 45 |
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_; |