OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/android_mojo_media_client.h" | 5 #include "media/mojo/services/android_mojo_media_client.h" |
6 | 6 |
7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
8 #include "media/base/android/android_cdm_factory.h" | 8 #include "media/base/android/android_cdm_factory.h" |
9 #include "media/filters/android/media_codec_audio_decoder.h" | 9 #include "media/filters/android/media_codec_audio_decoder.h" |
10 #include "media/mojo/interfaces/provision_fetcher.mojom.h" | 10 #include "media/mojo/interfaces/provision_fetcher.mojom.h" |
11 #include "media/mojo/services/mojo_provision_fetcher.h" | 11 #include "media/mojo/services/mojo_provision_fetcher.h" |
12 #include "services/shell/public/cpp/connect.h" | 12 #include "services/shell/public/cpp/connect.h" |
13 | 13 |
14 namespace media { | 14 namespace media { |
15 | 15 |
16 namespace { | 16 namespace { |
17 | 17 |
18 std::unique_ptr<ProvisionFetcher> CreateProvisionFetcher( | 18 std::unique_ptr<ProvisionFetcher> CreateProvisionFetcher( |
19 shell::mojom::InterfaceProvider* interface_provider) { | 19 shell::mojom::InterfaceProvider* interface_provider) { |
20 interfaces::ProvisionFetcherPtr provision_fetcher_ptr; | 20 interfaces::ProvisionFetcherPtr provision_fetcher_ptr; |
21 shell::GetInterface(interface_provider, &provision_fetcher_ptr); | 21 shell::GetInterface(interface_provider, &provision_fetcher_ptr); |
22 return base::WrapUnique( | 22 return base::WrapUnique( |
23 new MojoProvisionFetcher(std::move(provision_fetcher_ptr))); | 23 new MojoProvisionFetcher(std::move(provision_fetcher_ptr))); |
24 } | 24 } |
25 | 25 |
26 } // namespace | 26 } // namespace |
27 | 27 |
28 AndroidMojoMediaClient::AndroidMojoMediaClient() {} | 28 AndroidMojoMediaClient::AndroidMojoMediaClient() {} |
29 | 29 |
| 30 AndroidMojoMediaClient::AndroidMojoMediaClient( |
| 31 MediaPermission* media_permission) |
| 32 : media_permission_(media_permission) { |
| 33 DCEHCK(media_permission_); |
| 34 } |
| 35 |
30 AndroidMojoMediaClient::~AndroidMojoMediaClient() {} | 36 AndroidMojoMediaClient::~AndroidMojoMediaClient() {} |
31 | 37 |
32 // MojoMediaClient overrides. | 38 // MojoMediaClient overrides. |
33 | 39 |
34 std::unique_ptr<AudioDecoder> AndroidMojoMediaClient::CreateAudioDecoder( | 40 std::unique_ptr<AudioDecoder> AndroidMojoMediaClient::CreateAudioDecoder( |
35 scoped_refptr<base::SingleThreadTaskRunner> task_runner) { | 41 scoped_refptr<base::SingleThreadTaskRunner> task_runner) { |
36 return base::WrapUnique(new MediaCodecAudioDecoder(task_runner)); | 42 return base::WrapUnique(new MediaCodecAudioDecoder(task_runner)); |
37 } | 43 } |
38 | 44 |
39 std::unique_ptr<CdmFactory> AndroidMojoMediaClient::CreateCdmFactory( | 45 std::unique_ptr<CdmFactory> AndroidMojoMediaClient::CreateCdmFactory( |
40 shell::mojom::InterfaceProvider* interface_provider) { | 46 shell::mojom::InterfaceProvider* interface_provider) { |
41 return base::WrapUnique(new AndroidCdmFactory( | 47 return base::WrapUnique(new AndroidCdmFactory( |
| 48 media_permission_, |
42 base::Bind(&CreateProvisionFetcher, interface_provider))); | 49 base::Bind(&CreateProvisionFetcher, interface_provider))); |
43 } | 50 } |
44 | 51 |
45 } // namespace media | 52 } // namespace media |
OLD | NEW |