Remove DemuxerFactory and URL parameter from Pipeline.
Since Demuxers still require asynchronous initialization DemuxerFactory::Build() has been replaced with Demuxer::Initialize(). Since FFmpegDemuxer is the only Demuxer requiring a DataSource it is now passed in via FFmpegDemuxer's constructor.
Now that Demuxer::set_host() is guaranteed to be called prior to initialization we're able to tighten up some code inside ChunkDemuxer. We should still nuke set_host() (see bug 111585) but I'll leave that for a future CL.
BUG=110804, 110809
Review URL: https://chromiumcodereview.appspot.com/9860027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130165 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
index 6283c65..146f2839 100644
--- a/webkit/media/webmediaplayer_impl.cc
+++ b/webkit/media/webmediaplayer_impl.cc
@@ -221,7 +221,7 @@
if (BuildMediaStreamCollection(url, media_stream_client_,
message_loop_factory_.get(),
filter_collection_.get())) {
- StartPipeline(gurl);
+ StartPipeline();
return;
}
@@ -231,8 +231,8 @@
message_loop_factory_.get(),
filter_collection_.get(),
&video_decoder)) {
- StartPipeline(gurl);
proxy_->set_video_decoder(video_decoder);
+ StartPipeline();
return;
}
@@ -827,20 +827,24 @@
return;
}
+ // TODO(scherkus): this is leftover from removing DemuxerFactory -- instead
+ // our DataSource should report this information. See http://crbug.com/120426
+ bool local_source = !gurl.SchemeIs("http") && !gurl.SchemeIs("https");
+
scoped_refptr<media::FFmpegVideoDecoder> video_decoder;
BuildDefaultCollection(proxy_->data_source(),
+ local_source,
message_loop_factory_.get(),
filter_collection_.get(),
&video_decoder);
proxy_->set_video_decoder(video_decoder);
- StartPipeline(gurl);
+ StartPipeline();
}
-void WebMediaPlayerImpl::StartPipeline(const GURL& gurl) {
+void WebMediaPlayerImpl::StartPipeline() {
started_ = true;
pipeline_->Start(
filter_collection_.Pass(),
- gurl.spec(),
base::Bind(&WebMediaPlayerProxy::PipelineEndedCallback, proxy_.get()),
base::Bind(&WebMediaPlayerProxy::PipelineErrorCallback, proxy_.get()),
base::Bind(&WebMediaPlayerProxy::NetworkEventCallback, proxy_.get()),