OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "media/blink/encrypted_media_player_support.h" | 5 #include "media/blink/encrypted_media_player_support.h" |
6 | 6 |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 | 147 |
148 WebMediaPlayer::MediaKeyException | 148 WebMediaPlayer::MediaKeyException |
149 EncryptedMediaPlayerSupport::GenerateKeyRequestInternal( | 149 EncryptedMediaPlayerSupport::GenerateKeyRequestInternal( |
150 blink::WebLocalFrame* frame, | 150 blink::WebLocalFrame* frame, |
151 const std::string& key_system, | 151 const std::string& key_system, |
152 const unsigned char* init_data, | 152 const unsigned char* init_data, |
153 unsigned init_data_length) { | 153 unsigned init_data_length) { |
154 if (!PrefixedIsSupportedConcreteKeySystem(key_system)) | 154 if (!PrefixedIsSupportedConcreteKeySystem(key_system)) |
155 return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported; | 155 return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported; |
156 | 156 |
| 157 // |use_hw_secure_codecs| is only supported on Android, and Android (WMPA) |
| 158 // does not use EncryptedMediaPlayerSupport. |
| 159 bool use_hw_secure_codecs = false; |
| 160 |
157 if (!proxy_decryptor_) { | 161 if (!proxy_decryptor_) { |
158 DCHECK(current_key_system_.empty()); | 162 DCHECK(current_key_system_.empty()); |
159 DCHECK(!cdm_context_ready_cb_.is_null()); | 163 DCHECK(!cdm_context_ready_cb_.is_null()); |
160 proxy_decryptor_.reset(new ProxyDecryptor( | 164 proxy_decryptor_.reset(new ProxyDecryptor( |
161 media_permission_, | 165 media_permission_, use_hw_secure_codecs, |
162 BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyAdded), | 166 BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyAdded), |
163 BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyError), | 167 BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyError), |
164 BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyMessage))); | 168 BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyMessage))); |
165 | 169 |
166 GURL security_origin(frame->document().securityOrigin().toString()); | 170 GURL security_origin(frame->document().securityOrigin().toString()); |
167 proxy_decryptor_->CreateCdm(cdm_factory_, key_system, security_origin, | 171 proxy_decryptor_->CreateCdm(cdm_factory_, key_system, security_origin, |
168 cdm_context_ready_cb_); | 172 cdm_context_ready_cb_); |
169 current_key_system_ = key_system; | 173 current_key_system_ = key_system; |
170 } | 174 } |
171 | 175 |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 | 319 |
316 client_->keyMessage( | 320 client_->keyMessage( |
317 WebString::fromUTF8(GetPrefixedKeySystemName(current_key_system_)), | 321 WebString::fromUTF8(GetPrefixedKeySystemName(current_key_system_)), |
318 WebString::fromUTF8(session_id), | 322 WebString::fromUTF8(session_id), |
319 message.empty() ? NULL : &message[0], | 323 message.empty() ? NULL : &message[0], |
320 base::saturated_cast<unsigned int>(message.size()), | 324 base::saturated_cast<unsigned int>(message.size()), |
321 destination_url); | 325 destination_url); |
322 } | 326 } |
323 | 327 |
324 } // namespace media | 328 } // namespace media |
OLD | NEW |