| 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 19 matching lines...) Expand all Loading... |
| 30 const std::string& key_system, | 30 const std::string& key_system, |
| 31 const GURL& security_origin, | 31 const GURL& security_origin, |
| 32 const media::CdmConfig& cdm_config, | 32 const media::CdmConfig& cdm_config, |
| 33 interfaces::ContentDecryptionModulePtr remote_cdm, | 33 interfaces::ContentDecryptionModulePtr remote_cdm, |
| 34 const media::SessionMessageCB& session_message_cb, | 34 const media::SessionMessageCB& session_message_cb, |
| 35 const media::SessionClosedCB& session_closed_cb, | 35 const media::SessionClosedCB& session_closed_cb, |
| 36 const media::LegacySessionErrorCB& legacy_session_error_cb, | 36 const media::LegacySessionErrorCB& legacy_session_error_cb, |
| 37 const media::SessionKeysChangeCB& session_keys_change_cb, | 37 const media::SessionKeysChangeCB& session_keys_change_cb, |
| 38 const media::SessionExpirationUpdateCB& session_expiration_update_cb, | 38 const media::SessionExpirationUpdateCB& session_expiration_update_cb, |
| 39 const media::CdmCreatedCB& cdm_created_cb) { | 39 const media::CdmCreatedCB& cdm_created_cb) { |
| 40 scoped_ptr<MojoCdm> mojo_cdm( | 40 scoped_refptr<MojoCdm> mojo_cdm( |
| 41 new MojoCdm(remote_cdm.Pass(), session_message_cb, session_closed_cb, | 41 new MojoCdm(remote_cdm.Pass(), session_message_cb, session_closed_cb, |
| 42 legacy_session_error_cb, session_keys_change_cb, | 42 legacy_session_error_cb, session_keys_change_cb, |
| 43 session_expiration_update_cb)); | 43 session_expiration_update_cb)); |
| 44 | 44 |
| 45 // |mojo_cdm|'s ownership will be passed to the promise. Get a raw pointer | 45 // |mojo_cdm| ownership is passed to the promise. |
| 46 // here in order to call Initialize(). | |
| 47 MojoCdm* mojo_cdm_ptr = mojo_cdm.get(); | |
| 48 scoped_ptr<CdmInitializedPromise> promise( | 46 scoped_ptr<CdmInitializedPromise> promise( |
| 49 new CdmInitializedPromise(cdm_created_cb, mojo_cdm.Pass())); | 47 new CdmInitializedPromise(cdm_created_cb, mojo_cdm)); |
| 50 mojo_cdm_ptr->InitializeCdm(key_system, security_origin, cdm_config, | 48 |
| 51 promise.Pass()); | 49 mojo_cdm->InitializeCdm(key_system, security_origin, cdm_config, |
| 50 promise.Pass()); |
| 52 } | 51 } |
| 53 | 52 |
| 54 MojoCdm::MojoCdm(interfaces::ContentDecryptionModulePtr remote_cdm, | 53 MojoCdm::MojoCdm(interfaces::ContentDecryptionModulePtr remote_cdm, |
| 55 const SessionMessageCB& session_message_cb, | 54 const SessionMessageCB& session_message_cb, |
| 56 const SessionClosedCB& session_closed_cb, | 55 const SessionClosedCB& session_closed_cb, |
| 57 const LegacySessionErrorCB& legacy_session_error_cb, | 56 const LegacySessionErrorCB& legacy_session_error_cb, |
| 58 const SessionKeysChangeCB& session_keys_change_cb, | 57 const SessionKeysChangeCB& session_keys_change_cb, |
| 59 const SessionExpirationUpdateCB& session_expiration_update_cb) | 58 const SessionExpirationUpdateCB& session_expiration_update_cb) |
| 60 : remote_cdm_(remote_cdm.Pass()), | 59 : remote_cdm_(remote_cdm.Pass()), |
| 61 binding_(this), | 60 binding_(this), |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 } | 220 } |
| 222 | 221 |
| 223 void MojoCdm::OnSessionExpirationUpdate(const mojo::String& session_id, | 222 void MojoCdm::OnSessionExpirationUpdate(const mojo::String& session_id, |
| 224 double new_expiry_time_sec) { | 223 double new_expiry_time_sec) { |
| 225 DVLOG(2) << __FUNCTION__; | 224 DVLOG(2) << __FUNCTION__; |
| 226 session_expiration_update_cb_.Run( | 225 session_expiration_update_cb_.Run( |
| 227 session_id, base::Time::FromDoubleT(new_expiry_time_sec)); | 226 session_id, base::Time::FromDoubleT(new_expiry_time_sec)); |
| 228 } | 227 } |
| 229 | 228 |
| 230 } // namespace media | 229 } // namespace media |
| OLD | NEW |