Chromium Code Reviews| Index: media/base/pipeline.cc |
| diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc |
| index 2cb87f00d3890569af7602262bcffba8c03cf799..dd4a408616508b3987b4da10bbbb8ba7414f8476 100644 |
| --- a/media/base/pipeline.cc |
| +++ b/media/base/pipeline.cc |
| @@ -19,6 +19,7 @@ |
| #include "media/base/audio_decoder.h" |
| #include "media/base/audio_renderer.h" |
| #include "media/base/clock.h" |
| +#include "media/base/demuxer_stream.h" |
|
acolwell GONE FROM CHROMIUM
2012/10/15 21:00:07
nit: why is this needed now?
xhwang
2012/10/15 22:52:23
Removed.
|
| #include "media/base/filter_collection.h" |
| #include "media/base/media_log.h" |
| #include "media/base/video_decoder.h" |
| @@ -264,7 +265,6 @@ const char* Pipeline::GetStateString(State state) { |
| switch (state) { |
| RETURN_STRING(kCreated); |
| RETURN_STRING(kInitDemuxer); |
| - RETURN_STRING(kInitAudioDecoder); |
| RETURN_STRING(kInitAudioRenderer); |
| RETURN_STRING(kInitVideoRenderer); |
| RETURN_STRING(kInitPrerolling); |
| @@ -293,14 +293,11 @@ Pipeline::State Pipeline::GetNextState() const { |
| case kInitDemuxer: |
| if (demuxer_->GetStream(DemuxerStream::AUDIO)) |
| - return kInitAudioDecoder; |
| + return kInitAudioRenderer; |
| if (demuxer_->GetStream(DemuxerStream::VIDEO)) |
| return kInitVideoRenderer; |
| return kInitPrerolling; |
| - case kInitAudioDecoder: |
| - return kInitAudioRenderer; |
| - |
| case kInitAudioRenderer: |
| if (demuxer_->GetStream(DemuxerStream::VIDEO)) |
| return kInitVideoRenderer; |
| @@ -464,9 +461,6 @@ void Pipeline::StateTransitionTask(PipelineStatus status) { |
| case kInitDemuxer: |
| return InitializeDemuxer(done_cb); |
| - case kInitAudioDecoder: |
| - return InitializeAudioDecoder(done_cb); |
| - |
| case kInitAudioRenderer: |
| return InitializeAudioRenderer(done_cb); |
| @@ -633,7 +627,6 @@ void Pipeline::OnStopCompleted(PipelineStatus status) { |
| SetState(kStopped); |
| pending_callbacks_.reset(); |
| filter_collection_.reset(); |
| - audio_decoder_ = NULL; |
| audio_renderer_ = NULL; |
| video_renderer_ = NULL; |
| demuxer_ = NULL; |
| @@ -886,31 +879,25 @@ void Pipeline::InitializeDemuxer(const PipelineStatusCB& done_cb) { |
| demuxer_->Initialize(this, done_cb); |
| } |
| -void Pipeline::InitializeAudioDecoder(const PipelineStatusCB& done_cb) { |
| +void Pipeline::InitializeAudioRenderer(const PipelineStatusCB& done_cb) { |
| DCHECK(message_loop_->BelongsToCurrentThread()); |
| scoped_refptr<DemuxerStream> stream = |
| demuxer_->GetStream(DemuxerStream::AUDIO); |
| DCHECK(stream); |
| - filter_collection_->SelectAudioDecoder(&audio_decoder_); |
| - audio_decoder_->Initialize( |
| - stream, done_cb, base::Bind(&Pipeline::OnUpdateStatistics, this)); |
| -} |
| - |
| -void Pipeline::InitializeAudioRenderer(const PipelineStatusCB& done_cb) { |
| - DCHECK(message_loop_->BelongsToCurrentThread()); |
| - DCHECK(audio_decoder_); |
| - |
| filter_collection_->SelectAudioRenderer(&audio_renderer_); |
| audio_renderer_->Initialize( |
| - audio_decoder_, |
| + stream, |
| + *filter_collection_->GetAudioDecoders(), |
| done_cb, |
| + base::Bind(&Pipeline::OnUpdateStatistics, this), |
| base::Bind(&Pipeline::OnAudioUnderflow, this), |
| base::Bind(&Pipeline::OnAudioTimeUpdate, this), |
| base::Bind(&Pipeline::OnAudioRendererEnded, this), |
| base::Bind(&Pipeline::OnAudioDisabled, this), |
| base::Bind(&Pipeline::SetError, this)); |
| + filter_collection_->GetAudioDecoders()->clear(); |
| } |
| void Pipeline::InitializeVideoRenderer(const PipelineStatusCB& done_cb) { |