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

Unified Diff: media/base/pipeline.cc

Issue 10918022: Move AudioDecoder initialization into AudioRenderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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/base/pipeline.cc
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc
index 7691e52e71084cc137970f0e8038f5f31b467b54..f004efb7c0ddee64c54706686b11b7aa6021416e 100644
--- a/media/base/pipeline.cc
+++ b/media/base/pipeline.cc
@@ -260,7 +260,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);
@@ -289,14 +288,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;
@@ -456,9 +452,6 @@ void Pipeline::StateTransitionTask(PipelineStatus status) {
case kInitDemuxer:
return InitializeDemuxer(done_cb);
- case kInitAudioDecoder:
- return InitializeAudioDecoder(done_cb);
-
case kInitAudioRenderer:
return InitializeAudioRenderer(done_cb);
@@ -625,7 +618,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;
@@ -883,31 +875,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) {

Powered by Google App Engine
This is Rietveld 408576698