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_, |
done_cb, |
base::Bind(&Pipeline::OnUpdateStatistics, this), |
base::Bind(&Pipeline::OnAudioUnderflow, this), |