| Index: media/base/filters.h
|
| ===================================================================
|
| --- media/base/filters.h (revision 66137)
|
| +++ media/base/filters.h (working copy)
|
| @@ -43,6 +43,18 @@
|
| class FilterHost;
|
| class MediaFilter;
|
|
|
| +// Identifies the type of filter implementation. Each filter has to be one of
|
| +// the following types. This is used to identify filter object during
|
| +// initialization of pipeline.
|
| +enum FilterType {
|
| + FILTER_DATA_SOURCE,
|
| + FILTER_DEMUXER,
|
| + FILTER_AUDIO_DECODER,
|
| + FILTER_VIDEO_DECODER,
|
| + FILTER_AUDIO_RENDERER,
|
| + FILTER_VIDEO_RENDERER
|
| +};
|
| +
|
| // Used for completing asynchronous methods.
|
| typedef Callback0::Type FilterCallback;
|
|
|
| @@ -50,6 +62,10 @@
|
| public:
|
| MediaFilter();
|
|
|
| + // Return the type of this filter. All implementor has to provide this
|
| + // method.
|
| + virtual FilterType filter_type() const = 0;
|
| +
|
| // Return the major mime type for this filter.
|
| virtual const char* major_mime_type() const;
|
|
|
| @@ -130,6 +146,9 @@
|
|
|
| virtual bool IsUrlSupported(const std::string& url);
|
|
|
| + static FilterType static_filter_type() { return FILTER_DATA_SOURCE; }
|
| + virtual FilterType filter_type() const;
|
| +
|
| // Initialize a DataSource for the given URL, executing the callback upon
|
| // completion.
|
| virtual void Initialize(const std::string& url, FilterCallback* callback) = 0;
|
| @@ -154,6 +173,9 @@
|
|
|
| class Demuxer : public MediaFilter {
|
| public:
|
| + static FilterType static_filter_type() { return FILTER_DEMUXER; }
|
| + virtual FilterType filter_type() const;
|
| +
|
| virtual bool requires_message_loop() const;
|
| virtual const char* message_loop_name() const;
|
|
|
| @@ -210,6 +232,9 @@
|
|
|
| class VideoDecoder : public MediaFilter {
|
| public:
|
| + static FilterType static_filter_type() { return FILTER_VIDEO_DECODER; }
|
| + virtual FilterType filter_type() const;
|
| +
|
| virtual const char* major_mime_type() const;
|
| virtual bool requires_message_loop() const;
|
| virtual const char* message_loop_name() const;
|
| @@ -255,6 +280,9 @@
|
|
|
| class AudioDecoder : public MediaFilter {
|
| public:
|
| + static FilterType static_filter_type() { return FILTER_AUDIO_DECODER; }
|
| + virtual FilterType filter_type() const;
|
| +
|
| virtual const char* major_mime_type() const;
|
| virtual bool requires_message_loop() const;
|
| virtual const char* message_loop_name() const;
|
| @@ -294,6 +322,9 @@
|
|
|
| class VideoRenderer : public MediaFilter {
|
| public:
|
| + static FilterType static_filter_type() { return FILTER_VIDEO_RENDERER; }
|
| + virtual FilterType filter_type() const;
|
| +
|
| virtual const char* major_mime_type() const;
|
|
|
| // Initialize a VideoRenderer with the given VideoDecoder, executing the
|
| @@ -308,6 +339,9 @@
|
|
|
| class AudioRenderer : public MediaFilter {
|
| public:
|
| + static FilterType static_filter_type() { return FILTER_AUDIO_RENDERER; }
|
| + virtual FilterType filter_type() const;
|
| +
|
| virtual const char* major_mime_type() const;
|
|
|
| // Initialize a AudioRenderer with the given AudioDecoder, executing the
|
|
|