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

Unified Diff: media/base/pipeline.cc

Issue 11148011: Move audio decoder initialization to AudioRendererImpl. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Update player_x11 and player_wtl Created 8 years, 2 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 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) {

Powered by Google App Engine
This is Rietveld 408576698