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

Unified Diff: media/filters/ffmpeg_demuxer.cc

Issue 9860027: Remove DemuxerFactory and URL parameter from Pipeline. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: added some todos Created 8 years, 9 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
Index: media/filters/ffmpeg_demuxer.cc
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index 9429b0df3e4d27161a5affb1b5d11430aedd6b91..d6acd771c8a0586e0020a1d6192ad516e4151505 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -276,10 +276,14 @@ base::TimeDelta FFmpegDemuxerStream::ConvertStreamTimestamp(
//
// FFmpegDemuxer
//
-FFmpegDemuxer::FFmpegDemuxer(MessageLoop* message_loop, bool local_source)
+FFmpegDemuxer::FFmpegDemuxer(
+ MessageLoop* message_loop,
+ const scoped_refptr<DataSource>& data_source,
+ bool local_source)
: message_loop_(message_loop),
local_source_(local_source),
format_context_(NULL),
+ data_source_(data_source),
read_event_(false, false),
read_has_failed_(false),
last_read_bytes_(0),
@@ -290,6 +294,7 @@ FFmpegDemuxer::FFmpegDemuxer(MessageLoop* message_loop, bool local_source)
start_time_(kNoTimestamp()),
audio_disabled_(false) {
DCHECK(message_loop_);
+ DCHECK(data_source_);
}
FFmpegDemuxer::~FFmpegDemuxer() {
@@ -336,8 +341,8 @@ void FFmpegDemuxer::OnAudioRendererDisabled() {
void FFmpegDemuxer::set_host(DemuxerHost* demuxer_host) {
Demuxer::set_host(demuxer_host);
- if (data_source_)
- data_source_->set_host(demuxer_host);
+ data_source_->set_host(demuxer_host);
+
if (max_duration_.InMicroseconds() >= 0)
acolwell GONE FROM CHROMIUM 2012/03/27 20:11:35 I think all the deferred calls below shouldn't be
scherkus (not reviewing) 2012/03/27 20:44:09 woah! ended up cleaning this code up a bit more b
host()->SetDuration(max_duration_);
if (read_position_ > 0)
@@ -346,12 +351,9 @@ void FFmpegDemuxer::set_host(DemuxerHost* demuxer_host) {
host()->OnDemuxerError(deferred_status_);
}
-void FFmpegDemuxer::Initialize(DataSource* data_source,
- const PipelineStatusCB& status_cb) {
- message_loop_->PostTask(
- FROM_HERE,
- base::Bind(&FFmpegDemuxer::InitializeTask, this,
- make_scoped_refptr(data_source), status_cb));
+void FFmpegDemuxer::Initialize(const PipelineStatusCB& status_cb) {
+ message_loop_->PostTask(FROM_HERE, base::Bind(
+ &FFmpegDemuxer::InitializeTask, this, status_cb));
}
scoped_refptr<DemuxerStream> FFmpegDemuxer::GetStream(
@@ -443,14 +445,9 @@ MessageLoop* FFmpegDemuxer::message_loop() {
return message_loop_;
}
-void FFmpegDemuxer::InitializeTask(DataSource* data_source,
- const PipelineStatusCB& status_cb) {
+void FFmpegDemuxer::InitializeTask(const PipelineStatusCB& status_cb) {
DCHECK_EQ(MessageLoop::current(), message_loop_);
- data_source_ = data_source;
- if (host())
- data_source_->set_host(host());
-
// Add ourself to Protocol list and get our unique key.
std::string key = FFmpegGlue::GetInstance()->AddProtocol(this);

Powered by Google App Engine
This is Rietveld 408576698