[M120 Migration][MM][CAPI] Fix the logic for media using capi player.
[platform/framework/web/chromium-efl.git] / media / mojo / services / android_mojo_media_client.cc
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.
4
5 #include "media/mojo/services/android_mojo_media_client.h"
6
7 #include <utility>
8
9 #include <memory>
10
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"
21
22 using media::android_mojo_util::CreateProvisionFetcher;
23 using media::android_mojo_util::CreateMediaDrmStorage;
24
25 namespace media {
26
27 AndroidMojoMediaClient::AndroidMojoMediaClient() {}
28
29 AndroidMojoMediaClient::~AndroidMojoMediaClient() {}
30
31 // MojoMediaClient overrides.
32
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);
37 }
38
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";
44     return nullptr;
45   }
46
47   return std::make_unique<AndroidCdmFactory>(
48       base::BindRepeating(&CreateProvisionFetcher, frame_interfaces),
49       base::BindRepeating(&CreateMediaDrmStorage, frame_interfaces));
50 }
51
52 }  // namespace media