OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_decoder_factory.h" | 5 #include "media/mojo/services/mojo_decoder_factory.h" |
6 | 6 |
| 7 #include "base/single_thread_task_runner.h" |
| 8 #include "media/mojo/interfaces/audio_decoder.mojom.h" |
7 #include "media/mojo/services/mojo_audio_decoder.h" | 9 #include "media/mojo/services/mojo_audio_decoder.h" |
8 #include "media/mojo/services/mojo_video_decoder.h" | 10 #include "media/mojo/services/mojo_video_decoder.h" |
| 11 #include "mojo/shell/public/cpp/connect.h" |
9 | 12 |
10 namespace media { | 13 namespace media { |
11 | 14 |
12 MojoDecoderFactory::MojoDecoderFactory( | 15 MojoDecoderFactory::MojoDecoderFactory( |
13 mojo::shell::mojom::InterfaceProvider* interface_provider) | 16 mojo::shell::mojom::InterfaceProvider* interface_provider) |
14 : interface_provider_(interface_provider) { | 17 : interface_provider_(interface_provider) { |
15 DCHECK(interface_provider_); | 18 DCHECK(interface_provider_); |
16 } | 19 } |
17 | 20 |
18 MojoDecoderFactory::~MojoDecoderFactory() {} | 21 MojoDecoderFactory::~MojoDecoderFactory() {} |
19 | 22 |
20 void MojoDecoderFactory::CreateAudioDecoders( | 23 void MojoDecoderFactory::CreateAudioDecoders( |
| 24 scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
21 ScopedVector<AudioDecoder>* audio_decoders) { | 25 ScopedVector<AudioDecoder>* audio_decoders) { |
22 #if defined(ENABLE_MOJO_AUDIO_DECODER) | 26 #if defined(ENABLE_MOJO_AUDIO_DECODER) |
23 // TODO(xhwang): Connect to mojo audio decoder service and pass it here. | 27 interfaces::AudioDecoderPtr audio_decoder_ptr; |
24 audio_decoders->push_back(new media::MojoAudioDecoder()); | 28 mojo::GetInterface<interfaces::AudioDecoder>(interface_provider_, |
| 29 &audio_decoder_ptr); |
| 30 |
| 31 audio_decoders->push_back( |
| 32 new media::MojoAudioDecoder(task_runner, std::move(audio_decoder_ptr))); |
25 #endif | 33 #endif |
26 } | 34 } |
27 | 35 |
28 void MojoDecoderFactory::CreateVideoDecoders( | 36 void MojoDecoderFactory::CreateVideoDecoders( |
| 37 scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
29 ScopedVector<VideoDecoder>* video_decoders) { | 38 ScopedVector<VideoDecoder>* video_decoders) { |
30 #if defined(ENABLE_MOJO_VIDEO_DECODER) | 39 #if defined(ENABLE_MOJO_VIDEO_DECODER) |
31 // TODO(sandersd): Connect to mojo video decoder service and pass it here. | 40 // TODO(sandersd): Connect to mojo video decoder service and pass it here. |
32 video_decoders->push_back(new media::MojoVideoDecoder()); | 41 video_decoders->push_back(new media::MojoVideoDecoder()); |
33 #endif | 42 #endif |
34 } | 43 } |
35 | 44 |
36 } // namespace media | 45 } // namespace media |
OLD | NEW |