Index: media/base/pipeline.cc |
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc |
index 0f268c967efeb3f2759af823991d92d0adec412e..bc3c749d6ef16e756b33f9061435484df4e49563 100644 |
--- a/media/base/pipeline.cc |
+++ b/media/base/pipeline.cc |
@@ -14,9 +14,12 @@ |
#include "base/stl_util.h" |
#include "base/string_util.h" |
#include "base/synchronization/condition_variable.h" |
+#include "media/base/audio_decoder.h" |
#include "media/base/clock.h" |
#include "media/base/composite_filter.h" |
+#include "media/base/composite_filter.h" |
#include "media/base/filter_collection.h" |
+#include "media/base/filters.h" |
#include "media/base/media_log.h" |
namespace media { |
@@ -54,11 +57,10 @@ media::PipelineStatus PipelineStatusNotification::status() { |
return status_; |
} |
-class Pipeline::PipelineInitState { |
- public: |
- scoped_refptr<AudioDecoder> audio_decoder_; |
- scoped_refptr<VideoDecoder> video_decoder_; |
- scoped_refptr<CompositeFilter> composite_; |
+struct Pipeline::PipelineInitState { |
+ scoped_refptr<AudioDecoder> audio_decoder; |
+ scoped_refptr<VideoDecoder> video_decoder; |
+ scoped_refptr<CompositeFilter> composite; |
}; |
Pipeline::Pipeline(MessageLoop* message_loop, MediaLog* media_log) |
@@ -621,8 +623,8 @@ void Pipeline::StartTask(scoped_ptr<FilterCollection> filter_collection, |
// Kick off initialization. |
pipeline_init_state_.reset(new PipelineInitState()); |
- pipeline_init_state_->composite_ = new CompositeFilter(message_loop_); |
- pipeline_init_state_->composite_->set_host(this); |
+ pipeline_init_state_->composite = new CompositeFilter(message_loop_); |
+ pipeline_init_state_->composite->set_host(this); |
SetState(kInitDemuxer); |
InitializeDemuxer(); |
@@ -652,8 +654,8 @@ void Pipeline::InitializeTask(PipelineStatus last_stage_status) { |
// Currently only VideoDecoders have a recoverable error code. |
if (state_ == kInitVideoDecoder && |
last_stage_status == DECODER_ERROR_NOT_SUPPORTED) { |
- pipeline_init_state_->composite_->RemoveFilter( |
- pipeline_init_state_->video_decoder_.get()); |
+ pipeline_init_state_->composite->RemoveFilter( |
+ pipeline_init_state_->video_decoder.get()); |
state_ = kInitAudioRenderer; |
} else { |
SetError(last_stage_status); |
@@ -683,7 +685,7 @@ void Pipeline::InitializeTask(PipelineStatus last_stage_status) { |
SetState(kInitAudioRenderer); |
// Returns false if there's no audio stream. |
- if (InitializeAudioRenderer(pipeline_init_state_->audio_decoder_)) { |
+ if (InitializeAudioRenderer(pipeline_init_state_->audio_decoder)) { |
base::AutoLock auto_lock(lock_); |
has_audio_ = true; |
return; |
@@ -701,7 +703,7 @@ void Pipeline::InitializeTask(PipelineStatus last_stage_status) { |
// Assuming video decoder was created, create video renderer. |
if (state_ == kInitVideoDecoder) { |
SetState(kInitVideoRenderer); |
- if (InitializeVideoRenderer(pipeline_init_state_->video_decoder_)) { |
+ if (InitializeVideoRenderer(pipeline_init_state_->video_decoder)) { |
base::AutoLock auto_lock(lock_); |
has_video_ = true; |
return; |
@@ -717,7 +719,7 @@ void Pipeline::InitializeTask(PipelineStatus last_stage_status) { |
// Clear the collection of filters. |
filter_collection_->Clear(); |
- pipeline_filter_ = pipeline_init_state_->composite_; |
+ pipeline_filter_ = pipeline_init_state_->composite; |
// Clear init state since we're done initializing. |
pipeline_init_state_.reset(); |
@@ -1029,7 +1031,7 @@ void Pipeline::FilterStateTransitionTask() { |
// Start monitoring rate of downloading. |
int bitrate = 0; |
- if (demuxer_.get()) { |
+ if (demuxer_) { |
bitrate = demuxer_->GetBitrate(); |
local_source_ = demuxer_->IsLocalSource(); |
streaming_ = !demuxer_->IsSeekable(); |
@@ -1116,7 +1118,7 @@ void Pipeline::FinishDestroyingFiltersTask() { |
} |
bool Pipeline::PrepareFilter(scoped_refptr<Filter> filter) { |
- bool ret = pipeline_init_state_->composite_->AddFilter(filter.get()); |
+ bool ret = pipeline_init_state_->composite->AddFilter(filter.get()); |
if (!ret) |
SetError(PIPELINE_ERROR_INITIALIZATION_FAILED); |
return ret; |
@@ -1171,19 +1173,14 @@ bool Pipeline::InitializeAudioDecoder( |
if (!stream) |
return false; |
- scoped_refptr<AudioDecoder> audio_decoder; |
- filter_collection_->SelectAudioDecoder(&audio_decoder); |
+ filter_collection_->SelectAudioDecoder(&pipeline_init_state_->audio_decoder); |
- if (!audio_decoder) { |
+ if (!pipeline_init_state_->audio_decoder) { |
SetError(PIPELINE_ERROR_REQUIRED_FILTER_MISSING); |
return false; |
} |
- if (!PrepareFilter(audio_decoder)) |
- return false; |
- |
- pipeline_init_state_->audio_decoder_ = audio_decoder; |
- audio_decoder->Initialize( |
+ pipeline_init_state_->audio_decoder->Initialize( |
stream, |
base::Bind(&Pipeline::OnFilterInitialize, this), |
base::Bind(&Pipeline::OnUpdateStatistics, this)); |
@@ -1214,7 +1211,7 @@ bool Pipeline::InitializeVideoDecoder( |
if (!PrepareFilter(video_decoder_)) |
return false; |
- pipeline_init_state_->video_decoder_ = video_decoder_; |
+ pipeline_init_state_->video_decoder = video_decoder_; |
video_decoder_->Initialize( |
stream, |
base::Bind(&Pipeline::OnFilterInitialize, this), |
@@ -1300,7 +1297,7 @@ void Pipeline::TearDownPipeline() { |
case kInitVideoDecoder: |
case kInitVideoRenderer: |
// Make it look like initialization was successful. |
- pipeline_filter_ = pipeline_init_state_->composite_; |
+ pipeline_filter_ = pipeline_init_state_->composite; |
pipeline_init_state_.reset(); |
filter_collection_.reset(); |