Index: media/cdm/cdm_adapter.cc |
diff --git a/media/cdm/cdm_adapter.cc b/media/cdm/cdm_adapter.cc |
index 91e598c113e2294884cc2f5afc3ddc4477484a1f..fe7a2683e2eb71c5448643e2b8c095ad9ac85531 100644 |
--- a/media/cdm/cdm_adapter.cc |
+++ b/media/cdm/cdm_adapter.cc |
@@ -26,6 +26,7 @@ |
#include "media/base/video_frame.h" |
#include "media/base/video_types.h" |
#include "media/cdm/cdm_allocator.h" |
+#include "media/cdm/cdm_file_io.h" |
#include "media/cdm/cdm_helpers.h" |
#include "media/cdm/cdm_wrapper.h" |
#include "ui/gfx/geometry/rect.h" |
@@ -333,6 +334,7 @@ void CdmAdapter::Create( |
const base::FilePath& cdm_path, |
const CdmConfig& cdm_config, |
scoped_ptr<CdmAllocator> allocator, |
+ const CdmFileIOProviderCB& file_io_provider_cb, |
const SessionMessageCB& session_message_cb, |
const SessionClosedCB& session_closed_cb, |
const LegacySessionErrorCB& legacy_session_error_cb, |
@@ -347,9 +349,9 @@ void CdmAdapter::Create( |
DCHECK(!session_expiration_update_cb.is_null()); |
scoped_refptr<CdmAdapter> cdm = new CdmAdapter( |
- key_system, cdm_config, std::move(allocator), session_message_cb, |
- session_closed_cb, legacy_session_error_cb, session_keys_change_cb, |
- session_expiration_update_cb); |
+ key_system, cdm_config, std::move(allocator), file_io_provider_cb, |
+ session_message_cb, session_closed_cb, legacy_session_error_cb, |
+ session_keys_change_cb, session_expiration_update_cb); |
// |cdm| ownership passed to the promise. |
scoped_ptr<CdmInitializedPromise> cdm_created_promise( |
@@ -362,6 +364,7 @@ CdmAdapter::CdmAdapter( |
const std::string& key_system, |
const CdmConfig& cdm_config, |
scoped_ptr<CdmAllocator> allocator, |
+ const CdmFileIOProviderCB& file_io_provider_cb, |
const SessionMessageCB& session_message_cb, |
const SessionClosedCB& session_closed_cb, |
const LegacySessionErrorCB& legacy_session_error_cb, |
@@ -377,6 +380,7 @@ CdmAdapter::CdmAdapter( |
audio_samples_per_second_(0), |
audio_channel_layout_(CHANNEL_LAYOUT_NONE), |
allocator_(std::move(allocator)), |
+ file_io_provider_cb_(file_io_provider_cb), |
task_runner_(base::ThreadTaskRunnerHandle::Get()), |
weak_factory_(this) { |
DCHECK(!key_system_.empty()); |
@@ -891,13 +895,13 @@ void CdmAdapter::OnDeferredInitializationDone(cdm::StreamType stream_type, |
NOTREACHED() << "Unexpected cdm::StreamType " << stream_type; |
} |
-// The CDM owns the returned object and must call FileIO::Close() to release it. |
cdm::FileIO* CdmAdapter::CreateFileIO(cdm::FileIOClient* client) { |
DCHECK(task_runner_->BelongsToCurrentThread()); |
- // TODO(jrummell): This should use the mojo FileIO client. |
- NOTIMPLEMENTED(); |
- return nullptr; |
+ // The CDM owns the returned object and must call FileIO::Close() |
+ // to release it. |
xhwang
2016/04/18 21:09:22
nit: Move this comment to right above the "return"
jrummell
2016/04/19 23:59:28
Done.
|
+ std::unique_ptr<CdmFileIO> file_io = file_io_provider_cb_.Run(client); |
+ return file_io.release(); |
} |
bool CdmAdapter::AudioFramesDataToAudioFrames( |