blob: 17f1dd7c8bd8b088ad9492205f225fb9c29881f1 [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module media;
import "lib/media/fidl/audio_renderer.fidl";
import "lib/media/fidl/media_capturer.fidl";
import "lib/media/fidl/media_player.fidl";
import "lib/media/fidl/media_renderer.fidl";
import "lib/media/fidl/media_sink.fidl";
import "lib/media/fidl/media_source.fidl";
import "lib/media/fidl/media_type_converter.fidl";
import "lib/media/fidl/media_types.fidl";
import "lib/media/fidl/seeking_reader.fidl";
import "lib/media/fidl/timeline_controller.fidl";
import "lib/media/fidl/video_renderer.fidl";
// Primary media service definition.
[ServiceName="media::MediaService"]
interface MediaService {
// Creates a player that reads from a file specified by channel.
CreateFilePlayer@0(handle<channel> file_channel,
MediaRenderer? audio_renderer,
MediaRenderer? video_renderer,
MediaPlayer& player);
// Creates a player that reads from a seeking reader.
CreatePlayer@1(SeekingReader? reader,
MediaRenderer? audio_renderer,
MediaRenderer? video_renderer,
MediaPlayer& player);
// Creates a source. If allowed_media_types is supplied, conversions will be
// added to each stream as needed to make the media type of the stream match
// one of the allowed types. If a stream cannot be converted to one of the
// allowed types, the source will not expose that stream.
CreateSource@2(SeekingReader reader,
array<MediaTypeSet>? allowed_media_types,
MediaSource& source);
// Creates a sink.
CreateSink@3(MediaRenderer renderer, MediaSink& sink);
// Creates a demux.
CreateDemux@4(SeekingReader reader, MediaSource& demux);
// Creates a decoder.
CreateDecoder@5(MediaType input_media_type, MediaTypeConverter& decoder);
// Creates a network reader.
CreateNetworkReader@6(string url, SeekingReader& reader);
// Creates a file reader.
CreateFileReader@7(string path, SeekingReader& reader);
// Creates an audio renderer.
CreateAudioRenderer@8(AudioRenderer& audio_renderer,
MediaRenderer& media_renderer);
// Creates a video renderer.
CreateVideoRenderer@9(VideoRenderer& video_renderer,
MediaRenderer& media_renderer);
// Creates a timeline controller reader.
CreateTimelineController@10(MediaTimelineController& timeline_controller);
// Creates a reformatter for LPCM audio.
CreateLpcmReformatter@11(MediaType input_media_type,
AudioSampleFormat output_sample_format,
MediaTypeConverter& lpcm_reformatter);
};