Index: media/filters/chunk_demuxer.cc |
diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc |
index 452d5353f26ef4abecf6277d92c436e54ab3d681..d3f532cc9fbb13a601ec18ef57ccef79ed50a859 100644 |
--- a/media/filters/chunk_demuxer.cc |
+++ b/media/filters/chunk_demuxer.cc |
@@ -333,6 +333,7 @@ void ChunkDemuxerStream::CreateReadDoneClosures_Locked(ClosureQueue* closures) { |
ChunkDemuxer::ChunkDemuxer(ChunkDemuxerClient* client) |
: state_(WAITING_FOR_INIT), |
+ host_(NULL), |
client_(client), |
buffered_bytes_(0), |
seek_waits_for_data_(true) { |
@@ -343,11 +344,13 @@ ChunkDemuxer::~ChunkDemuxer() { |
DCHECK_NE(state_, INITIALIZED); |
} |
-void ChunkDemuxer::Initialize(const PipelineStatusCB& cb) { |
+void ChunkDemuxer::Initialize(DemuxerHost* host, |
+ const PipelineStatusCB& cb) { |
DVLOG(1) << "Init()"; |
{ |
base::AutoLock auto_lock(lock_); |
DCHECK_EQ(state_, WAITING_FOR_INIT); |
+ host_ = host; |
ChangeState_Locked(INITIALIZING); |
init_cb_ = cb; |
@@ -537,13 +540,13 @@ bool ChunkDemuxer::AppendData(const uint8* data, size_t length) { |
} |
// Notify the host of 'network activity' because we got data. |
- host()->SetBufferedBytes(buffered_bytes); |
+ host_->SetBufferedBytes(buffered_bytes); |
if (buffered_ts.InSeconds() >= 0) { |
- host()->SetBufferedTime(buffered_ts); |
+ host_->SetBufferedTime(buffered_ts); |
} |
- host()->SetNetworkActivity(true); |
+ host_->SetNetworkActivity(true); |
if (!cb.is_null()) |
cb.Run(PIPELINE_OK); |
@@ -649,7 +652,7 @@ void ChunkDemuxer::ReportError_Locked(PipelineStatus error) { |
} |
base::AutoUnlock auto_unlock(lock_); |
- host()->OnDemuxerError(error); |
+ host_->OnDemuxerError(error); |
} |
void ChunkDemuxer::OnStreamParserInitDone(bool success, |
@@ -662,8 +665,8 @@ void ChunkDemuxer::OnStreamParserInitDone(bool success, |
} |
duration_ = duration; |
- host()->SetDuration(duration_); |
- host()->SetCurrentReadPosition(0); |
+ host_->SetDuration(duration_); |
+ host_->SetCurrentReadPosition(0); |
ChangeState_Locked(INITIALIZED); |
PipelineStatusCB cb; |