| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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_CDM_PPAPI_CDM_ADAPTER_H_ | 5 #ifndef MEDIA_CDM_PPAPI_CDM_ADAPTER_H_ |
| 6 #define MEDIA_CDM_PPAPI_CDM_ADAPTER_H_ | 6 #define MEDIA_CDM_PPAPI_CDM_ADAPTER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 #include "ppapi/cpp/private/content_decryptor_private.h" | 21 #include "ppapi/cpp/private/content_decryptor_private.h" |
| 22 #include "ppapi/cpp/var.h" | 22 #include "ppapi/cpp/var.h" |
| 23 #include "ppapi/cpp/var_array_buffer.h" | 23 #include "ppapi/cpp/var_array_buffer.h" |
| 24 #include "ppapi/utility/completion_callback_factory.h" | 24 #include "ppapi/utility/completion_callback_factory.h" |
| 25 | 25 |
| 26 #if defined(OS_CHROMEOS) | 26 #if defined(OS_CHROMEOS) |
| 27 #include "ppapi/cpp/private/output_protection_private.h" | 27 #include "ppapi/cpp/private/output_protection_private.h" |
| 28 #include "ppapi/cpp/private/platform_verification.h" | 28 #include "ppapi/cpp/private/platform_verification.h" |
| 29 #endif | 29 #endif |
| 30 | 30 |
| 31 #if defined(GetCurrentTime) | |
| 32 // winbase.h defines this which messes up calls to Host_5::GetCurrentTime. | |
| 33 #undef GetCurrentTime | |
| 34 #endif | |
| 35 | |
| 36 namespace media { | 31 namespace media { |
| 37 | 32 |
| 38 // GetCdmHostFunc implementation. | 33 // GetCdmHostFunc implementation. |
| 39 void* GetCdmHost(int host_interface_version, void* user_data); | 34 void* GetCdmHost(int host_interface_version, void* user_data); |
| 40 | 35 |
| 41 // An adapter class for abstracting away PPAPI interaction and threading for a | 36 // An adapter class for abstracting away PPAPI interaction and threading for a |
| 42 // Content Decryption Module (CDM). | 37 // Content Decryption Module (CDM). |
| 43 class CdmAdapter : public pp::Instance, | 38 class CdmAdapter : public pp::Instance, |
| 44 public pp::ContentDecryptor_Private, | 39 public pp::ContentDecryptor_Private, |
| 45 public cdm::Host_4, | 40 public cdm::Host_4, |
| 46 public cdm::Host_5, | |
| 47 public cdm::Host_6 { | 41 public cdm::Host_6 { |
| 48 public: | 42 public: |
| 49 CdmAdapter(PP_Instance instance, pp::Module* module); | 43 CdmAdapter(PP_Instance instance, pp::Module* module); |
| 50 virtual ~CdmAdapter(); | 44 virtual ~CdmAdapter(); |
| 51 | 45 |
| 52 // pp::Instance implementation. | 46 // pp::Instance implementation. |
| 53 virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]) { | 47 virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]) { |
| 54 return true; | 48 return true; |
| 55 } | 49 } |
| 56 | 50 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 87 pp::Buffer_Dev extra_data_buffer) OVERRIDE; | 81 pp::Buffer_Dev extra_data_buffer) OVERRIDE; |
| 88 virtual void DeinitializeDecoder(PP_DecryptorStreamType decoder_type, | 82 virtual void DeinitializeDecoder(PP_DecryptorStreamType decoder_type, |
| 89 uint32_t request_id) OVERRIDE; | 83 uint32_t request_id) OVERRIDE; |
| 90 virtual void ResetDecoder(PP_DecryptorStreamType decoder_type, | 84 virtual void ResetDecoder(PP_DecryptorStreamType decoder_type, |
| 91 uint32_t request_id) OVERRIDE; | 85 uint32_t request_id) OVERRIDE; |
| 92 virtual void DecryptAndDecode( | 86 virtual void DecryptAndDecode( |
| 93 PP_DecryptorStreamType decoder_type, | 87 PP_DecryptorStreamType decoder_type, |
| 94 pp::Buffer_Dev encrypted_buffer, | 88 pp::Buffer_Dev encrypted_buffer, |
| 95 const PP_EncryptedBlockInfo& encrypted_block_info) OVERRIDE; | 89 const PP_EncryptedBlockInfo& encrypted_block_info) OVERRIDE; |
| 96 | 90 |
| 97 // cdm::Host_4, cdm::Host_5 and cdm::Host_6 implementation. | 91 // cdm::Host_4 and cdm::Host_6 implementation. |
| 98 virtual cdm::Buffer* Allocate(uint32_t capacity) OVERRIDE; | 92 virtual cdm::Buffer* Allocate(uint32_t capacity) OVERRIDE; |
| 99 virtual void SetTimer(int64_t delay_ms, void* context) OVERRIDE; | 93 virtual void SetTimer(int64_t delay_ms, void* context) OVERRIDE; |
| 100 | 94 |
| 101 // cdm::Host_4 implementation. | 95 // cdm::Host_4 implementation. |
| 102 virtual double GetCurrentWallTimeInSeconds() OVERRIDE; | 96 virtual double GetCurrentWallTimeInSeconds() OVERRIDE; |
| 103 virtual void OnSessionCreated(uint32_t session_id, | 97 virtual void OnSessionCreated(uint32_t session_id, |
| 104 const char* web_session_id, | 98 const char* web_session_id, |
| 105 uint32_t web_session_id_length) OVERRIDE; | 99 uint32_t web_session_id_length) OVERRIDE; |
| 106 virtual void OnSessionMessage(uint32_t session_id, | 100 virtual void OnSessionMessage(uint32_t session_id, |
| 107 const char* message, | 101 const char* message, |
| 108 uint32_t message_length, | 102 uint32_t message_length, |
| 109 const char* destination_url, | 103 const char* destination_url, |
| 110 uint32_t destination_url_length) OVERRIDE; | 104 uint32_t destination_url_length) OVERRIDE; |
| 111 virtual void OnSessionReady(uint32_t session_id) OVERRIDE; | 105 virtual void OnSessionReady(uint32_t session_id) OVERRIDE; |
| 112 virtual void OnSessionClosed(uint32_t session_id) OVERRIDE; | 106 virtual void OnSessionClosed(uint32_t session_id) OVERRIDE; |
| 113 virtual void OnSessionError(uint32_t session_id, | 107 virtual void OnSessionError(uint32_t session_id, |
| 114 cdm::MediaKeyError error_code, | 108 cdm::MediaKeyError error_code, |
| 115 uint32_t system_code) OVERRIDE; | 109 uint32_t system_code) OVERRIDE; |
| 116 | 110 |
| 117 // cdm::Host_5 implementation. | 111 // cdm::Host_6 implementation. |
| 118 virtual cdm::Time GetCurrentTime() OVERRIDE; | 112 virtual cdm::Time GetCurrentWallTime() OVERRIDE; |
| 119 virtual void OnResolveNewSessionPromise( | 113 virtual void OnResolveNewSessionPromise( |
| 120 uint32_t promise_id, | 114 uint32_t promise_id, |
| 121 const char* web_session_id, | 115 const char* web_session_id, |
| 122 uint32_t web_session_id_length) OVERRIDE; | 116 uint32_t web_session_id_length) OVERRIDE; |
| 123 virtual void OnResolvePromise(uint32_t promise_id) OVERRIDE; | 117 virtual void OnResolvePromise(uint32_t promise_id) OVERRIDE; |
| 118 virtual void OnResolveKeyIdsPromise(uint32_t promise_id, |
| 119 const cdm::BinaryData* usable_key_ids, |
| 120 uint32_t usable_key_ids_length) OVERRIDE; |
| 124 virtual void OnRejectPromise(uint32_t promise_id, | 121 virtual void OnRejectPromise(uint32_t promise_id, |
| 125 cdm::Error error, | 122 cdm::Error error, |
| 126 uint32_t system_code, | 123 uint32_t system_code, |
| 127 const char* error_message, | 124 const char* error_message, |
| 128 uint32_t error_message_length) OVERRIDE; | 125 uint32_t error_message_length) OVERRIDE; |
| 129 virtual void OnSessionMessage(const char* web_session_id, | 126 virtual void OnSessionMessage(const char* web_session_id, |
| 130 uint32_t web_session_id_length, | 127 uint32_t web_session_id_length, |
| 131 const char* message, | 128 const char* message, |
| 132 uint32_t message_length, | 129 uint32_t message_length, |
| 133 const char* destination_url, | 130 const char* destination_url, |
| 134 uint32_t destination_url_length) OVERRIDE; | 131 uint32_t destination_url_length) OVERRIDE; |
| 135 virtual void OnSessionKeysChange(const char* web_session_id, | 132 virtual void OnSessionUsableKeysChange( |
| 136 uint32_t web_session_id_length, | 133 const char* web_session_id, |
| 137 bool has_additional_usable_key) OVERRIDE; | 134 uint32_t web_session_id_length, |
| 135 bool has_additional_usable_key) OVERRIDE; |
| 138 virtual void OnExpirationChange(const char* web_session_id, | 136 virtual void OnExpirationChange(const char* web_session_id, |
| 139 uint32_t web_session_id_length, | 137 uint32_t web_session_id_length, |
| 140 cdm::Time new_expiry_time) OVERRIDE; | 138 cdm::Time new_expiry_time) OVERRIDE; |
| 141 virtual void OnSessionReady(const char* web_session_id, | |
| 142 uint32_t web_session_id_length) OVERRIDE; | |
| 143 virtual void OnSessionClosed(const char* web_session_id, | 139 virtual void OnSessionClosed(const char* web_session_id, |
| 144 uint32_t web_session_id_length) OVERRIDE; | 140 uint32_t web_session_id_length) OVERRIDE; |
| 145 virtual void OnSessionError(const char* web_session_id, | 141 virtual void OnSessionError(const char* web_session_id, |
| 146 uint32_t web_session_id_length, | 142 uint32_t web_session_id_length, |
| 147 cdm::Error error, | 143 cdm::Error error, |
| 148 uint32_t system_code, | 144 uint32_t system_code, |
| 149 const char* error_message, | 145 const char* error_message, |
| 150 uint32_t error_message_length) OVERRIDE; | 146 uint32_t error_message_length) OVERRIDE; |
| 151 | 147 |
| 152 // cdm::Host_6 implementation. | 148 // cdm::Host_4 and cdm::Host_6 implementation. |
| 153 virtual cdm::Time GetCurrentWallTime() OVERRIDE; | |
| 154 virtual void OnResolveKeyIdsPromise(uint32_t promise_id, | |
| 155 const cdm::BinaryData* usable_key_ids, | |
| 156 uint32_t usable_key_ids_length) OVERRIDE; | |
| 157 virtual void OnSessionUsableKeysChange( | |
| 158 const char* web_session_id, | |
| 159 uint32_t web_session_id_length, | |
| 160 bool has_additional_usable_key) OVERRIDE; | |
| 161 | |
| 162 // cdm::Host_4, cdm::Host_5 and cdm::Host_6 implementation. | |
| 163 virtual void SendPlatformChallenge(const char* service_id, | 149 virtual void SendPlatformChallenge(const char* service_id, |
| 164 uint32_t service_id_length, | 150 uint32_t service_id_length, |
| 165 const char* challenge, | 151 const char* challenge, |
| 166 uint32_t challenge_length) OVERRIDE; | 152 uint32_t challenge_length) OVERRIDE; |
| 167 virtual void EnableOutputProtection( | 153 virtual void EnableOutputProtection( |
| 168 uint32_t desired_protection_mask) OVERRIDE; | 154 uint32_t desired_protection_mask) OVERRIDE; |
| 169 virtual void QueryOutputProtectionStatus() OVERRIDE; | 155 virtual void QueryOutputProtectionStatus() OVERRIDE; |
| 170 virtual void OnDeferredInitializationDone( | 156 virtual void OnDeferredInitializationDone( |
| 171 cdm::StreamType stream_type, | 157 cdm::StreamType stream_type, |
| 172 cdm::Status decoder_status) OVERRIDE; | 158 cdm::Status decoder_status) OVERRIDE; |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 uint32_t deferred_audio_decoder_config_id_; | 297 uint32_t deferred_audio_decoder_config_id_; |
| 312 bool deferred_initialize_video_decoder_; | 298 bool deferred_initialize_video_decoder_; |
| 313 uint32_t deferred_video_decoder_config_id_; | 299 uint32_t deferred_video_decoder_config_id_; |
| 314 | 300 |
| 315 DISALLOW_COPY_AND_ASSIGN(CdmAdapter); | 301 DISALLOW_COPY_AND_ASSIGN(CdmAdapter); |
| 316 }; | 302 }; |
| 317 | 303 |
| 318 } // namespace media | 304 } // namespace media |
| 319 | 305 |
| 320 #endif // MEDIA_CDM_PPAPI_CDM_ADAPTER_H_ | 306 #endif // MEDIA_CDM_PPAPI_CDM_ADAPTER_H_ |
| OLD | NEW |