Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: media/base/mock_media_filters.h

Issue 42521: Ability for demuxer clients to get to FFmpeg's AVStream object exposed as an ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/base/filters.h ('k') | media/base/pipeline_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
2 // source code is governed by a BSD-style license that can be found in the 2 // source code is governed by a BSD-style license that can be found in the
3 // LICENSE file. 3 // LICENSE file.
4 4
5 #ifndef MEDIA_BASE_MOCK_MEDIA_FILTERS_H_ 5 #ifndef MEDIA_BASE_MOCK_MEDIA_FILTERS_H_
6 #define MEDIA_BASE_MOCK_MEDIA_FILTERS_H_ 6 #define MEDIA_BASE_MOCK_MEDIA_FILTERS_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/waitable_event.h" 10 #include "base/waitable_event.h"
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 188
189 // Set to true inside the destructor. Used in FFmpegGlue unit tests for 189 // Set to true inside the destructor. Used in FFmpegGlue unit tests for
190 // testing proper reference counting. 190 // testing proper reference counting.
191 bool* deleted_; 191 bool* deleted_;
192 192
193 DISALLOW_COPY_AND_ASSIGN(MockDataSource); 193 DISALLOW_COPY_AND_ASSIGN(MockDataSource);
194 }; 194 };
195 195
196 //------------------------------------------------------------------------------ 196 //------------------------------------------------------------------------------
197 197
198 class MockDemuxerStream : public DemuxerStream {
199 public:
200 MockDemuxerStream(const MockFilterConfig* config, bool is_audio) {
201 if (is_audio) {
202 media_format_.SetAsString(MediaFormat::kMimeType,
203 config->compressed_audio_mime_type);
204 } else {
205 media_format_.SetAsString(MediaFormat::kMimeType,
206 config->compressed_video_mime_type);
207 media_format_.SetAsInteger(MediaFormat::kWidth, config->video_width);
208 media_format_.SetAsInteger(MediaFormat::kHeight, config->video_height);
209 }
210 }
211
212 // Implementation of DemuxerStream.
213 virtual const MediaFormat* GetMediaFormat() {
214 return &media_format_;
215 }
216
217 virtual void Read(Assignable<Buffer>* buffer) {
218 NOTREACHED(); // TODO(ralphl): fix me!!
219 }
220
221 private:
222 virtual ~MockDemuxerStream() {}
223
224 MediaFormat media_format_;
225
226 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream);
227 };
228
229 //------------------------------------------------------------------------------
230
198 class MockDemuxer : public Demuxer { 231 class MockDemuxer : public Demuxer {
199 public: 232 public:
200 static FilterFactory* CreateFactory(const MockFilterConfig* config) { 233 static FilterFactory* CreateFactory(const MockFilterConfig* config) {
201 return new FilterFactoryImpl1<MockDemuxer, 234 return new FilterFactoryImpl1<MockDemuxer,
202 const MockFilterConfig*>(config); 235 const MockFilterConfig*>(config);
203 } 236 }
204 237
205 explicit MockDemuxer(const MockFilterConfig* config) 238 explicit MockDemuxer(const MockFilterConfig* config)
206 : config_(config), 239 : config_(config),
207 mock_audio_stream_(config, true), 240 mock_audio_stream_(new MockDemuxerStream(config, true)),
208 mock_video_stream_(config, false) { 241 mock_video_stream_(new MockDemuxerStream(config, false)) {
209 } 242 }
210 243
211 // Implementation of MediaFilter. 244 // Implementation of MediaFilter.
212 virtual void Stop() {} 245 virtual void Stop() {}
213 246
214 // Implementation of Demuxer. 247 // Implementation of Demuxer.
215 virtual bool Initialize(DataSource* data_source) { 248 virtual bool Initialize(DataSource* data_source) {
216 host_->InitializationComplete(); 249 host_->InitializationComplete();
217 return true; 250 return true;
218 } 251 }
219 252
220 virtual size_t GetNumberOfStreams() { 253 virtual size_t GetNumberOfStreams() {
221 size_t num_streams = 0; 254 size_t num_streams = 0;
222 if (config_->has_audio) { 255 if (config_->has_audio) {
223 ++num_streams; 256 ++num_streams;
224 } 257 }
225 if (config_->has_video) { 258 if (config_->has_video) {
226 ++num_streams; 259 ++num_streams;
227 } 260 }
228 return num_streams; 261 return num_streams;
229 } 262 }
230 263
231 virtual DemuxerStream* GetStream(int stream_id) { 264 virtual scoped_refptr<DemuxerStream> GetStream(int stream_id) {
232 switch (stream_id) { 265 switch (stream_id) {
233 case 0: 266 case 0:
234 if (config_->has_audio) { 267 if (config_->has_audio) {
235 return &mock_audio_stream_; 268 return mock_audio_stream_;
236 } else if (config_->has_video) { 269 } else if (config_->has_video) {
237 return &mock_video_stream_; 270 return mock_video_stream_;
238 } 271 }
239 break; 272 break;
240 case 1: 273 case 1:
241 if (config_->has_audio && config_->has_video) { 274 if (config_->has_audio && config_->has_video) {
242 return &mock_video_stream_; 275 return mock_video_stream_;
243 } 276 }
244 break; 277 break;
245 } 278 }
246 ADD_FAILURE(); 279 ADD_FAILURE();
247 return NULL; 280 return NULL;
248 } 281 }
249 282
250 private: 283 private:
251 virtual ~MockDemuxer() {} 284 virtual ~MockDemuxer() {}
252 285
253 // Internal class implements DemuxerStream interface.
254 class MockDemuxerStream : public DemuxerStream {
255 public:
256 MockDemuxerStream(const MockFilterConfig* config, bool is_audio) {
257 if (is_audio) {
258 media_format_.SetAsString(MediaFormat::kMimeType,
259 config->compressed_audio_mime_type);
260 } else {
261 media_format_.SetAsString(MediaFormat::kMimeType,
262 config->compressed_video_mime_type);
263 media_format_.SetAsInteger(MediaFormat::kWidth, config->video_width);
264 media_format_.SetAsInteger(MediaFormat::kHeight, config->video_height);
265 }
266 }
267
268 virtual ~MockDemuxerStream() {}
269
270 // Implementation of DemuxerStream.
271 virtual const MediaFormat* GetMediaFormat() {
272 return &media_format_;
273 }
274
275 virtual void Read(Assignable<Buffer>* buffer) {
276 NOTREACHED(); // TODO(ralphl): fix me!!
277 }
278
279 private:
280 MediaFormat media_format_;
281
282 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream);
283 };
284
285 const MockFilterConfig* config_; 286 const MockFilterConfig* config_;
286 MockDemuxerStream mock_audio_stream_; 287 scoped_refptr<DemuxerStream> mock_audio_stream_;
287 MockDemuxerStream mock_video_stream_; 288 scoped_refptr<DemuxerStream> mock_video_stream_;
288 289
289 DISALLOW_COPY_AND_ASSIGN(MockDemuxer); 290 DISALLOW_COPY_AND_ASSIGN(MockDemuxer);
290 }; 291 };
291 292
292 //------------------------------------------------------------------------------ 293 //------------------------------------------------------------------------------
293 294
294 class MockAudioDecoder : public AudioDecoder { 295 class MockAudioDecoder : public AudioDecoder {
295 public: 296 public:
296 static FilterFactory* CreateFactory(const MockFilterConfig* config) { 297 static FilterFactory* CreateFactory(const MockFilterConfig* config) {
297 return new FilterFactoryImpl1<MockAudioDecoder, 298 return new FilterFactoryImpl1<MockAudioDecoder,
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 base::WaitableEvent event_; 588 base::WaitableEvent event_;
588 bool callback_success_status_; 589 bool callback_success_status_;
589 bool waiting_for_callback_; 590 bool waiting_for_callback_;
590 591
591 DISALLOW_COPY_AND_ASSIGN(InitializationHelper); 592 DISALLOW_COPY_AND_ASSIGN(InitializationHelper);
592 }; 593 };
593 594
594 } // namespace media 595 } // namespace media
595 596
596 #endif // MEDIA_BASE_MOCK_MEDIA_FILTERS_H_ 597 #endif // MEDIA_BASE_MOCK_MEDIA_FILTERS_H_
OLDNEW
« no previous file with comments | « media/base/filters.h ('k') | media/base/pipeline_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698