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/mojo/services/mojo_cdm.h" | 5 #include "media/mojo/services/mojo_cdm.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "media/base/cdm_context.h" | 9 #include "media/base/cdm_context.h" |
10 #include "media/base/cdm_key_information.h" | 10 #include "media/base/cdm_key_information.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 const std::string& key_system, | 28 const std::string& key_system, |
29 const GURL& security_origin, | 29 const GURL& security_origin, |
30 const media::CdmConfig& cdm_config, | 30 const media::CdmConfig& cdm_config, |
31 interfaces::ContentDecryptionModulePtr remote_cdm, | 31 interfaces::ContentDecryptionModulePtr remote_cdm, |
32 const media::SessionMessageCB& session_message_cb, | 32 const media::SessionMessageCB& session_message_cb, |
33 const media::SessionClosedCB& session_closed_cb, | 33 const media::SessionClosedCB& session_closed_cb, |
34 const media::LegacySessionErrorCB& legacy_session_error_cb, | 34 const media::LegacySessionErrorCB& legacy_session_error_cb, |
35 const media::SessionKeysChangeCB& session_keys_change_cb, | 35 const media::SessionKeysChangeCB& session_keys_change_cb, |
36 const media::SessionExpirationUpdateCB& session_expiration_update_cb, | 36 const media::SessionExpirationUpdateCB& session_expiration_update_cb, |
37 const media::CdmCreatedCB& cdm_created_cb) { | 37 const media::CdmCreatedCB& cdm_created_cb) { |
38 scoped_ptr<MojoCdm> mojo_cdm( | 38 scoped_refptr<MojoCdm> mojo_cdm( |
39 new MojoCdm(remote_cdm.Pass(), session_message_cb, session_closed_cb, | 39 new MojoCdm(remote_cdm.Pass(), session_message_cb, session_closed_cb, |
40 legacy_session_error_cb, session_keys_change_cb, | 40 legacy_session_error_cb, session_keys_change_cb, |
41 session_expiration_update_cb)); | 41 session_expiration_update_cb)); |
42 | 42 |
43 // |mojo_cdm|'s ownership will be passed to the promise. Get a raw pointer | 43 // |mojo_cdm| ownership is passed to the promise. |
44 // here in order to call Initialize(). | |
45 MojoCdm* mojo_cdm_ptr = mojo_cdm.get(); | |
46 scoped_ptr<CdmInitializedPromise> promise( | 44 scoped_ptr<CdmInitializedPromise> promise( |
47 new CdmInitializedPromise(cdm_created_cb, mojo_cdm.Pass())); | 45 new CdmInitializedPromise(cdm_created_cb, mojo_cdm)); |
48 mojo_cdm_ptr->InitializeCdm(key_system, security_origin, cdm_config, | 46 |
49 promise.Pass()); | 47 mojo_cdm->InitializeCdm(key_system, security_origin, cdm_config, |
| 48 promise.Pass()); |
50 } | 49 } |
51 | 50 |
52 MojoCdm::MojoCdm(interfaces::ContentDecryptionModulePtr remote_cdm, | 51 MojoCdm::MojoCdm(interfaces::ContentDecryptionModulePtr remote_cdm, |
53 const SessionMessageCB& session_message_cb, | 52 const SessionMessageCB& session_message_cb, |
54 const SessionClosedCB& session_closed_cb, | 53 const SessionClosedCB& session_closed_cb, |
55 const LegacySessionErrorCB& legacy_session_error_cb, | 54 const LegacySessionErrorCB& legacy_session_error_cb, |
56 const SessionKeysChangeCB& session_keys_change_cb, | 55 const SessionKeysChangeCB& session_keys_change_cb, |
57 const SessionExpirationUpdateCB& session_expiration_update_cb) | 56 const SessionExpirationUpdateCB& session_expiration_update_cb) |
58 : remote_cdm_(remote_cdm.Pass()), | 57 : remote_cdm_(remote_cdm.Pass()), |
59 binding_(this), | 58 binding_(this), |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 RejectPromise(promise.Pass(), result.Pass()); | 230 RejectPromise(promise.Pass(), result.Pass()); |
232 return; | 231 return; |
233 } | 232 } |
234 | 233 |
235 DCHECK_NE(CdmContext::kInvalidCdmId, cdm_id); | 234 DCHECK_NE(CdmContext::kInvalidCdmId, cdm_id); |
236 cdm_id_ = cdm_id; | 235 cdm_id_ = cdm_id; |
237 promise->resolve(); | 236 promise->resolve(); |
238 } | 237 } |
239 | 238 |
240 } // namespace media | 239 } // namespace media |
OLD | NEW |