Chromium Code Reviews| Index: media/base/mock_filters.h |
| diff --git a/media/base/mock_filters.h b/media/base/mock_filters.h |
| index 2a2b13cc61fafdc4b73272a74cd244863663f292..c45f8e65ed5e2e31d40827322bea8a1bd7db8273 100644 |
| --- a/media/base/mock_filters.h |
| +++ b/media/base/mock_filters.h |
| @@ -43,6 +43,181 @@ class MockDataSource : public DataSource { |
| DISALLOW_COPY_AND_ASSIGN(MockDataSource); |
| }; |
| +class MockDemuxer : public Demuxer { |
| + public: |
| + MockDemuxer() {} |
| + |
| + // MediaFilter implementation. |
| + MOCK_METHOD0(Stop, void()); |
| + MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| + MOCK_METHOD1(Seek, void(base::TimeDelta time)); |
| + |
| + // Demuxer implementation. |
| + MOCK_METHOD1(Initialize, bool(DataSource* data_source)); |
| + MOCK_METHOD0(GetNumberOfStreams, size_t()); |
| + MOCK_METHOD1(GetStream, scoped_refptr<DemuxerStream>(int stream_id)); |
| + |
| + protected: |
| + virtual ~MockDemuxer() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MockDemuxer); |
| +}; |
| + |
| +class MockDemuxerStream : public DemuxerStream { |
| + public: |
| + MockDemuxerStream() {} |
| + |
| + // DemuxerStream implementation. |
| + MOCK_METHOD0(media_format, const MediaFormat&()); |
| + MOCK_METHOD1(Read, void(Callback1<Buffer*>::Type* read_callback)); |
| + MOCK_METHOD1(QueryInterface, void*(const char* interface_id)); |
| + |
| + protected: |
| + virtual ~MockDemuxerStream() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream); |
| +}; |
| + |
| +class MockVideoDecoder : public VideoDecoder { |
| + public: |
| + MockVideoDecoder() {} |
| + |
| + // MediaFilter implementation. |
| + MOCK_METHOD0(Stop, void()); |
| + MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| + MOCK_METHOD1(Seek, void(base::TimeDelta time)); |
| + |
| + // VideoDecoder implementation. |
| + MOCK_METHOD1(Initialize, bool(DemuxerStream* demuxer_stream)); |
| + MOCK_METHOD0(media_format, const MediaFormat&()); |
| + MOCK_METHOD1(Read, void(Callback1<VideoFrame*>::Type* read_callback)); |
| + |
| + protected: |
| + virtual ~MockVideoDecoder() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder); |
| +}; |
| + |
| +class MockAudioDecoder : public AudioDecoder { |
| + public: |
| + MockAudioDecoder() {} |
| + |
| + // MediaFilter implementation. |
| + MOCK_METHOD0(Stop, void()); |
| + MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| + MOCK_METHOD1(Seek, void(base::TimeDelta time)); |
| + |
| + // AudioDecoder implementation. |
| + MOCK_METHOD1(Initialize, bool(DemuxerStream* demuxer_stream)); |
| + MOCK_METHOD0(media_format, const MediaFormat&()); |
| + MOCK_METHOD1(Read, void(Callback1<Buffer*>::Type* read_callback)); |
| + |
| + protected: |
| + virtual ~MockAudioDecoder() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder); |
| +}; |
| + |
| +class MockVideoRenderer : public VideoRenderer { |
| + public: |
| + MockVideoRenderer() {} |
| + |
| + // MediaFilter implementation. |
| + MOCK_METHOD0(Stop, void()); |
| + MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| + MOCK_METHOD1(Seek, void(base::TimeDelta time)); |
| + |
| + // VideoRenderer implementation. |
| + MOCK_METHOD1(Initialize, bool(VideoDecoder* decoder)); |
| + |
| + protected: |
| + virtual ~MockVideoRenderer() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer); |
| +}; |
| + |
| +class MockAudioRenderer : public AudioRenderer { |
| + public: |
| + MockAudioRenderer() {} |
| + |
| + // MediaFilter implementation. |
| + MOCK_METHOD0(Stop, void()); |
| + MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| + MOCK_METHOD1(Seek, void(base::TimeDelta time)); |
| + |
| + // AudioRenderer implementation. |
| + MOCK_METHOD1(Initialize, bool(AudioDecoder* decoder)); |
| + MOCK_METHOD1(SetVolume, void(float volume)); |
| + |
| + protected: |
| + virtual ~MockAudioRenderer() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MockAudioRenderer); |
| +}; |
| + |
| +// FilterFactory that returns canned instances of mock filters. You can set |
| +// expectations on the filters and then pass the factory into a pipeline. |
| +// |
| +// TODO(scherkus): add the other filter types. |
| +class MockFilterFactory : public FilterFactory { |
|
awong
2009/07/08 22:06:03
Hmm...having a factory that holds mocks...this fee
scherkus (not reviewing)
2009/07/08 22:14:51
You got it. Normal filter pattern is to have the
|
| + public: |
| + MockFilterFactory() |
| + : data_source_(new MockDataSource()), |
| + demuxer_(new MockDemuxer()), |
| + video_decoder_(new MockVideoDecoder()), |
| + audio_decoder_(new MockAudioDecoder()), |
| + video_renderer_(new MockVideoRenderer()), |
| + audio_renderer_(new MockAudioRenderer()) { |
| + } |
| + |
| + virtual ~MockFilterFactory() {} |
| + |
| + // Mock accessors. |
| + MockDataSource* data_source() const { return data_source_; } |
| + MockDemuxer* demuxer() const { return demuxer_; } |
| + MockVideoDecoder* video_decoder() const { return video_decoder_; } |
| + MockAudioDecoder* audio_decoder() const { return audio_decoder_; } |
| + MockVideoRenderer* video_renderer() const { return video_renderer_; } |
| + MockAudioRenderer* audio_renderer() const { return audio_renderer_; } |
| + |
| + protected: |
| + MediaFilter* Create(FilterType filter_type, const MediaFormat& media_format) { |
| + switch (filter_type) { |
| + case FILTER_DATA_SOURCE: |
| + return data_source_; |
| + case FILTER_DEMUXER: |
| + return demuxer_; |
| + case FILTER_VIDEO_DECODER: |
| + return video_decoder_; |
| + case FILTER_AUDIO_DECODER: |
| + return audio_decoder_; |
| + case FILTER_VIDEO_RENDERER: |
| + return video_renderer_; |
| + case FILTER_AUDIO_RENDERER: |
| + return audio_renderer_; |
| + default: |
| + NOTREACHED() << "Unknown filter type: " << filter_type; |
| + } |
| + return NULL; |
| + } |
| + |
| + private: |
| + scoped_refptr<MockDataSource> data_source_; |
| + scoped_refptr<MockDemuxer> demuxer_; |
| + scoped_refptr<MockVideoDecoder> video_decoder_; |
| + scoped_refptr<MockAudioDecoder> audio_decoder_; |
| + scoped_refptr<MockVideoRenderer> video_renderer_; |
| + scoped_refptr<MockAudioRenderer> audio_renderer_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(MockFilterFactory); |
| +}; |
| + |
| } // namespace media |
| #endif // MEDIA_BASE_MOCK_FILTERS_H_ |