| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MEDIA_BASE_ANDROID_MEDIA_DRM_BRIDGE_H_ | 5 #ifndef MEDIA_BASE_ANDROID_MEDIA_DRM_BRIDGE_H_ |
| 6 #define MEDIA_BASE_ANDROID_MEDIA_DRM_BRIDGE_H_ | 6 #define MEDIA_BASE_ANDROID_MEDIA_DRM_BRIDGE_H_ |
| 7 | 7 |
| 8 #include <jni.h> | 8 #include <jni.h> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 static bool IsKeySystemSupportedWithType( | 52 static bool IsKeySystemSupportedWithType( |
| 53 const std::string& key_system, | 53 const std::string& key_system, |
| 54 const std::string& container_mime_type); | 54 const std::string& container_mime_type); |
| 55 | 55 |
| 56 static bool IsSecureDecoderRequired(SecurityLevel security_level); | 56 static bool IsSecureDecoderRequired(SecurityLevel security_level); |
| 57 | 57 |
| 58 static bool RegisterMediaDrmBridge(JNIEnv* env); | 58 static bool RegisterMediaDrmBridge(JNIEnv* env); |
| 59 | 59 |
| 60 // Returns a MediaDrmBridge instance if |key_system| is supported, or a NULL | 60 // Returns a MediaDrmBridge instance if |key_system| is supported, or a NULL |
| 61 // pointer otherwise. | 61 // pointer otherwise. |
| 62 static scoped_ptr<MediaDrmBridge> Create(int cdm_id, | 62 static scoped_ptr<MediaDrmBridge> Create( |
| 63 const std::string& key_system, | 63 const std::string& key_system, |
| 64 const GURL& security_origin, | 64 const SessionCreatedCB& session_created_cb, |
| 65 MediaPlayerManager* manager); | 65 const SessionMessageCB& session_message_cb, |
| 66 const SessionReadyCB& session_ready_cb, |
| 67 const SessionClosedCB& session_closed_cb, |
| 68 const SessionErrorCB& session_error_cb); |
| 69 |
| 70 // Returns a MediaDrmBridge instance if |key_system| is supported, or a NULL |
| 71 // otherwise. No session callbacks are provided. This is used when we need to |
| 72 // use MediaDrmBridge without creating any sessions. |
| 73 static scoped_ptr<MediaDrmBridge> CreateSessionless( |
| 74 const std::string& key_system); |
| 66 | 75 |
| 67 // Returns true if |security_level| is successfully set, or false otherwise. | 76 // Returns true if |security_level| is successfully set, or false otherwise. |
| 68 // Call this function right after Create() and before any other calls. | 77 // Call this function right after Create() and before any other calls. |
| 69 // Note: | 78 // Note: |
| 70 // - If this function is not called, the default security level of the device | 79 // - If this function is not called, the default security level of the device |
| 71 // will be used. | 80 // will be used. |
| 72 // - It's recommended to call this function only once on a MediaDrmBridge | 81 // - It's recommended to call this function only once on a MediaDrmBridge |
| 73 // object. Calling this function multiples times may cause errors. | 82 // object. Calling this function multiples times may cause errors. |
| 74 bool SetSecurityLevel(SecurityLevel security_level); | 83 bool SetSecurityLevel(SecurityLevel security_level); |
| 75 | 84 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 // Reset the device credentials. | 122 // Reset the device credentials. |
| 114 void ResetDeviceCredentials(const ResetCredentialsCB& callback); | 123 void ResetDeviceCredentials(const ResetCredentialsCB& callback); |
| 115 | 124 |
| 116 // Called by the java object when credential reset is completed. | 125 // Called by the java object when credential reset is completed. |
| 117 void OnResetDeviceCredentialsCompleted(JNIEnv* env, jobject, bool success); | 126 void OnResetDeviceCredentialsCompleted(JNIEnv* env, jobject, bool success); |
| 118 | 127 |
| 119 // Helper function to determine whether a protected surface is needed for the | 128 // Helper function to determine whether a protected surface is needed for the |
| 120 // video playback. | 129 // video playback. |
| 121 bool IsProtectedSurfaceRequired(); | 130 bool IsProtectedSurfaceRequired(); |
| 122 | 131 |
| 123 int cdm_id() const { return cdm_id_; } | |
| 124 | |
| 125 const GURL& security_origin() const { return security_origin_; } | |
| 126 | |
| 127 private: | 132 private: |
| 128 MediaDrmBridge(int cdm_id, | 133 MediaDrmBridge(const std::vector<uint8>& scheme_uuid, |
| 129 const std::vector<uint8>& scheme_uuid, | 134 const SessionCreatedCB& session_created_cb, |
| 130 const GURL& security_origin, | 135 const SessionMessageCB& session_message_cb, |
| 131 MediaPlayerManager* manager); | 136 const SessionReadyCB& session_ready_cb, |
| 137 const SessionClosedCB& session_closed_cb, |
| 138 const SessionErrorCB& session_error_cb); |
| 132 | 139 |
| 133 // Get the security level of the media. | 140 // Get the security level of the media. |
| 134 SecurityLevel GetSecurityLevel(); | 141 SecurityLevel GetSecurityLevel(); |
| 135 | 142 |
| 136 // ID of the CDM object. | |
| 137 int cdm_id_; | |
| 138 | |
| 139 // UUID of the key system. | 143 // UUID of the key system. |
| 140 std::vector<uint8> scheme_uuid_; | 144 std::vector<uint8> scheme_uuid_; |
| 141 | 145 |
| 142 // media stream's security origin. | |
| 143 const GURL security_origin_; | |
| 144 | |
| 145 // Java MediaDrm instance. | 146 // Java MediaDrm instance. |
| 146 base::android::ScopedJavaGlobalRef<jobject> j_media_drm_; | 147 base::android::ScopedJavaGlobalRef<jobject> j_media_drm_; |
| 147 | 148 |
| 148 // Non-owned pointer. | 149 // Callbacks for firing session events. |
| 149 MediaPlayerManager* manager_; | 150 SessionCreatedCB session_created_cb_; |
| 151 SessionMessageCB session_message_cb_; |
| 152 SessionReadyCB session_ready_cb_; |
| 153 SessionClosedCB session_closed_cb_; |
| 154 SessionErrorCB session_error_cb_; |
| 150 | 155 |
| 151 base::Closure media_crypto_ready_cb_; | 156 base::Closure media_crypto_ready_cb_; |
| 152 | 157 |
| 153 ResetCredentialsCB reset_credentials_cb_; | 158 ResetCredentialsCB reset_credentials_cb_; |
| 154 | 159 |
| 155 DISALLOW_COPY_AND_ASSIGN(MediaDrmBridge); | 160 DISALLOW_COPY_AND_ASSIGN(MediaDrmBridge); |
| 156 }; | 161 }; |
| 157 | 162 |
| 158 } // namespace media | 163 } // namespace media |
| 159 | 164 |
| 160 #endif // MEDIA_BASE_ANDROID_MEDIA_DRM_BRIDGE_H_ | 165 #endif // MEDIA_BASE_ANDROID_MEDIA_DRM_BRIDGE_H_ |
| OLD | NEW |