Commit 05df5682 authored by sandersd's avatar sandersd Committed by Commit bot

Pass video overlay renderer preference to ProxyDecryptor.

This restores the ability for the prefixed EME API to use secure codecs when the renderer preference is set.

BUG=489512

Review URL: https://codereview.chromium.org/1132323004

Cr-Commit-Position: refs/heads/master@{#330642}
parent c150bc38
...@@ -1542,8 +1542,10 @@ WebMediaPlayerAndroid::GenerateKeyRequestInternal( ...@@ -1542,8 +1542,10 @@ WebMediaPlayerAndroid::GenerateKeyRequestInternal(
if (!proxy_decryptor_) { if (!proxy_decryptor_) {
DCHECK(current_key_system_.empty()); DCHECK(current_key_system_.empty());
proxy_decryptor_.reset(new media::ProxyDecryptor( proxy_decryptor_.reset(new media::ProxyDecryptor(
media_permission_, base::Bind(&WebMediaPlayerAndroid::OnKeyAdded, media_permission_,
weak_factory_.GetWeakPtr()), player_manager_->ShouldUseVideoOverlayForEmbeddedEncryptedVideo(),
base::Bind(&WebMediaPlayerAndroid::OnKeyAdded,
weak_factory_.GetWeakPtr()),
base::Bind(&WebMediaPlayerAndroid::OnKeyError, base::Bind(&WebMediaPlayerAndroid::OnKeyError,
weak_factory_.GetWeakPtr()), weak_factory_.GetWeakPtr()),
base::Bind(&WebMediaPlayerAndroid::OnKeyMessage, base::Bind(&WebMediaPlayerAndroid::OnKeyMessage,
......
...@@ -154,11 +154,15 @@ EncryptedMediaPlayerSupport::GenerateKeyRequestInternal( ...@@ -154,11 +154,15 @@ EncryptedMediaPlayerSupport::GenerateKeyRequestInternal(
if (!PrefixedIsSupportedConcreteKeySystem(key_system)) if (!PrefixedIsSupportedConcreteKeySystem(key_system))
return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported; return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported;
// |use_hw_secure_codecs| is only supported on Android, and Android (WMPA)
// does not use EncryptedMediaPlayerSupport.
bool use_hw_secure_codecs = false;
if (!proxy_decryptor_) { if (!proxy_decryptor_) {
DCHECK(current_key_system_.empty()); DCHECK(current_key_system_.empty());
DCHECK(!cdm_context_ready_cb_.is_null()); DCHECK(!cdm_context_ready_cb_.is_null());
proxy_decryptor_.reset(new ProxyDecryptor( proxy_decryptor_.reset(new ProxyDecryptor(
media_permission_, media_permission_, use_hw_secure_codecs,
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyAdded), BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyAdded),
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyError), BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyError),
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyMessage))); BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyMessage)));
......
...@@ -38,11 +38,13 @@ ProxyDecryptor::PendingGenerateKeyRequestData:: ...@@ -38,11 +38,13 @@ ProxyDecryptor::PendingGenerateKeyRequestData::
} }
ProxyDecryptor::ProxyDecryptor(MediaPermission* media_permission, ProxyDecryptor::ProxyDecryptor(MediaPermission* media_permission,
bool use_hw_secure_codecs,
const KeyAddedCB& key_added_cb, const KeyAddedCB& key_added_cb,
const KeyErrorCB& key_error_cb, const KeyErrorCB& key_error_cb,
const KeyMessageCB& key_message_cb) const KeyMessageCB& key_message_cb)
: is_creating_cdm_(false), : is_creating_cdm_(false),
media_permission_(media_permission), media_permission_(media_permission),
use_hw_secure_codecs_(use_hw_secure_codecs),
key_added_cb_(key_added_cb), key_added_cb_(key_added_cb),
key_error_cb_(key_error_cb), key_error_cb_(key_error_cb),
key_message_cb_(key_message_cb), key_message_cb_(key_message_cb),
...@@ -73,6 +75,7 @@ void ProxyDecryptor::CreateCdm(CdmFactory* cdm_factory, ...@@ -73,6 +75,7 @@ void ProxyDecryptor::CreateCdm(CdmFactory* cdm_factory,
CdmConfig cdm_config; CdmConfig cdm_config;
cdm_config.allow_distinctive_identifier = true; cdm_config.allow_distinctive_identifier = true;
cdm_config.allow_persistent_state = true; cdm_config.allow_persistent_state = true;
cdm_config.use_hw_secure_codecs = use_hw_secure_codecs_;
is_creating_cdm_ = true; is_creating_cdm_ = true;
......
...@@ -49,6 +49,7 @@ class MEDIA_EXPORT ProxyDecryptor { ...@@ -49,6 +49,7 @@ class MEDIA_EXPORT ProxyDecryptor {
const GURL& destination_url)> KeyMessageCB; const GURL& destination_url)> KeyMessageCB;
ProxyDecryptor(MediaPermission* media_permission, ProxyDecryptor(MediaPermission* media_permission,
bool use_hw_secure_codecs,
const KeyAddedCB& key_added_cb, const KeyAddedCB& key_added_cb,
const KeyErrorCB& key_error_cb, const KeyErrorCB& key_error_cb,
const KeyMessageCB& key_message_cb); const KeyMessageCB& key_message_cb);
...@@ -131,6 +132,7 @@ class MEDIA_EXPORT ProxyDecryptor { ...@@ -131,6 +132,7 @@ class MEDIA_EXPORT ProxyDecryptor {
scoped_ptr<MediaKeys> media_keys_; scoped_ptr<MediaKeys> media_keys_;
MediaPermission* media_permission_; MediaPermission* media_permission_;
bool use_hw_secure_codecs_;
// Callbacks for firing key events. // Callbacks for firing key events.
KeyAddedCB key_added_cb_; KeyAddedCB key_added_cb_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment