Index: media/filters/ffmpeg_demuxer_factory.cc |
diff --git a/media/filters/ffmpeg_demuxer_factory.cc b/media/filters/ffmpeg_demuxer_factory.cc |
index 626cdedb82fcef25d3355bd265dc2f0a5be9c80c..dddda76b217c1862510b09701eb5e7f91ea277b8 100644 |
--- a/media/filters/ffmpeg_demuxer_factory.cc |
+++ b/media/filters/ffmpeg_demuxer_factory.cc |
@@ -4,6 +4,7 @@ |
#include "base/bind.h" |
#include "base/message_loop.h" |
+#include "googleurl/src/gurl.h" |
#include "media/filters/ffmpeg_demuxer.h" |
#include "media/filters/ffmpeg_demuxer_factory.h" |
@@ -28,14 +29,14 @@ static void DemuxerInitDone(const DemuxerFactory::BuildCallback& cb, |
static void InitializeDemuxerBasedOnDataSourceStatus( |
const DemuxerFactory::BuildCallback& cb, |
- MessageLoop* loop, |
+ MessageLoop* loop, bool local_source, |
PipelineStatus status, DataSource* data_source) { |
if (status != PIPELINE_OK) { |
cb.Run(status, NULL); |
return; |
} |
DCHECK(data_source); |
- scoped_refptr<FFmpegDemuxer> demuxer = new FFmpegDemuxer(loop); |
+ scoped_refptr<FFmpegDemuxer> demuxer = new FFmpegDemuxer(loop, local_source); |
demuxer->Initialize( |
data_source, |
base::Bind(&DemuxerInitDone, cb, demuxer)); |
@@ -43,9 +44,12 @@ static void InitializeDemuxerBasedOnDataSourceStatus( |
void FFmpegDemuxerFactory::Build(const std::string& url, |
const BuildCallback& cb) { |
+ GURL gurl = GURL(url); |
+ bool local_source = !gurl.SchemeIs("http") && !gurl.SchemeIs("https"); |
data_source_factory_->Build( |
url, |
- base::Bind(&InitializeDemuxerBasedOnDataSourceStatus, cb, loop_)); |
+ base::Bind(&InitializeDemuxerBasedOnDataSourceStatus, |
+ cb, loop_, local_source)); |
} |
DemuxerFactory* FFmpegDemuxerFactory::Clone() const { |