summaryrefslogtreecommitdiffstats
path: root/media/base
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-10 19:09:28 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-10 19:09:28 +0000
commitd77ed9ef01dd6508ed6f153acbe71f95b9f38480 (patch)
treee4da61afea4578827b57e411e284462e500293ee /media/base
parent8d439a694371cfdd95c0c03ff452c9096d3cc7f3 (diff)
downloadchromium_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.h35
-rw-r--r--media/base/pipeline.h7
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.