| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "services/media/factory_service/factory_service.h" |
| #include "services/media/factory_service/media_decoder_impl.h" |
| #include "services/media/factory_service/media_demux_impl.h" |
| #include "services/media/factory_service/media_player_impl.h" |
| #include "services/media/factory_service/media_sink_impl.h" |
| #include "services/media/factory_service/media_source_impl.h" |
| #include "services/media/factory_service/network_reader_impl.h" |
| |
| namespace mojo { |
| namespace media { |
| |
| MediaFactoryService::MediaFactoryService() {} |
| |
| MediaFactoryService::~MediaFactoryService() {} |
| |
| bool MediaFactoryService::ConfigureIncomingConnection( |
| ServiceProviderImpl* service_provider_impl) { |
| service_provider_impl->AddService<MediaFactory>( |
| [this](const ConnectionContext& connection_context, |
| InterfaceRequest<MediaFactory> media_factory_request) { |
| bindings_.AddBinding(this, media_factory_request.Pass()); |
| }); |
| return true; |
| } |
| |
| void MediaFactoryService::CreatePlayer(InterfaceHandle<SeekingReader> reader, |
| InterfaceRequest<MediaPlayer> player) { |
| AddProduct(MediaPlayerImpl::Create(reader.Pass(), player.Pass(), this)); |
| } |
| |
| void MediaFactoryService::CreateSource(InterfaceHandle<SeekingReader> reader, |
| Array<MediaTypeSetPtr> media_types, |
| InterfaceRequest<MediaSource> source) { |
| AddProduct( |
| MediaSourceImpl::Create(reader.Pass(), media_types, source.Pass(), this)); |
| } |
| |
| void MediaFactoryService::CreateSink(const String& destination_url, |
| MediaTypePtr media_type, |
| InterfaceRequest<MediaSink> sink) { |
| AddProduct(MediaSinkImpl::Create(destination_url, media_type.Pass(), |
| sink.Pass(), this)); |
| } |
| |
| void MediaFactoryService::CreateDemux(InterfaceHandle<SeekingReader> reader, |
| InterfaceRequest<MediaDemux> demux) { |
| AddProduct(MediaDemuxImpl::Create(reader.Pass(), demux.Pass(), this)); |
| } |
| |
| void MediaFactoryService::CreateDecoder( |
| MediaTypePtr input_media_type, |
| InterfaceRequest<MediaTypeConverter> decoder) { |
| AddProduct( |
| MediaDecoderImpl::Create(input_media_type.Pass(), decoder.Pass(), this)); |
| } |
| |
| void MediaFactoryService::CreateNetworkReader( |
| const String& url, |
| InterfaceRequest<SeekingReader> reader) { |
| AddProduct(NetworkReaderImpl::Create(url, reader.Pass(), this)); |
| } |
| |
| } // namespace media |
| } // namespace mojo |