Chromium Code Reviews| Index: media/base/pipeline.cc | 
| diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc | 
| index fd8b902d7f3808bb296fae869dde8e0aefee8303..36f520e09ad820a6dd2da8fbab76af211ca89b0e 100644 | 
| --- a/media/base/pipeline.cc | 
| +++ b/media/base/pipeline.cc | 
| @@ -102,11 +102,13 @@ Pipeline::~Pipeline() { | 
| media_log_->CreateEvent(MediaLogEvent::PIPELINE_DESTROYED)); | 
| } | 
| -void Pipeline::Start(scoped_ptr<FilterCollection> collection, | 
| - const PipelineStatusCB& ended_cb, | 
| - const PipelineStatusCB& error_cb, | 
| - const PipelineStatusCB& seek_cb, | 
| - const BufferingStateCB& buffering_state_cb) { | 
| +void Pipeline::Start( | 
| + scoped_ptr<FilterCollection> collection, | 
| + const PipelineStatusCB& ended_cb, | 
| + const PipelineStatusCB& error_cb, | 
| + const PipelineStatusCB& seek_cb, | 
| + const BufferingStateCB& buffering_state_cb, | 
| + const RequestDecryptorNotificationCB& request_decryptor_notification_cb) { | 
| base::AutoLock auto_lock(lock_); | 
| CHECK(!running_) << "Media pipeline is already running"; | 
| DCHECK(!buffering_state_cb.is_null()); | 
| @@ -114,7 +116,8 @@ void Pipeline::Start(scoped_ptr<FilterCollection> collection, | 
| running_ = true; | 
| message_loop_->PostTask(FROM_HERE, base::Bind( | 
| &Pipeline::StartTask, this, base::Passed(&collection), | 
| - ended_cb, error_cb, seek_cb, buffering_state_cb)); | 
| + ended_cb, error_cb, seek_cb, buffering_state_cb, | 
| + request_decryptor_notification_cb)); | 
| } | 
| void Pipeline::Stop(const base::Closure& stop_cb) { | 
| @@ -693,11 +696,13 @@ void Pipeline::OnUpdateStatistics(const PipelineStatistics& stats) { | 
| statistics_.video_frames_dropped += stats.video_frames_dropped; | 
| } | 
| -void Pipeline::StartTask(scoped_ptr<FilterCollection> filter_collection, | 
| - const PipelineStatusCB& ended_cb, | 
| - const PipelineStatusCB& error_cb, | 
| - const PipelineStatusCB& seek_cb, | 
| - const BufferingStateCB& buffering_state_cb) { | 
| +void Pipeline::StartTask( | 
| + scoped_ptr<FilterCollection> filter_collection, | 
| + const PipelineStatusCB& ended_cb, | 
| + const PipelineStatusCB& error_cb, | 
| + const PipelineStatusCB& seek_cb, | 
| + const BufferingStateCB& buffering_state_cb, | 
| + const RequestDecryptorNotificationCB& request_decryptor_notification_cb) { | 
| DCHECK(message_loop_->BelongsToCurrentThread()); | 
| CHECK_EQ(kCreated, state_) | 
| << "Media pipeline cannot be started more than once"; | 
| @@ -707,6 +712,7 @@ void Pipeline::StartTask(scoped_ptr<FilterCollection> filter_collection, | 
| error_cb_ = error_cb; | 
| seek_cb_ = seek_cb; | 
| buffering_state_cb_ = buffering_state_cb; | 
| + request_decryptor_notification_cb_ = request_decryptor_notification_cb; | 
| StateTransitionTask(PIPELINE_OK); | 
| } | 
| @@ -889,6 +895,7 @@ void Pipeline::InitializeAudioRenderer(const PipelineStatusCB& done_cb) { | 
| audio_renderer_->Initialize( | 
| stream, | 
| *filter_collection_->GetAudioDecoders(), | 
| + request_decryptor_notification_cb_, | 
| 
 
scherkus (not reviewing)
2012/12/11 20:52:15
why does this have to go in via Initialize() versu
 
xhwang
2012/12/12 23:43:28
That's actually my first attempt. It didn't work w
 
 | 
| done_cb, | 
| base::Bind(&Pipeline::OnUpdateStatistics, this), | 
| base::Bind(&Pipeline::OnAudioUnderflow, this), |