summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorjrummell <jrummell@chromium.org>2014-09-24 13:49:27 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-24 20:50:05 +0000
commit65b7d2770151a405f9fbb091e81b604920a1f798 (patch)
tree1d487898ee25f030e10a75d4d7d13ab8c42b5ee1 /media
parent8bc9fc166a9f23b90964cbad7e826c295112e222 (diff)
downloadchromium_src-65b7d2770151a405f9fbb091e81b604920a1f798.zip
chromium_src-65b7d2770151a405f9fbb091e81b604920a1f798.tar.gz
chromium_src-65b7d2770151a405f9fbb091e81b604920a1f798.tar.bz2
Pass initial CDM to CreateMediaPlayer()
When creating a MediaPlayer, pass the initial CDM value, if there is one. This may happen if setMediaKeys() has been called before the MediaPlayer object is needed. The initial CDM value may be null. BUG=358271 TEST=existing EME tests still pass Review URL: https://codereview.chromium.org/594713002 Cr-Commit-Position: refs/heads/master@{#296510}
Diffstat (limited to 'media')
-rw-r--r--media/blink/encrypted_media_player_support.h4
-rw-r--r--media/blink/null_encrypted_media_player_support.cc8
-rw-r--r--media/blink/null_encrypted_media_player_support.h4
-rw-r--r--media/blink/webmediaplayer_impl.cc7
-rw-r--r--media/blink/webmediaplayer_impl.h4
-rw-r--r--media/blink/webmediaplayer_params.cc20
-rw-r--r--media/blink/webmediaplayer_params.h10
7 files changed, 26 insertions, 31 deletions
diff --git a/media/blink/encrypted_media_player_support.h b/media/blink/encrypted_media_player_support.h
index b387686..737720d 100644
--- a/media/blink/encrypted_media_player_support.h
+++ b/media/blink/encrypted_media_player_support.h
@@ -46,13 +46,13 @@ class MEDIA_EXPORT EncryptedMediaPlayerSupport {
// Unprefixed API methods.
+ virtual void SetInitialContentDecryptionModule(
+ blink::WebContentDecryptionModule* initial_cdm) = 0;
virtual void SetContentDecryptionModule(
blink::WebContentDecryptionModule* cdm) = 0;
virtual void SetContentDecryptionModule(
blink::WebContentDecryptionModule* cdm,
blink::WebContentDecryptionModuleResult result) = 0;
- virtual void SetContentDecryptionModuleSync(
- blink::WebContentDecryptionModule* cdm) = 0;
// Callback factory and notification methods used by WebMediaPlayerImpl.
diff --git a/media/blink/null_encrypted_media_player_support.cc b/media/blink/null_encrypted_media_player_support.cc
index 035785b..a67893b 100644
--- a/media/blink/null_encrypted_media_player_support.cc
+++ b/media/blink/null_encrypted_media_player_support.cc
@@ -48,6 +48,10 @@ NullEncryptedMediaPlayerSupport::CancelKeyRequest(
return blink::WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported;
}
+void NullEncryptedMediaPlayerSupport::SetInitialContentDecryptionModule(
+ blink::WebContentDecryptionModule* initial_cdm) {
+}
+
void NullEncryptedMediaPlayerSupport::SetContentDecryptionModule(
blink::WebContentDecryptionModule* cdm) {
}
@@ -61,10 +65,6 @@ void NullEncryptedMediaPlayerSupport::SetContentDecryptionModule(
"Null MediaKeys object is not supported.");
}
-void NullEncryptedMediaPlayerSupport::SetContentDecryptionModuleSync(
- blink::WebContentDecryptionModule* cdm) {
-}
-
Demuxer::NeedKeyCB NullEncryptedMediaPlayerSupport::CreateNeedKeyCB() {
return Demuxer::NeedKeyCB();
}
diff --git a/media/blink/null_encrypted_media_player_support.h b/media/blink/null_encrypted_media_player_support.h
index 140bef1..615b893 100644
--- a/media/blink/null_encrypted_media_player_support.h
+++ b/media/blink/null_encrypted_media_player_support.h
@@ -42,13 +42,13 @@ class MEDIA_EXPORT NullEncryptedMediaPlayerSupport
// Unprefixed API methods.
+ virtual void SetInitialContentDecryptionModule(
+ blink::WebContentDecryptionModule* initial_cdm) OVERRIDE;
virtual void SetContentDecryptionModule(
blink::WebContentDecryptionModule* cdm) OVERRIDE;
virtual void SetContentDecryptionModule(
blink::WebContentDecryptionModule* cdm,
blink::WebContentDecryptionModuleResult result) OVERRIDE;
- virtual void SetContentDecryptionModuleSync(
- blink::WebContentDecryptionModule* cdm) OVERRIDE;
// Callback factory and notification methods used by WebMediaPlayerImpl.
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index 0fd74e8..c79ee7a 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -679,13 +679,6 @@ void WebMediaPlayerImpl::setContentDecryptionModule(
encrypted_media_support_->SetContentDecryptionModule(cdm, result);
}
-void WebMediaPlayerImpl::setContentDecryptionModuleSync(
- blink::WebContentDecryptionModule* cdm) {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
-
- encrypted_media_support_->SetContentDecryptionModuleSync(cdm);
-}
-
void WebMediaPlayerImpl::OnPipelineSeeked(bool time_changed,
PipelineStatus status) {
DVLOG(1) << __FUNCTION__ << "(" << time_changed << ", " << status << ")";
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
index bbdf080..3dc778f 100644
--- a/media/blink/webmediaplayer_impl.h
+++ b/media/blink/webmediaplayer_impl.h
@@ -155,14 +155,12 @@ class MEDIA_EXPORT WebMediaPlayerImpl
const blink::WebString& session_id);
// TODO(jrummell): Remove this method once Blink updated to use the other
- // two methods.
+ // method.
virtual void setContentDecryptionModule(
blink::WebContentDecryptionModule* cdm);
virtual void setContentDecryptionModule(
blink::WebContentDecryptionModule* cdm,
blink::WebContentDecryptionModuleResult result);
- virtual void setContentDecryptionModuleSync(
- blink::WebContentDecryptionModule* cdm);
void OnPipelineSeeked(bool time_changed, PipelineStatus status);
void OnPipelineEnded();
diff --git a/media/blink/webmediaplayer_params.cc b/media/blink/webmediaplayer_params.cc
index c157e34..1fd2b8a 100644
--- a/media/blink/webmediaplayer_params.cc
+++ b/media/blink/webmediaplayer_params.cc
@@ -17,12 +17,11 @@ WebMediaPlayerParams::WebMediaPlayerParams(
const AudioHardwareConfig& audio_hardware_config,
const scoped_refptr<MediaLog>& media_log,
const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories,
- const scoped_refptr<base::SingleThreadTaskRunner>&
- media_task_runner,
- const scoped_refptr<base::SingleThreadTaskRunner>&
- compositor_task_runner,
- const EncryptedMediaPlayerSupportCreateCB&
- encrypted_media_player_support_cb)
+ const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
+ const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner,
+ const EncryptedMediaPlayerSupportCreateCB&
+ encrypted_media_player_support_cb,
+ blink::WebContentDecryptionModule* initial_cdm)
: defer_load_cb_(defer_load_cb),
audio_renderer_sink_(audio_renderer_sink),
audio_hardware_config_(audio_hardware_config),
@@ -30,7 +29,8 @@ WebMediaPlayerParams::WebMediaPlayerParams(
gpu_factories_(gpu_factories),
media_task_runner_(media_task_runner),
compositor_task_runner_(compositor_task_runner),
- encrypted_media_player_support_cb_(encrypted_media_player_support_cb) {
+ encrypted_media_player_support_cb_(encrypted_media_player_support_cb),
+ initial_cdm_(initial_cdm) {
}
WebMediaPlayerParams::~WebMediaPlayerParams() {}
@@ -38,7 +38,11 @@ WebMediaPlayerParams::~WebMediaPlayerParams() {}
scoped_ptr<EncryptedMediaPlayerSupport>
WebMediaPlayerParams::CreateEncryptedMediaPlayerSupport(
blink::WebMediaPlayerClient* client) const {
- return encrypted_media_player_support_cb_.Run(client);
+ scoped_ptr<EncryptedMediaPlayerSupport> encrypted_media_support =
+ encrypted_media_player_support_cb_.Run(client);
+ if (encrypted_media_support)
+ encrypted_media_support->SetInitialContentDecryptionModule(initial_cdm_);
+ return encrypted_media_support.Pass();
}
} // namespace media
diff --git a/media/blink/webmediaplayer_params.h b/media/blink/webmediaplayer_params.h
index 7bd3ddb..c765548 100644
--- a/media/blink/webmediaplayer_params.h
+++ b/media/blink/webmediaplayer_params.h
@@ -42,12 +42,11 @@ class MEDIA_EXPORT WebMediaPlayerParams {
const AudioHardwareConfig& audio_hardware_config,
const scoped_refptr<MediaLog>& media_log,
const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories,
- const scoped_refptr<base::SingleThreadTaskRunner>&
- media_task_runner,
- const scoped_refptr<base::SingleThreadTaskRunner>&
- compositor_task_runner,
+ const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
+ const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner,
const EncryptedMediaPlayerSupportCreateCB&
- encrypted_media_player_support_cb);
+ encrypted_media_player_support_cb,
+ blink::WebContentDecryptionModule* initial_cdm);
~WebMediaPlayerParams();
@@ -94,6 +93,7 @@ class MEDIA_EXPORT WebMediaPlayerParams {
scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
EncryptedMediaPlayerSupportCreateCB encrypted_media_player_support_cb_;
+ blink::WebContentDecryptionModule* initial_cdm_;
DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams);
};