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(
if (!proxy_decryptor_) {
DCHECK(current_key_system_.empty());
proxy_decryptor_.reset(new media::ProxyDecryptor(
media_permission_, base::Bind(&WebMediaPlayerAndroid::OnKeyAdded,
weak_factory_.GetWeakPtr()),
media_permission_,
player_manager_->ShouldUseVideoOverlayForEmbeddedEncryptedVideo(),
base::Bind(&WebMediaPlayerAndroid::OnKeyAdded,
weak_factory_.GetWeakPtr()),
base::Bind(&WebMediaPlayerAndroid::OnKeyError,
weak_factory_.GetWeakPtr()),
base::Bind(&WebMediaPlayerAndroid::OnKeyMessage,
......
......@@ -154,11 +154,15 @@ EncryptedMediaPlayerSupport::GenerateKeyRequestInternal(
if (!PrefixedIsSupportedConcreteKeySystem(key_system))
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_) {
DCHECK(current_key_system_.empty());
DCHECK(!cdm_context_ready_cb_.is_null());
proxy_decryptor_.reset(new ProxyDecryptor(
media_permission_,
media_permission_, use_hw_secure_codecs,
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyAdded),
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyError),
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyMessage)));
......
......@@ -38,11 +38,13 @@ ProxyDecryptor::PendingGenerateKeyRequestData::
}
ProxyDecryptor::ProxyDecryptor(MediaPermission* media_permission,
bool use_hw_secure_codecs,
const KeyAddedCB& key_added_cb,
const KeyErrorCB& key_error_cb,
const KeyMessageCB& key_message_cb)
: is_creating_cdm_(false),
media_permission_(media_permission),
use_hw_secure_codecs_(use_hw_secure_codecs),
key_added_cb_(key_added_cb),
key_error_cb_(key_error_cb),
key_message_cb_(key_message_cb),
......@@ -73,6 +75,7 @@ void ProxyDecryptor::CreateCdm(CdmFactory* cdm_factory,
CdmConfig cdm_config;
cdm_config.allow_distinctive_identifier = true;
cdm_config.allow_persistent_state = true;
cdm_config.use_hw_secure_codecs = use_hw_secure_codecs_;
is_creating_cdm_ = true;
......
......@@ -49,6 +49,7 @@ class MEDIA_EXPORT ProxyDecryptor {
const GURL& destination_url)> KeyMessageCB;
ProxyDecryptor(MediaPermission* media_permission,
bool use_hw_secure_codecs,
const KeyAddedCB& key_added_cb,
const KeyErrorCB& key_error_cb,
const KeyMessageCB& key_message_cb);
......@@ -131,6 +132,7 @@ class MEDIA_EXPORT ProxyDecryptor {
scoped_ptr<MediaKeys> media_keys_;
MediaPermission* media_permission_;
bool use_hw_secure_codecs_;
// Callbacks for firing key events.
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