// Copyright (c) 2012 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. #ifndef MEDIA_BASE_FILTER_COLLECTION_H_ #define MEDIA_BASE_FILTER_COLLECTION_H_ #include "base/memory/scoped_ptr.h" #include "media/base/media_export.h" namespace media { class AudioRenderer; class Demuxer; class TextRenderer; class VideoRenderer; // Represents a set of uninitialized demuxer and audio/video decoders and // renderers. Used to start a Pipeline object for media playback. // // TODO(scherkus): Replace FilterCollection with something sensible, see // http://crbug.com/110800 class MEDIA_EXPORT FilterCollection { public: FilterCollection(); ~FilterCollection(); void SetDemuxer(Demuxer* demuxer); Demuxer* GetDemuxer(); void SetAudioRenderer(scoped_ptr audio_renderer); scoped_ptr GetAudioRenderer(); void SetVideoRenderer(scoped_ptr video_renderer); scoped_ptr GetVideoRenderer(); void SetTextRenderer(scoped_ptr text_renderer); scoped_ptr GetTextRenderer(); private: Demuxer* demuxer_; scoped_ptr audio_renderer_; scoped_ptr video_renderer_; scoped_ptr text_renderer_; DISALLOW_COPY_AND_ASSIGN(FilterCollection); }; } // namespace media #endif // MEDIA_BASE_FILTER_COLLECTION_H_