| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // A new breed of mock media filters, this time using gmock! Feel free to add | 5 // A new breed of mock media filters, this time using gmock! Feel free to add |
| 6 // actions if you need interesting side-effects (i.e., copying data to the | 6 // actions if you need interesting side-effects (i.e., copying data to the |
| 7 // buffer passed into MockDataSource::Read()). | 7 // buffer passed into MockDataSource::Read()). |
| 8 // | 8 // |
| 9 // Don't forget you can use StrictMock<> and NiceMock<> if you want the mock | 9 // Don't forget you can use StrictMock<> and NiceMock<> if you want the mock |
| 10 // filters to fail the test or do nothing when an unexpected method is called. | 10 // filters to fail the test or do nothing when an unexpected method is called. |
| 11 // http://code.google.com/p/googlemock/wiki/CookBook#Nice_Mocks_and_Strict_Mocks | 11 // http://code.google.com/p/googlemock/wiki/CookBook#Nice_Mocks_and_Strict_Mocks |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 private: | 43 private: |
| 44 DISALLOW_COPY_AND_ASSIGN(Destroyable); | 44 DISALLOW_COPY_AND_ASSIGN(Destroyable); |
| 45 }; | 45 }; |
| 46 | 46 |
| 47 // Helper class used to test that callbacks are executed. It is recommend you | 47 // Helper class used to test that callbacks are executed. It is recommend you |
| 48 // combine this class with StrictMock<> to verify that the callback is executed. | 48 // combine this class with StrictMock<> to verify that the callback is executed. |
| 49 // You can reuse the same instance of a MockFilterCallback many times since | 49 // You can reuse the same instance of a MockFilterCallback many times since |
| 50 // gmock will track the number of times the methods are executed. | 50 // gmock will track the number of times the methods are executed. |
| 51 class MockFilterCallback { | 51 class MockFilterCallback { |
| 52 public: | 52 public: |
| 53 MockFilterCallback() {} | 53 MockFilterCallback(); |
| 54 virtual ~MockFilterCallback() {} | 54 virtual ~MockFilterCallback(); |
| 55 | 55 |
| 56 MOCK_METHOD0(OnCallbackDestroyed, void()); | 56 MOCK_METHOD0(OnCallbackDestroyed, void()); |
| 57 MOCK_METHOD0(OnFilterCallback, void()); | 57 MOCK_METHOD0(OnFilterCallback, void()); |
| 58 | 58 |
| 59 // Helper method to create a new callback for this mock. The callback will | 59 // Helper method to create a new callback for this mock. The callback will |
| 60 // call OnFilterCallback() when executed and OnCallbackDestroyed() when | 60 // call OnFilterCallback() when executed and OnCallbackDestroyed() when |
| 61 // destroyed. Clients should use NiceMock<> or StrictMock<> depending on the | 61 // destroyed. Clients should use NiceMock<> or StrictMock<> depending on the |
| 62 // test. | 62 // test. |
| 63 FilterCallback* NewCallback() { | 63 FilterCallback* NewCallback(); |
| 64 return new CallbackImpl(this); | |
| 65 } | |
| 66 | 64 |
| 67 private: | 65 private: |
| 68 // Private implementation of CallbackRunner used to trigger expectations on | 66 // Private implementation of CallbackRunner used to trigger expectations on |
| 69 // MockFilterCallback. | 67 // MockFilterCallback. |
| 70 class CallbackImpl : public CallbackRunner<Tuple0> { | 68 class CallbackImpl : public CallbackRunner<Tuple0> { |
| 71 public: | 69 public: |
| 72 explicit CallbackImpl(MockFilterCallback* mock_callback) | 70 explicit CallbackImpl(MockFilterCallback* mock_callback) |
| 73 : mock_callback_(mock_callback) { | 71 : mock_callback_(mock_callback) { |
| 74 } | 72 } |
| 75 | 73 |
| 76 virtual ~CallbackImpl() { | 74 virtual ~CallbackImpl() { |
| 77 mock_callback_->OnCallbackDestroyed(); | 75 mock_callback_->OnCallbackDestroyed(); |
| 78 } | 76 } |
| 79 | 77 |
| 80 virtual void RunWithParams(const Tuple0& params) { | 78 virtual void RunWithParams(const Tuple0& params) { |
| 81 mock_callback_->OnFilterCallback(); | 79 mock_callback_->OnFilterCallback(); |
| 82 } | 80 } |
| 83 | 81 |
| 84 private: | 82 private: |
| 85 MockFilterCallback* mock_callback_; | 83 MockFilterCallback* mock_callback_; |
| 86 | 84 |
| 87 DISALLOW_COPY_AND_ASSIGN(CallbackImpl); | 85 DISALLOW_COPY_AND_ASSIGN(CallbackImpl); |
| 88 }; | 86 }; |
| 89 | 87 |
| 90 DISALLOW_COPY_AND_ASSIGN(MockFilterCallback); | 88 DISALLOW_COPY_AND_ASSIGN(MockFilterCallback); |
| 91 }; | 89 }; |
| 92 | 90 |
| 93 class MockDataSource : public DataSource { | 91 class MockDataSource : public DataSource { |
| 94 public: | 92 public: |
| 95 MockDataSource() {} | 93 MockDataSource(); |
| 96 | 94 |
| 97 // Filter implementation. | 95 // Filter implementation. |
| 98 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 96 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 99 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 97 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 100 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 98 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 101 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 99 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 102 | 100 |
| 103 // DataSource implementation. | 101 // DataSource implementation. |
| 104 MOCK_METHOD1(IsUrlSupported, bool(const std::string& url)); | 102 MOCK_METHOD1(IsUrlSupported, bool(const std::string& url)); |
| 105 MOCK_METHOD2(Initialize, void(const std::string& url, | 103 MOCK_METHOD2(Initialize, void(const std::string& url, |
| 106 FilterCallback* callback)); | 104 FilterCallback* callback)); |
| 107 MOCK_METHOD0(media_format, const MediaFormat&()); | 105 MOCK_METHOD0(media_format, const MediaFormat&()); |
| 108 MOCK_METHOD4(Read, void(int64 position, size_t size, uint8* data, | 106 MOCK_METHOD4(Read, void(int64 position, size_t size, uint8* data, |
| 109 DataSource::ReadCallback* callback)); | 107 DataSource::ReadCallback* callback)); |
| 110 MOCK_METHOD1(GetSize, bool(int64* size_out)); | 108 MOCK_METHOD1(GetSize, bool(int64* size_out)); |
| 111 MOCK_METHOD0(IsStreaming, bool()); | 109 MOCK_METHOD0(IsStreaming, bool()); |
| 112 | 110 |
| 113 protected: | 111 protected: |
| 114 virtual ~MockDataSource() {} | 112 virtual ~MockDataSource(); |
| 115 | 113 |
| 116 private: | 114 private: |
| 117 DISALLOW_COPY_AND_ASSIGN(MockDataSource); | 115 DISALLOW_COPY_AND_ASSIGN(MockDataSource); |
| 118 }; | 116 }; |
| 119 | 117 |
| 120 class MockDemuxer : public Demuxer { | 118 class MockDemuxer : public Demuxer { |
| 121 public: | 119 public: |
| 122 MockDemuxer() {} | 120 MockDemuxer(); |
| 123 | 121 |
| 124 // Filter implementation. | 122 // Filter implementation. |
| 125 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 123 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 126 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 124 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 127 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 125 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 128 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 126 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 129 | 127 |
| 130 // Demuxer implementation. | 128 // Demuxer implementation. |
| 131 MOCK_METHOD2(Initialize, void(DataSource* data_source, | 129 MOCK_METHOD2(Initialize, void(DataSource* data_source, |
| 132 FilterCallback* callback)); | 130 FilterCallback* callback)); |
| 133 MOCK_METHOD0(GetNumberOfStreams, size_t()); | 131 MOCK_METHOD0(GetNumberOfStreams, size_t()); |
| 134 MOCK_METHOD1(GetStream, scoped_refptr<DemuxerStream>(int stream_id)); | 132 MOCK_METHOD1(GetStream, scoped_refptr<DemuxerStream>(int stream_id)); |
| 135 | 133 |
| 136 protected: | 134 protected: |
| 137 virtual ~MockDemuxer() {} | 135 virtual ~MockDemuxer(); |
| 138 | 136 |
| 139 private: | 137 private: |
| 140 DISALLOW_COPY_AND_ASSIGN(MockDemuxer); | 138 DISALLOW_COPY_AND_ASSIGN(MockDemuxer); |
| 141 }; | 139 }; |
| 142 | 140 |
| 143 class MockDemuxerStream : public DemuxerStream { | 141 class MockDemuxerStream : public DemuxerStream { |
| 144 public: | 142 public: |
| 145 MockDemuxerStream() {} | 143 MockDemuxerStream(); |
| 146 | 144 |
| 147 // DemuxerStream implementation. | 145 // DemuxerStream implementation. |
| 148 MOCK_METHOD0(media_format, const MediaFormat&()); | 146 MOCK_METHOD0(media_format, const MediaFormat&()); |
| 149 MOCK_METHOD1(Read, void(Callback1<Buffer*>::Type* read_callback)); | 147 MOCK_METHOD1(Read, void(Callback1<Buffer*>::Type* read_callback)); |
| 150 MOCK_METHOD1(QueryInterface, void*(const char* interface_id)); | 148 MOCK_METHOD1(QueryInterface, void*(const char* interface_id)); |
| 151 MOCK_METHOD0(EnableBitstreamConverter, void()); | 149 MOCK_METHOD0(EnableBitstreamConverter, void()); |
| 152 | 150 |
| 153 protected: | 151 protected: |
| 154 virtual ~MockDemuxerStream() {} | 152 virtual ~MockDemuxerStream(); |
| 155 | 153 |
| 156 private: | 154 private: |
| 157 MediaFormat media_format_; | 155 MediaFormat media_format_; |
| 158 | 156 |
| 159 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream); | 157 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream); |
| 160 }; | 158 }; |
| 161 | 159 |
| 162 class MockVideoDecoder : public VideoDecoder { | 160 class MockVideoDecoder : public VideoDecoder { |
| 163 public: | 161 public: |
| 164 MockVideoDecoder() {} | 162 MockVideoDecoder(); |
| 165 | 163 |
| 166 // Filter implementation. | 164 // Filter implementation. |
| 167 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 165 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 168 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 166 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 169 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 167 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 170 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 168 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 171 | 169 |
| 172 // VideoDecoder implementation. | 170 // VideoDecoder implementation. |
| 173 MOCK_METHOD2(Initialize, void(DemuxerStream* stream, | 171 MOCK_METHOD2(Initialize, void(DemuxerStream* stream, |
| 174 FilterCallback* callback)); | 172 FilterCallback* callback)); |
| 175 MOCK_METHOD0(media_format, const MediaFormat&()); | 173 MOCK_METHOD0(media_format, const MediaFormat&()); |
| 176 MOCK_METHOD1(ProduceVideoFrame, void(scoped_refptr<VideoFrame>)); | 174 MOCK_METHOD1(ProduceVideoFrame, void(scoped_refptr<VideoFrame>)); |
| 177 MOCK_METHOD0(ProvidesBuffer, bool()); | 175 MOCK_METHOD0(ProvidesBuffer, bool()); |
| 178 | 176 |
| 179 // Make this method public so that tests can make use of it. | 177 // Make this method public so that tests can make use of it. |
| 180 void VideoFrameReady(scoped_refptr<VideoFrame> frame) { | 178 void VideoFrameReady(scoped_refptr<VideoFrame> frame) { |
| 181 VideoDecoder::VideoFrameReady(frame); | 179 VideoDecoder::VideoFrameReady(frame); |
| 182 } | 180 } |
| 183 | 181 |
| 184 protected: | 182 protected: |
| 185 virtual ~MockVideoDecoder() {} | 183 virtual ~MockVideoDecoder(); |
| 186 | 184 |
| 187 private: | 185 private: |
| 188 DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder); | 186 DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder); |
| 189 }; | 187 }; |
| 190 | 188 |
| 191 class MockAudioDecoder : public AudioDecoder { | 189 class MockAudioDecoder : public AudioDecoder { |
| 192 public: | 190 public: |
| 193 MockAudioDecoder() {} | 191 MockAudioDecoder(); |
| 194 | 192 |
| 195 // Filter implementation. | 193 // Filter implementation. |
| 196 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 194 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 197 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 195 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 198 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 196 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 199 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 197 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 200 | 198 |
| 201 // AudioDecoder implementation. | 199 // AudioDecoder implementation. |
| 202 MOCK_METHOD2(Initialize, void(DemuxerStream* stream, | 200 MOCK_METHOD2(Initialize, void(DemuxerStream* stream, |
| 203 FilterCallback* callback)); | 201 FilterCallback* callback)); |
| 204 MOCK_METHOD0(media_format, const MediaFormat&()); | 202 MOCK_METHOD0(media_format, const MediaFormat&()); |
| 205 MOCK_METHOD1(ProduceAudioSamples, void(scoped_refptr<Buffer>)); | 203 MOCK_METHOD1(ProduceAudioSamples, void(scoped_refptr<Buffer>)); |
| 206 | 204 |
| 207 // change to public to allow unittest for access; | 205 // change to public to allow unittest for access; |
| 208 ConsumeAudioSamplesCallback* consume_audio_samples_callback() { | 206 ConsumeAudioSamplesCallback* consume_audio_samples_callback() { |
| 209 return AudioDecoder::consume_audio_samples_callback(); | 207 return AudioDecoder::consume_audio_samples_callback(); |
| 210 } | 208 } |
| 211 | 209 |
| 212 protected: | 210 protected: |
| 213 virtual ~MockAudioDecoder() {} | 211 virtual ~MockAudioDecoder(); |
| 214 | 212 |
| 215 private: | 213 private: |
| 216 DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder); | 214 DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder); |
| 217 }; | 215 }; |
| 218 | 216 |
| 219 class MockVideoRenderer : public VideoRenderer { | 217 class MockVideoRenderer : public VideoRenderer { |
| 220 public: | 218 public: |
| 221 MockVideoRenderer() {} | 219 MockVideoRenderer(); |
| 222 | 220 |
| 223 // Filter implementation. | 221 // Filter implementation. |
| 224 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 222 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 225 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 223 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 226 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 224 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 227 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 225 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 228 | 226 |
| 229 // VideoRenderer implementation. | 227 // VideoRenderer implementation. |
| 230 MOCK_METHOD2(Initialize, void(VideoDecoder* decoder, | 228 MOCK_METHOD2(Initialize, void(VideoDecoder* decoder, |
| 231 FilterCallback* callback)); | 229 FilterCallback* callback)); |
| 232 MOCK_METHOD0(HasEnded, bool()); | 230 MOCK_METHOD0(HasEnded, bool()); |
| 233 MOCK_METHOD1(ConsumeVideoFrame, void(scoped_refptr<VideoFrame> frame)); | 231 MOCK_METHOD1(ConsumeVideoFrame, void(scoped_refptr<VideoFrame> frame)); |
| 234 | 232 |
| 235 protected: | 233 protected: |
| 236 virtual ~MockVideoRenderer() {} | 234 virtual ~MockVideoRenderer(); |
| 237 | 235 |
| 238 private: | 236 private: |
| 239 DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer); | 237 DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer); |
| 240 }; | 238 }; |
| 241 | 239 |
| 242 class MockAudioRenderer : public AudioRenderer { | 240 class MockAudioRenderer : public AudioRenderer { |
| 243 public: | 241 public: |
| 244 MockAudioRenderer() {} | 242 MockAudioRenderer(); |
| 245 | 243 |
| 246 // Filter implementation. | 244 // Filter implementation. |
| 247 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 245 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 248 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 246 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 249 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 247 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 250 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 248 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 251 | 249 |
| 252 // AudioRenderer implementation. | 250 // AudioRenderer implementation. |
| 253 MOCK_METHOD2(Initialize, void(AudioDecoder* decoder, | 251 MOCK_METHOD2(Initialize, void(AudioDecoder* decoder, |
| 254 FilterCallback* callback)); | 252 FilterCallback* callback)); |
| 255 MOCK_METHOD0(HasEnded, bool()); | 253 MOCK_METHOD0(HasEnded, bool()); |
| 256 MOCK_METHOD1(SetVolume, void(float volume)); | 254 MOCK_METHOD1(SetVolume, void(float volume)); |
| 257 | 255 |
| 258 protected: | 256 protected: |
| 259 virtual ~MockAudioRenderer() {} | 257 virtual ~MockAudioRenderer(); |
| 260 | 258 |
| 261 private: | 259 private: |
| 262 DISALLOW_COPY_AND_ASSIGN(MockAudioRenderer); | 260 DISALLOW_COPY_AND_ASSIGN(MockAudioRenderer); |
| 263 }; | 261 }; |
| 264 | 262 |
| 265 // FilterFactory that returns canned instances of mock filters. You can set | 263 // FilterFactory that returns canned instances of mock filters. You can set |
| 266 // expectations on the filters and then pass the collection into a pipeline. | 264 // expectations on the filters and then pass the collection into a pipeline. |
| 267 class MockFilterCollection { | 265 class MockFilterCollection { |
| 268 public: | 266 public: |
| 269 MockFilterCollection() | 267 MockFilterCollection(); |
| 270 : data_source_(new MockDataSource()), | 268 virtual ~MockFilterCollection(); |
| 271 demuxer_(new MockDemuxer()), | |
| 272 video_decoder_(new MockVideoDecoder()), | |
| 273 audio_decoder_(new MockAudioDecoder()), | |
| 274 video_renderer_(new MockVideoRenderer()), | |
| 275 audio_renderer_(new MockAudioRenderer()) { | |
| 276 } | |
| 277 | |
| 278 virtual ~MockFilterCollection() {} | |
| 279 | 269 |
| 280 // Mock accessors. | 270 // Mock accessors. |
| 281 MockDataSource* data_source() const { return data_source_; } | 271 MockDataSource* data_source() const { return data_source_; } |
| 282 MockDemuxer* demuxer() const { return demuxer_; } | 272 MockDemuxer* demuxer() const { return demuxer_; } |
| 283 MockVideoDecoder* video_decoder() const { return video_decoder_; } | 273 MockVideoDecoder* video_decoder() const { return video_decoder_; } |
| 284 MockAudioDecoder* audio_decoder() const { return audio_decoder_; } | 274 MockAudioDecoder* audio_decoder() const { return audio_decoder_; } |
| 285 MockVideoRenderer* video_renderer() const { return video_renderer_; } | 275 MockVideoRenderer* video_renderer() const { return video_renderer_; } |
| 286 MockAudioRenderer* audio_renderer() const { return audio_renderer_; } | 276 MockAudioRenderer* audio_renderer() const { return audio_renderer_; } |
| 287 | 277 |
| 288 FilterCollection* filter_collection() const { | 278 FilterCollection* filter_collection() const { |
| 289 return filter_collection(true); | 279 return filter_collection(true); |
| 290 } | 280 } |
| 291 | 281 |
| 292 FilterCollection* filter_collection(bool include_data_source) const { | 282 FilterCollection* filter_collection(bool include_data_source) const; |
| 293 FilterCollection* collection = new FilterCollection(); | |
| 294 | |
| 295 if (include_data_source) { | |
| 296 collection->AddDataSource(data_source_); | |
| 297 } | |
| 298 collection->AddDemuxer(demuxer_); | |
| 299 collection->AddVideoDecoder(video_decoder_); | |
| 300 collection->AddAudioDecoder(audio_decoder_); | |
| 301 collection->AddVideoRenderer(video_renderer_); | |
| 302 collection->AddAudioRenderer(audio_renderer_); | |
| 303 return collection; | |
| 304 } | |
| 305 | 283 |
| 306 private: | 284 private: |
| 307 scoped_refptr<MockDataSource> data_source_; | 285 scoped_refptr<MockDataSource> data_source_; |
| 308 scoped_refptr<MockDemuxer> demuxer_; | 286 scoped_refptr<MockDemuxer> demuxer_; |
| 309 scoped_refptr<MockVideoDecoder> video_decoder_; | 287 scoped_refptr<MockVideoDecoder> video_decoder_; |
| 310 scoped_refptr<MockAudioDecoder> audio_decoder_; | 288 scoped_refptr<MockAudioDecoder> audio_decoder_; |
| 311 scoped_refptr<MockVideoRenderer> video_renderer_; | 289 scoped_refptr<MockVideoRenderer> video_renderer_; |
| 312 scoped_refptr<MockAudioRenderer> audio_renderer_; | 290 scoped_refptr<MockAudioRenderer> audio_renderer_; |
| 313 | 291 |
| 314 DISALLOW_COPY_AND_ASSIGN(MockFilterCollection); | 292 DISALLOW_COPY_AND_ASSIGN(MockFilterCollection); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 | 332 |
| 355 // Helper gmock action that calls DisableAudioRenderer() on behalf of the | 333 // Helper gmock action that calls DisableAudioRenderer() on behalf of the |
| 356 // provided filter. | 334 // provided filter. |
| 357 ACTION_P(DisableAudioRenderer, filter) { | 335 ACTION_P(DisableAudioRenderer, filter) { |
| 358 filter->host()->DisableAudioRenderer(); | 336 filter->host()->DisableAudioRenderer(); |
| 359 } | 337 } |
| 360 | 338 |
| 361 } // namespace media | 339 } // namespace media |
| 362 | 340 |
| 363 #endif // MEDIA_BASE_MOCK_FILTERS_H_ | 341 #endif // MEDIA_BASE_MOCK_FILTERS_H_ |
| OLD | NEW |