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

Unified Diff: media/base/pipeline_impl_unittest.cc

Issue 20326: Fixes a bug in the media pipeline that resulted in the video dimensions never... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/base/pipeline_impl.cc ('k') | media/filters/file_data_source_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/pipeline_impl_unittest.cc
===================================================================
--- media/base/pipeline_impl_unittest.cc (revision 9872)
+++ media/base/pipeline_impl_unittest.cc (working copy)
@@ -24,13 +24,33 @@
using media::MockAudioRenderer;
using media::MockDataSource;
using media::MockDemuxer;
+using media::MockFilterConfig;
+using media::MockVideoDecoder;
+using media::MockVideoRenderer;
using media::PipelineImpl;
+namespace {
+
+void AddAllMockFilters(FilterFactoryCollection* factories,
+ const MockFilterConfig* config) {
+ factories->AddFactory(MockDataSource::CreateFactory(config));
+ factories->AddFactory(MockDemuxer::CreateFactory(config));
+ factories->AddFactory(MockAudioDecoder::CreateFactory(config));
+ factories->AddFactory(MockAudioRenderer::CreateFactory(config));
+ factories->AddFactory(MockVideoDecoder::CreateFactory(config));
+ factories->AddFactory(MockVideoRenderer::CreateFactory(config));
+}
+
+} // namespace
+
+// TODO(ralphl): Get rid of single character variable names in these tests.
TEST(PipelineImplTest, Initialization) {
std::string u("");
PipelineImpl p;
InitializationHelper h;
- h.Start(&p, MockDataSource::CreateFactory(media::MOCK_FILTER_NEVER_INIT), u);
+ MockFilterConfig config;
+ config.data_source_behavior = media::MOCK_DATA_SOURCE_NEVER_INIT;
+ h.Start(&p, MockDataSource::CreateFactory(&config), u);
h.TimedWait(base::TimeDelta::FromMilliseconds(300));
EXPECT_TRUE(h.waiting_for_callback());
EXPECT_FALSE(p.IsInitialized());
@@ -40,23 +60,32 @@
EXPECT_FALSE(h.callback_success_status());
EXPECT_TRUE(media::PIPELINE_OK == p.GetError());
- h.Start(&p, MockDataSource::CreateFactory(media::MOCK_FILTER_TASK_INIT), u);
+ config.data_source_behavior = media::MOCK_DATA_SOURCE_TASK_INIT;
+ h.Start(&p, MockDataSource::CreateFactory(&config), u);
h.TimedWait(base::TimeDelta::FromSeconds(5));
EXPECT_FALSE(h.waiting_for_callback());
EXPECT_FALSE(h.callback_success_status());
EXPECT_FALSE(p.IsInitialized());
EXPECT_FALSE(media::PIPELINE_OK == p.GetError());
p.Stop();
+
+ config.data_source_behavior = media::MOCK_DATA_SOURCE_ERROR_IN_INIT;
+ h.Start(&p, MockDataSource::CreateFactory(&config), u);
+ h.TimedWait(base::TimeDelta::FromSeconds(5));
+ EXPECT_FALSE(h.waiting_for_callback());
+ EXPECT_FALSE(h.callback_success_status());
+ EXPECT_FALSE(p.IsInitialized());
+ EXPECT_FALSE(media::PIPELINE_OK == p.GetError());
+ p.Stop();
}
-TEST(PipelineImplTest, FullMockPipeline) {
+TEST(PipelineImplTest, MockAudioPipeline) {
std::string url("");
PipelineImpl p;
+ MockFilterConfig config;
+ config.set_no_video();
scoped_refptr<FilterFactoryCollection> c = new FilterFactoryCollection();
- c->AddFactory(MockDataSource::CreateFactory(media::MOCK_FILTER_NORMAL_INIT));
- c->AddFactory(MockDemuxer::CreateFactory());
- c->AddFactory(MockAudioDecoder::CreateFactory());
- c->AddFactory(MockAudioRenderer::CreateFactory());
+ AddAllMockFilters(c, &config);
InitializationHelper h;
h.Start(&p, c, url);
h.TimedWait(base::TimeDelta::FromSeconds(5));
@@ -64,8 +93,36 @@
EXPECT_TRUE(h.callback_success_status());
EXPECT_TRUE(p.IsInitialized());
EXPECT_TRUE(media::PIPELINE_OK == p.GetError());
+ size_t width, height;
+ p.GetVideoSize(&width, &height);
+ EXPECT_EQ(0u, width);
+ EXPECT_EQ(0u, height);
p.SetPlaybackRate(1.0f);
p.SetVolume(0.5f);
p.Stop();
EXPECT_FALSE(p.IsInitialized());
}
+
+TEST(PipelineImplTest, MockVideoPipeline) {
+ std::string url("");
+ PipelineImpl p;
+ scoped_refptr<FilterFactoryCollection> c = new FilterFactoryCollection();
+ MockFilterConfig config;
+ AddAllMockFilters(c, &config);
+ InitializationHelper h;
+ h.Start(&p, c, url);
+ h.TimedWait(base::TimeDelta::FromSeconds(5));
+ EXPECT_FALSE(h.waiting_for_callback());
+ EXPECT_TRUE(h.callback_success_status());
+ EXPECT_TRUE(p.IsInitialized());
+ EXPECT_TRUE(media::PIPELINE_OK == p.GetError());
+ size_t width, height;
+ p.GetVideoSize(&width, &height);
+ EXPECT_EQ(config.video_width, width);
+ EXPECT_EQ(config.video_height, height);
+ p.SetPlaybackRate(1.0f);
+ p.SetVolume(0.5f);
+ p.Stop();
+ EXPECT_FALSE(p.IsInitialized());
+}
+
« no previous file with comments | « media/base/pipeline_impl.cc ('k') | media/filters/file_data_source_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698