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 |