• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef MEDIA_BASE_MOCK_FILTERS_H_
6 #define MEDIA_BASE_MOCK_FILTERS_H_
7 
8 #include <string>
9 
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/pipeline_status.h"
18 #include "media/base/renderer.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"
26 
27 namespace media {
28 
29 class MockDemuxer : public Demuxer {
30  public:
31   MockDemuxer();
32   virtual ~MockDemuxer();
33 
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_METHOD0(Stop, void());
40   MOCK_METHOD0(OnAudioRendererDisabled, void());
41   MOCK_METHOD1(GetStream, DemuxerStream*(DemuxerStream::Type));
42   MOCK_CONST_METHOD0(GetStartTime, base::TimeDelta());
43   MOCK_CONST_METHOD0(GetTimelineOffset, base::Time());
44   MOCK_CONST_METHOD0(GetLiveness, Liveness());
45 
46  private:
47   DISALLOW_COPY_AND_ASSIGN(MockDemuxer);
48 };
49 
50 class MockDemuxerStream : public DemuxerStream {
51  public:
52   explicit MockDemuxerStream(DemuxerStream::Type type);
53   virtual ~MockDemuxerStream();
54 
55   // DemuxerStream implementation.
56   virtual Type type() OVERRIDE;
57   MOCK_METHOD1(Read, void(const ReadCB& read_cb));
58   virtual AudioDecoderConfig audio_decoder_config() OVERRIDE;
59   virtual VideoDecoderConfig video_decoder_config() OVERRIDE;
60   MOCK_METHOD0(EnableBitstreamConverter, void());
61   MOCK_METHOD0(SupportsConfigChanges, bool());
62 
63   void set_audio_decoder_config(const AudioDecoderConfig& config);
64   void set_video_decoder_config(const VideoDecoderConfig& config);
65 
66   virtual VideoRotation video_rotation() OVERRIDE;
67 
68  private:
69   DemuxerStream::Type type_;
70   AudioDecoderConfig audio_decoder_config_;
71   VideoDecoderConfig video_decoder_config_;
72 
73   DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream);
74 };
75 
76 class MockVideoDecoder : public VideoDecoder {
77  public:
78   MockVideoDecoder();
79   virtual ~MockVideoDecoder();
80 
81   // VideoDecoder implementation.
82   virtual std::string GetDisplayName() const;
83   MOCK_METHOD4(Initialize, void(const VideoDecoderConfig& config,
84                                 bool low_delay,
85                                 const PipelineStatusCB& status_cb,
86                                 const OutputCB& output_cb));
87   MOCK_METHOD2(Decode, void(const scoped_refptr<DecoderBuffer>& buffer,
88                             const DecodeCB&));
89   MOCK_METHOD1(Reset, void(const base::Closure&));
90   MOCK_CONST_METHOD0(HasAlpha, bool());
91 
92  private:
93   DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder);
94 };
95 
96 class MockAudioDecoder : public AudioDecoder {
97  public:
98   MockAudioDecoder();
99   virtual ~MockAudioDecoder();
100 
101   // AudioDecoder implementation.
102   virtual std::string GetDisplayName() const;
103   MOCK_METHOD3(Initialize,
104                void(const AudioDecoderConfig& config,
105                     const PipelineStatusCB& status_cb,
106                     const OutputCB& output_cb));
107   MOCK_METHOD2(Decode,
108                void(const scoped_refptr<DecoderBuffer>& buffer,
109                     const DecodeCB&));
110   MOCK_METHOD1(Reset, void(const base::Closure&));
111 
112  private:
113   DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder);
114 };
115 
116 class MockVideoRenderer : public VideoRenderer {
117  public:
118   MockVideoRenderer();
119   virtual ~MockVideoRenderer();
120 
121   // VideoRenderer implementation.
122   MOCK_METHOD8(Initialize, void(DemuxerStream* stream,
123                                 bool low_delay,
124                                 const PipelineStatusCB& init_cb,
125                                 const StatisticsCB& statistics_cb,
126                                 const BufferingStateCB& buffering_state_cb,
127                                 const base::Closure& ended_cb,
128                                 const PipelineStatusCB& error_cb,
129                                 const TimeDeltaCB& get_time_cb));
130   MOCK_METHOD1(Flush, void(const base::Closure& callback));
131   MOCK_METHOD1(StartPlayingFrom, void(base::TimeDelta));
132 
133  private:
134   DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer);
135 };
136 
137 class MockAudioRenderer : public AudioRenderer {
138  public:
139   MockAudioRenderer();
140   virtual ~MockAudioRenderer();
141 
142   // AudioRenderer implementation.
143   MOCK_METHOD6(Initialize, void(DemuxerStream* stream,
144                                 const PipelineStatusCB& init_cb,
145                                 const StatisticsCB& statistics_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));
153 
154  private:
155   DISALLOW_COPY_AND_ASSIGN(MockAudioRenderer);
156 };
157 
158 class MockRenderer : public Renderer {
159  public:
160   MockRenderer();
161   virtual ~MockRenderer();
162 
163   // Renderer implementation.
164   MOCK_METHOD5(Initialize, void(const base::Closure& init_cb,
165                                 const StatisticsCB& statistics_cb,
166                                 const base::Closure& ended_cb,
167                                 const PipelineStatusCB& error_cb,
168                                 const BufferingStateCB& buffering_state_cb));
169   MOCK_METHOD1(Flush, void(const base::Closure& flush_cb));
170   MOCK_METHOD1(StartPlayingFrom, void(base::TimeDelta timestamp));
171   MOCK_METHOD1(SetPlaybackRate, void(float playback_rate));
172   MOCK_METHOD1(SetVolume, void(float volume));
173   MOCK_METHOD0(GetMediaTime, base::TimeDelta());
174   MOCK_METHOD0(HasAudio, bool());
175   MOCK_METHOD0(HasVideo, bool());
176   MOCK_METHOD1(SetCdm, void(MediaKeys* cdm));
177 
178  private:
179   DISALLOW_COPY_AND_ASSIGN(MockRenderer);
180 };
181 
182 class MockTimeSource : public TimeSource {
183  public:
184   MockTimeSource();
185   virtual ~MockTimeSource();
186 
187   // TimeSource implementation.
188   MOCK_METHOD0(StartTicking, void());
189   MOCK_METHOD0(StopTicking, void());
190   MOCK_METHOD1(SetPlaybackRate, void(float));
191   MOCK_METHOD1(SetMediaTime, void(base::TimeDelta));
192   MOCK_METHOD0(CurrentMediaTime, base::TimeDelta());
193   MOCK_METHOD0(CurrentMediaTimeForSyncingVideo, base::TimeDelta());
194 
195  private:
196   DISALLOW_COPY_AND_ASSIGN(MockTimeSource);
197 };
198 
199 class MockTextTrack : public TextTrack {
200  public:
201   MockTextTrack();
202   virtual ~MockTextTrack();
203 
204   MOCK_METHOD5(addWebVTTCue, void(const base::TimeDelta& start,
205                                   const base::TimeDelta& end,
206                                   const std::string& id,
207                                   const std::string& content,
208                                   const std::string& settings));
209 
210  private:
211   DISALLOW_COPY_AND_ASSIGN(MockTextTrack);
212 };
213 
214 class MockDecryptor : public Decryptor {
215  public:
216   MockDecryptor();
217   virtual ~MockDecryptor();
218 
219   MOCK_METHOD2(RegisterNewKeyCB, void(StreamType stream_type,
220                                       const NewKeyCB& new_key_cb));
221   MOCK_METHOD3(Decrypt, void(StreamType stream_type,
222                              const scoped_refptr<DecoderBuffer>& encrypted,
223                              const DecryptCB& decrypt_cb));
224   MOCK_METHOD1(CancelDecrypt, void(StreamType stream_type));
225   MOCK_METHOD2(InitializeAudioDecoder,
226                void(const AudioDecoderConfig& config,
227                     const DecoderInitCB& init_cb));
228   MOCK_METHOD2(InitializeVideoDecoder,
229                void(const VideoDecoderConfig& config,
230                     const DecoderInitCB& init_cb));
231   MOCK_METHOD2(DecryptAndDecodeAudio,
232                void(const scoped_refptr<media::DecoderBuffer>& encrypted,
233                     const AudioDecodeCB& audio_decode_cb));
234   MOCK_METHOD2(DecryptAndDecodeVideo,
235                void(const scoped_refptr<media::DecoderBuffer>& encrypted,
236                     const VideoDecodeCB& video_decode_cb));
237   MOCK_METHOD1(ResetDecoder, void(StreamType stream_type));
238   MOCK_METHOD1(DeinitializeDecoder, void(StreamType stream_type));
239 
240  private:
241   DISALLOW_COPY_AND_ASSIGN(MockDecryptor);
242 };
243 
244 }  // namespace media
245 
246 #endif  // MEDIA_BASE_MOCK_FILTERS_H_
247