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

Unified Diff: media/base/pipeline.cc

Issue 11492003: Encrypted Media: Support Audio Decrypt-Only. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 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),

Powered by Google App Engine
This is Rietveld 408576698