1 // Copyright 2015 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "media/mojo/services/android_mojo_media_client.h"
11 #include "base/functional/bind.h"
12 #include "base/task/single_thread_task_runner.h"
13 #include "media/base/android/android_cdm_factory.h"
14 #include "media/base/audio_decoder.h"
15 #include "media/base/cdm_factory.h"
16 #include "media/base/media_log.h"
17 #include "media/filters/android/media_codec_audio_decoder.h"
18 #include "media/mojo/mojom/media_drm_storage.mojom.h"
19 #include "media/mojo/mojom/provision_fetcher.mojom.h"
20 #include "media/mojo/services/android_mojo_util.h"
22 using media::android_mojo_util::CreateProvisionFetcher;
23 using media::android_mojo_util::CreateMediaDrmStorage;
27 AndroidMojoMediaClient::AndroidMojoMediaClient() {}
29 AndroidMojoMediaClient::~AndroidMojoMediaClient() {}
31 // MojoMediaClient overrides.
33 std::unique_ptr<AudioDecoder> AndroidMojoMediaClient::CreateAudioDecoder(
34 scoped_refptr<base::SequencedTaskRunner> task_runner,
35 std::unique_ptr<MediaLog> media_log) {
36 return std::make_unique<MediaCodecAudioDecoder>(task_runner);
39 std::unique_ptr<CdmFactory> AndroidMojoMediaClient::CreateCdmFactory(
40 mojom::FrameInterfaceFactory* frame_interfaces) {
41 if (!frame_interfaces) {
42 NOTREACHED() << "Host interfaces should be provided when using CDM with "
43 << "AndroidMojoMediaClient";
47 return std::make_unique<AndroidCdmFactory>(
48 base::BindRepeating(&CreateProvisionFetcher, frame_interfaces),
49 base::BindRepeating(&CreateMediaDrmStorage, frame_interfaces));