1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef MEDIA_BASE_MOCK_FILTERS_H_
6 #define MEDIA_BASE_MOCK_FILTERS_H_
10 #include "base/callback.h"
11 #include "media/base/audio_decoder.h"
12 #include "media/base/audio_decoder_config.h"
13 #include "media/base/audio_renderer.h"
14 #include "media/base/decoder_buffer.h"
15 #include "media/base/decryptor.h"
16 #include "media/base/demuxer.h"
17 #include "media/base/filter_collection.h"
18 #include "media/base/pipeline_status.h"
19 #include "media/base/text_track.h"
20 #include "media/base/time_source.h"
21 #include "media/base/video_decoder.h"
22 #include "media/base/video_decoder_config.h"
23 #include "media/base/video_frame.h"
24 #include "media/base/video_renderer.h"
25 #include "testing/gmock/include/gmock/gmock.h"
29 class MockDemuxer : public Demuxer {
32 virtual ~MockDemuxer();
34 // Demuxer implementation.
35 MOCK_METHOD3(Initialize,
36 void(DemuxerHost* host, const PipelineStatusCB& cb, bool));
37 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate));
38 MOCK_METHOD2(Seek, void(base::TimeDelta time, const PipelineStatusCB& cb));
39 MOCK_METHOD1(Stop, void(const base::Closure& callback));
40 MOCK_METHOD0(OnAudioRendererDisabled, void());
41 MOCK_METHOD1(GetStream, DemuxerStream*(DemuxerStream::Type));
42 MOCK_CONST_METHOD0(GetTimelineOffset, base::Time());
43 MOCK_CONST_METHOD0(GetLiveness, Liveness());
46 DISALLOW_COPY_AND_ASSIGN(MockDemuxer);
49 class MockDemuxerStream : public DemuxerStream {
51 explicit MockDemuxerStream(DemuxerStream::Type type);
52 virtual ~MockDemuxerStream();
54 // DemuxerStream implementation.
55 virtual Type type() OVERRIDE;
56 MOCK_METHOD1(Read, void(const ReadCB& read_cb));
57 virtual AudioDecoderConfig audio_decoder_config() OVERRIDE;
58 virtual VideoDecoderConfig video_decoder_config() OVERRIDE;
59 MOCK_METHOD0(EnableBitstreamConverter, void());
60 MOCK_METHOD0(SupportsConfigChanges, bool());
62 void set_audio_decoder_config(const AudioDecoderConfig& config);
63 void set_video_decoder_config(const VideoDecoderConfig& config);
65 virtual VideoRotation video_rotation() OVERRIDE;
68 DemuxerStream::Type type_;
69 AudioDecoderConfig audio_decoder_config_;
70 VideoDecoderConfig video_decoder_config_;
72 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream);
75 class MockVideoDecoder : public VideoDecoder {
78 virtual ~MockVideoDecoder();
80 // VideoDecoder implementation.
81 MOCK_METHOD4(Initialize, void(const VideoDecoderConfig& config,
83 const PipelineStatusCB& status_cb,
84 const OutputCB& output_cb));
85 MOCK_METHOD2(Decode, void(const scoped_refptr<DecoderBuffer>& buffer,
87 MOCK_METHOD1(Reset, void(const base::Closure&));
88 MOCK_CONST_METHOD0(HasAlpha, bool());
91 DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder);
94 class MockAudioDecoder : public AudioDecoder {
97 virtual ~MockAudioDecoder();
99 // AudioDecoder implementation.
100 MOCK_METHOD3(Initialize,
101 void(const AudioDecoderConfig& config,
102 const PipelineStatusCB& status_cb,
103 const OutputCB& output_cb));
105 void(const scoped_refptr<DecoderBuffer>& buffer,
107 MOCK_METHOD1(Reset, void(const base::Closure&));
110 DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder);
113 class MockVideoRenderer : public VideoRenderer {
116 virtual ~MockVideoRenderer();
118 // VideoRenderer implementation.
119 MOCK_METHOD10(Initialize, void(DemuxerStream* stream,
121 const PipelineStatusCB& init_cb,
122 const StatisticsCB& statistics_cb,
123 const TimeCB& time_cb,
124 const BufferingStateCB& buffering_state_cb,
125 const base::Closure& ended_cb,
126 const PipelineStatusCB& error_cb,
127 const TimeDeltaCB& get_time_cb,
128 const TimeDeltaCB& get_duration_cb));
129 MOCK_METHOD1(Flush, void(const base::Closure& callback));
130 MOCK_METHOD0(StartPlaying, void());
133 DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer);
136 class MockAudioRenderer : public AudioRenderer {
139 virtual ~MockAudioRenderer();
141 // AudioRenderer implementation.
142 MOCK_METHOD7(Initialize, void(DemuxerStream* stream,
143 const PipelineStatusCB& init_cb,
144 const StatisticsCB& statistics_cb,
145 const TimeCB& time_cb,
146 const BufferingStateCB& buffering_state_cb,
147 const base::Closure& ended_cb,
148 const PipelineStatusCB& error_cb));
149 MOCK_METHOD0(GetTimeSource, TimeSource*());
150 MOCK_METHOD1(Flush, void(const base::Closure& callback));
151 MOCK_METHOD0(StartPlaying, void());
152 MOCK_METHOD1(SetVolume, void(float volume));
155 DISALLOW_COPY_AND_ASSIGN(MockAudioRenderer);
158 class MockTimeSource : public TimeSource {
161 virtual ~MockTimeSource();
163 // TimeSource implementation.
164 MOCK_METHOD0(StartTicking, void());
165 MOCK_METHOD0(StopTicking, void());
166 MOCK_METHOD1(SetPlaybackRate, void(float));
167 MOCK_METHOD1(SetMediaTime, void(base::TimeDelta));
168 MOCK_METHOD0(CurrentMediaTime, base::TimeDelta());
171 DISALLOW_COPY_AND_ASSIGN(MockTimeSource);
174 class MockTextTrack : public TextTrack {
177 virtual ~MockTextTrack();
179 MOCK_METHOD5(addWebVTTCue, void(const base::TimeDelta& start,
180 const base::TimeDelta& end,
181 const std::string& id,
182 const std::string& content,
183 const std::string& settings));
186 DISALLOW_COPY_AND_ASSIGN(MockTextTrack);
189 class MockDecryptor : public Decryptor {
192 virtual ~MockDecryptor();
194 MOCK_METHOD2(RegisterNewKeyCB, void(StreamType stream_type,
195 const NewKeyCB& new_key_cb));
196 MOCK_METHOD3(Decrypt, void(StreamType stream_type,
197 const scoped_refptr<DecoderBuffer>& encrypted,
198 const DecryptCB& decrypt_cb));
199 MOCK_METHOD1(CancelDecrypt, void(StreamType stream_type));
200 MOCK_METHOD2(InitializeAudioDecoder,
201 void(const AudioDecoderConfig& config,
202 const DecoderInitCB& init_cb));
203 MOCK_METHOD2(InitializeVideoDecoder,
204 void(const VideoDecoderConfig& config,
205 const DecoderInitCB& init_cb));
206 MOCK_METHOD2(DecryptAndDecodeAudio,
207 void(const scoped_refptr<media::DecoderBuffer>& encrypted,
208 const AudioDecodeCB& audio_decode_cb));
209 MOCK_METHOD2(DecryptAndDecodeVideo,
210 void(const scoped_refptr<media::DecoderBuffer>& encrypted,
211 const VideoDecodeCB& video_decode_cb));
212 MOCK_METHOD1(ResetDecoder, void(StreamType stream_type));
213 MOCK_METHOD1(DeinitializeDecoder, void(StreamType stream_type));
216 DISALLOW_COPY_AND_ASSIGN(MockDecryptor);
219 // Helper mock statistics callback.
220 class MockStatisticsCB {
225 MOCK_METHOD1(OnStatistics, void(const media::PipelineStatistics& statistics));
230 #endif // MEDIA_BASE_MOCK_FILTERS_H_