diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-10 19:09:28 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-10 19:09:28 +0000 |
commit | d77ed9ef01dd6508ed6f153acbe71f95b9f38480 (patch) | |
tree | e4da61afea4578827b57e411e284462e500293ee /media/base | |
parent | 8d439a694371cfdd95c0c03ff452c9096d3cc7f3 (diff) | |
download | chromium_src-d77ed9ef01dd6508ed6f153acbe71f95b9f38480.zip chromium_src-d77ed9ef01dd6508ed6f153acbe71f95b9f38480.tar.gz chromium_src-d77ed9ef01dd6508ed6f153acbe71f95b9f38480.tar.bz2 |
Checking in media::FFmpegGlue, media::FFmpegDemuxer and tests.
Fixes build break by including FFmpeg dependency for media project in chrome.sln.
This is a second attempt at committing the following changelists:
http://codereview.chromium.org/39295
http://codereview.chromium.org/28165
TBR=darin
Review URL: http://codereview.chromium.org/42029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11356 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base')
-rw-r--r-- | media/base/mock_media_filters.h | 35 | ||||
-rw-r--r-- | media/base/pipeline.h | 7 |
2 files changed, 35 insertions, 7 deletions
diff --git a/media/base/mock_media_filters.h b/media/base/mock_media_filters.h index 079c681..0620eff 100644 --- a/media/base/mock_media_filters.h +++ b/media/base/mock_media_filters.h @@ -37,6 +37,7 @@ enum MockDataSourceBehavior { struct MockFilterConfig { MockFilterConfig() : data_source_behavior(MOCK_DATA_SOURCE_NORMAL_INIT), + data_source_value('!'), has_video(true), video_width(1280u), video_height(720u), @@ -52,6 +53,7 @@ struct MockFilterConfig { } MockDataSourceBehavior data_source_behavior; + char data_source_value; bool has_video; size_t video_width; size_t video_height; @@ -76,7 +78,16 @@ class MockDataSource : public DataSource { explicit MockDataSource(const MockFilterConfig* config) : config_(config), - position_(0) { + position_(0), + deleted_(NULL) { + } + + MockDataSource(const MockFilterConfig* config, bool* deleted) + : config_(config), + position_(0), + deleted_(deleted) { + EXPECT_TRUE(deleted); + EXPECT_FALSE(*deleted); } // Implementation of MediaFilter. @@ -121,7 +132,7 @@ class MockDataSource : public DataSource { if (size < read) { read = size; } - memset(data, 0, read); + memset(data, config_->data_source_value, read); return read; } @@ -131,8 +142,6 @@ class MockDataSource : public DataSource { } virtual bool SetPosition(int64 position) { - EXPECT_GE(position, 0u); - EXPECT_LE(position, config_->media_total_bytes); if (position < 0u || position > config_->media_total_bytes) { return false; } @@ -141,12 +150,22 @@ class MockDataSource : public DataSource { } virtual bool GetSize(int64* size_out) { - *size_out = config_->media_total_bytes; + if (config_->media_total_bytes >= 0) { + *size_out = config_->media_total_bytes; + return true; + } return false; } + // Simple position getter for unit testing. + int64 position() const { return position_; } + private: - virtual ~MockDataSource() {} + virtual ~MockDataSource() { + if (deleted_) { + *deleted_ = true; + } + } void TaskBehavior() { switch (config_->data_source_behavior) { @@ -166,6 +185,10 @@ class MockDataSource : public DataSource { int64 position_; MediaFormat media_format_; + // Set to true inside the destructor. Used in FFmpegGlue unit tests for + // testing proper reference counting. + bool* deleted_; + DISALLOW_COPY_AND_ASSIGN(MockDataSource); }; diff --git a/media/base/pipeline.h b/media/base/pipeline.h index da3dfc4..58883cc 100644 --- a/media/base/pipeline.h +++ b/media/base/pipeline.h @@ -31,7 +31,12 @@ enum PipelineError { PIPELINE_ERROR_REQUIRED_FILTER_MISSING, PIPELINE_ERROR_OUT_OF_MEMORY, PIPELINE_ERROR_COULD_NOT_RENDER, - PIPELINE_ERROR_READ + PIPELINE_ERROR_READ, + + // Demuxer related errors. + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_PARSE, + DEMUXER_ERROR_NO_SUPPORTED_STREAMS, }; // Base class for Pipeline class which allows for read-only access to members. |