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

Unified Diff: media/base/key_systems.cc

Issue 1023863002: Create an interface for KeySystems, migrate WebEncryptedMediaClientImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@robustness
Patch Set: Rebase. Created 5 years, 9 months 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
« no previous file with comments | « media/base/key_systems.h ('k') | media/blink/webencryptedmediaclient_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/key_systems.cc
diff --git a/media/base/key_systems.cc b/media/base/key_systems.cc
index bf33dccc87bfe8424f95e2a8f329e69fe148310b..780b324c07e50c7ddb1c59e7345b7a3f11424d0b 100644
--- a/media/base/key_systems.cc
+++ b/media/base/key_systems.cc
@@ -160,9 +160,9 @@ static void AddClearKey(std::vector<KeySystemInfo>* concrete_key_systems) {
// key system-specific behaviors not fully defined by the EME specification.
// That specification should be provided by the owner of the domain that is the
// reverse of the |key_system| string.
-// This involves more than calling a library, SDK, or platform API. KeySystems
-// must be populated appropriately, and there will likely be glue code to adapt
-// to the API of the library, SDK, or platform API.
+// This involves more than calling a library, SDK, or platform API.
+// KeySystemsImpl must be populated appropriately, and there will likely be glue
+// code to adapt to the API of the library, SDK, or platform API.
//
// Chromium mainline contains this data and glue code for specific key systems,
// which should help ensure interoperability with other implementations using
@@ -171,7 +171,7 @@ static void AddClearKey(std::vector<KeySystemInfo>* concrete_key_systems) {
// If you need to add support for other key systems, ensure that you have
// obtained the specification for how to integrate it with EME, implemented the
// appropriate glue/adapter code, and added all the appropriate data to
-// KeySystems. Only then should you change this function.
+// KeySystemsImpl. Only then should you change this function.
static bool IsPotentiallySupportedKeySystem(const std::string& key_system) {
// Known and supported key systems.
if (key_system == kWidevineKeySystem)
@@ -198,55 +198,66 @@ static bool IsPotentiallySupportedKeySystem(const std::string& key_system) {
return false;
}
-class KeySystems {
+class KeySystemsImpl : public KeySystems {
public:
- static KeySystems& GetInstance();
+ static KeySystemsImpl& GetInstance();
void UpdateIfNeeded();
- bool IsConcreteSupportedKeySystem(const std::string& key_system);
-
- bool IsSupportedKeySystem(const std::string& key_system);
+ bool IsConcreteSupportedKeySystem(const std::string& key_system) const;
bool IsSupportedKeySystemWithInitDataType(
const std::string& key_system,
- const std::string& init_data_type);
+ const std::string& init_data_type) const;
+
+ bool PrefixedIsSupportedKeySystemWithMediaMimeType(
+ const std::string& mime_type,
+ const std::vector<std::string>& codecs,
+ const std::string& key_system);
bool IsSupportedKeySystemWithMediaMimeType(
const std::string& mime_type,
const std::vector<std::string>& codecs,
- const std::string& key_system,
- bool is_prefixed);
+ const std::string& key_system) const;
std::string GetKeySystemNameForUMA(const std::string& key_system) const;
- bool UseAesDecryptor(const std::string& concrete_key_system);
+ bool UseAesDecryptor(const std::string& concrete_key_system) const;
#if defined(ENABLE_PEPPER_CDMS)
- std::string GetPepperType(const std::string& concrete_key_system);
+ std::string GetPepperType(const std::string& concrete_key_system) const;
#endif
+ void AddContainerMask(const std::string& container, uint32 mask);
+ void AddCodecMask(const std::string& codec, uint32 mask);
+
+ // Implementation of KeySystems interface.
+ bool IsSupportedKeySystem(const std::string& key_system) const override;
+
+ bool IsSupportedCodecCombination(
+ const std::string& key_system,
+ EmeMediaType media_type,
+ const std::string& container_mime_type,
+ const std::vector<std::string>& codecs) const override;
+
EmeConfigRule GetRobustnessConfigRule(
const std::string& key_system,
EmeMediaType media_type,
- const std::string& requested_robustness);
+ const std::string& requested_robustness) const override;
EmeConfigRule GetPersistentLicenseSessionConfigRule(
- const std::string& key_system);
+ const std::string& key_system) const override;
EmeConfigRule GetPersistentReleaseMessageSessionConfigRule(
- const std::string& key_system);
+ const std::string& key_system) const override;
EmeConfigRule GetPersistentStateConfigRule(
const std::string& key_system,
- EmeFeatureRequirement requirement);
+ EmeFeatureRequirement requirement) const override;
EmeConfigRule GetDistinctiveIdentifierConfigRule(
const std::string& key_system,
- EmeFeatureRequirement requirement);
-
- void AddContainerMask(const std::string& container, uint32 mask);
- void AddCodecMask(const std::string& codec, uint32 mask);
+ EmeFeatureRequirement requirement) const override;
private:
void InitializeUMAInfo();
@@ -256,7 +267,7 @@ class KeySystems {
void AddConcreteSupportedKeySystems(
const std::vector<KeySystemInfo>& concrete_key_systems);
- friend struct base::DefaultLazyInstanceTraits<KeySystems>;
+ friend struct base::DefaultLazyInstanceTraits<KeySystemsImpl>;
typedef base::hash_map<std::string, KeySystemInfo> KeySystemInfoMap;
typedef base::hash_map<std::string, std::string> ParentKeySystemMap;
@@ -265,8 +276,8 @@ class KeySystems {
typedef base::hash_map<std::string, EmeInitDataType> InitDataTypesMap;
typedef base::hash_map<std::string, std::string> KeySystemNameForUMAMap;
- KeySystems();
- ~KeySystems() {}
+ KeySystemsImpl();
+ ~KeySystemsImpl() {}
EmeInitDataType GetInitDataTypeForName(
const std::string& init_data_type) const;
@@ -309,20 +320,21 @@ class KeySystems {
// Makes sure all methods are called from the same thread.
base::ThreadChecker thread_checker_;
- DISALLOW_COPY_AND_ASSIGN(KeySystems);
+ DISALLOW_COPY_AND_ASSIGN(KeySystemsImpl);
};
-static base::LazyInstance<KeySystems> g_key_systems = LAZY_INSTANCE_INITIALIZER;
+static base::LazyInstance<KeySystemsImpl> g_key_systems =
+ LAZY_INSTANCE_INITIALIZER;
-KeySystems& KeySystems::GetInstance() {
- KeySystems& key_systems = g_key_systems.Get();
+KeySystemsImpl& KeySystemsImpl::GetInstance() {
+ KeySystemsImpl& key_systems = g_key_systems.Get();
key_systems.UpdateIfNeeded();
return key_systems;
}
// Because we use a LazyInstance, the key systems info must be populated when
// the instance is lazily initiated.
-KeySystems::KeySystems() {
+KeySystemsImpl::KeySystemsImpl() {
for (size_t i = 0; i < arraysize(kInitDataTypeNames); ++i) {
const std::string& name = kInitDataTypeNames[i].name;
DCHECK(!init_data_type_name_map_.count(name));
@@ -345,7 +357,7 @@ KeySystems::KeySystems() {
UpdateSupportedKeySystems();
}
-EmeInitDataType KeySystems::GetInitDataTypeForName(
+EmeInitDataType KeySystemsImpl::GetInitDataTypeForName(
const std::string& init_data_type) const {
InitDataTypesMap::const_iterator iter =
init_data_type_name_map_.find(init_data_type);
@@ -354,7 +366,7 @@ EmeInitDataType KeySystems::GetInitDataTypeForName(
return EME_INIT_DATA_TYPE_NONE;
}
-SupportedCodecs KeySystems::GetCodecMaskForContainer(
+SupportedCodecs KeySystemsImpl::GetCodecMaskForContainer(
const std::string& container) const {
ContainerCodecsMap::const_iterator iter =
container_to_codec_mask_map_.find(container);
@@ -363,14 +375,14 @@ SupportedCodecs KeySystems::GetCodecMaskForContainer(
return EME_CODEC_NONE;
}
-EmeCodec KeySystems::GetCodecForString(const std::string& codec) const {
+EmeCodec KeySystemsImpl::GetCodecForString(const std::string& codec) const {
CodecsMap::const_iterator iter = codec_string_map_.find(codec);
if (iter != codec_string_map_.end())
return iter->second;
return EME_CODEC_NONE;
}
-const std::string& KeySystems::PrefixedGetConcreteKeySystemNameFor(
+const std::string& KeySystemsImpl::PrefixedGetConcreteKeySystemNameFor(
const std::string& key_system) const {
ParentKeySystemMap::const_iterator iter =
parent_key_system_map_.find(key_system);
@@ -379,7 +391,7 @@ const std::string& KeySystems::PrefixedGetConcreteKeySystemNameFor(
return key_system;
}
-void KeySystems::InitializeUMAInfo() {
+void KeySystemsImpl::InitializeUMAInfo() {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(key_system_name_for_uma_map_.empty());
@@ -399,12 +411,12 @@ void KeySystems::InitializeUMAInfo() {
kClearKeyKeySystemNameForUMA;
}
-void KeySystems::UpdateIfNeeded() {
+void KeySystemsImpl::UpdateIfNeeded() {
if (GetMediaClient() && GetMediaClient()->IsKeySystemsUpdateNeeded())
UpdateSupportedKeySystems();
}
-void KeySystems::UpdateSupportedKeySystems() {
+void KeySystemsImpl::UpdateSupportedKeySystems() {
DCHECK(thread_checker_.CalledOnValidThread());
concrete_key_system_map_.clear();
parent_key_system_map_.clear();
@@ -422,7 +434,7 @@ void KeySystems::UpdateSupportedKeySystems() {
AddConcreteSupportedKeySystems(key_systems_info);
}
-void KeySystems::AddConcreteSupportedKeySystems(
+void KeySystemsImpl::AddConcreteSupportedKeySystems(
const std::vector<KeySystemInfo>& concrete_key_systems) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(concrete_key_system_map_.empty());
@@ -506,12 +518,13 @@ void KeySystems::AddConcreteSupportedKeySystems(
}
}
-bool KeySystems::IsConcreteSupportedKeySystem(const std::string& key_system) {
+bool KeySystemsImpl::IsConcreteSupportedKeySystem(
+ const std::string& key_system) const {
DCHECK(thread_checker_.CalledOnValidThread());
return concrete_key_system_map_.count(key_system) != 0;
}
-bool KeySystems::IsSupportedContainer(
+bool KeySystemsImpl::IsSupportedContainer(
const std::string& container,
SupportedCodecs key_system_supported_codecs) const {
DCHECK(thread_checker_.CalledOnValidThread());
@@ -532,7 +545,7 @@ bool KeySystems::IsSupportedContainer(
return (supported_codecs & key_system_supported_codecs) != 0;
}
-bool KeySystems::IsSupportedContainerAndCodecs(
+bool KeySystemsImpl::IsSupportedContainerAndCodecs(
const std::string& container,
const std::vector<std::string>& codecs,
SupportedCodecs key_system_supported_codecs) const {
@@ -564,15 +577,9 @@ bool KeySystems::IsSupportedContainerAndCodecs(
return true;
}
-bool KeySystems::IsSupportedKeySystem(const std::string& key_system) {
- DCHECK(thread_checker_.CalledOnValidThread());
- // Unprefixed EME only supports concrete key systems.
- return concrete_key_system_map_.count(key_system) != 0;
-}
-
-bool KeySystems::IsSupportedKeySystemWithInitDataType(
+bool KeySystemsImpl::IsSupportedKeySystemWithInitDataType(
const std::string& key_system,
- const std::string& init_data_type) {
+ const std::string& init_data_type) const {
DCHECK(thread_checker_.CalledOnValidThread());
// Locate |key_system|. Only concrete key systems are supported in unprefixed.
@@ -587,27 +594,18 @@ bool KeySystems::IsSupportedKeySystemWithInitDataType(
return (info.supported_init_data_types & eme_init_data_type) != 0;
}
-// TODO(sandersd): Reorganize to be more similar to
-// IsKeySystemSupportedWithInitDataType(). Note that a fork may still be
-// required; http://crbug.com/417461.
-bool KeySystems::IsSupportedKeySystemWithMediaMimeType(
+bool KeySystemsImpl::PrefixedIsSupportedKeySystemWithMediaMimeType(
const std::string& mime_type,
const std::vector<std::string>& codecs,
- const std::string& key_system,
- bool is_prefixed) {
+ const std::string& key_system) {
DCHECK(thread_checker_.CalledOnValidThread());
- const bool report_to_uma = is_prefixed;
- // If |is_prefixed| and |key_system| is a parent key system, use its concrete
- // child.
- const std::string& concrete_key_system = is_prefixed ?
- PrefixedGetConcreteKeySystemNameFor(key_system) :
- key_system;
+ const std::string& concrete_key_system =
+ PrefixedGetConcreteKeySystemNameFor(key_system);
bool has_type = !mime_type.empty();
- if (report_to_uma)
- key_systems_support_uma_.ReportKeySystemQuery(key_system, has_type);
+ key_systems_support_uma_.ReportKeySystemQuery(key_system, has_type);
// Check key system support.
KeySystemInfoMap::const_iterator key_system_iter =
@@ -615,8 +613,7 @@ bool KeySystems::IsSupportedKeySystemWithMediaMimeType(
if (key_system_iter == concrete_key_system_map_.end())
return false;
- if (report_to_uma)
- key_systems_support_uma_.ReportKeySystemSupport(key_system, false);
+ key_systems_support_uma_.ReportKeySystemSupport(key_system, false);
if (!has_type) {
DCHECK(codecs.empty());
@@ -635,12 +632,43 @@ bool KeySystems::IsSupportedKeySystemWithMediaMimeType(
return false;
}
- if (report_to_uma)
- key_systems_support_uma_.ReportKeySystemSupport(key_system, true);
+ key_systems_support_uma_.ReportKeySystemSupport(key_system, true);
+
return true;
}
-std::string KeySystems::GetKeySystemNameForUMA(
+bool KeySystemsImpl::IsSupportedKeySystemWithMediaMimeType(
+ const std::string& mime_type,
+ const std::vector<std::string>& codecs,
+ const std::string& key_system) const {
+ DCHECK(thread_checker_.CalledOnValidThread());
+
+ KeySystemInfoMap::const_iterator key_system_iter =
+ concrete_key_system_map_.find(key_system);
+ if (key_system_iter == concrete_key_system_map_.end())
+ return false;
+
+ if (mime_type.empty()) {
+ DCHECK(codecs.empty());
+ return true;
+ }
+
+ SupportedCodecs key_system_supported_codecs =
+ key_system_iter->second.supported_codecs;
+
+ if (!IsSupportedContainer(mime_type, key_system_supported_codecs))
+ return false;
+
+ if (!codecs.empty() &&
+ !IsSupportedContainerAndCodecs(
+ mime_type, codecs, key_system_supported_codecs)) {
+ return false;
+ }
+
+ return true;
+}
+
+std::string KeySystemsImpl::GetKeySystemNameForUMA(
const std::string& key_system) const {
DCHECK(thread_checker_.CalledOnValidThread());
@@ -652,7 +680,8 @@ std::string KeySystems::GetKeySystemNameForUMA(
return iter->second;
}
-bool KeySystems::UseAesDecryptor(const std::string& concrete_key_system) {
+bool KeySystemsImpl::UseAesDecryptor(
+ const std::string& concrete_key_system) const {
DCHECK(thread_checker_.CalledOnValidThread());
KeySystemInfoMap::const_iterator key_system_iter =
@@ -666,7 +695,8 @@ bool KeySystems::UseAesDecryptor(const std::string& concrete_key_system) {
}
#if defined(ENABLE_PEPPER_CDMS)
-std::string KeySystems::GetPepperType(const std::string& concrete_key_system) {
+std::string KeySystemsImpl::GetPepperType(
+ const std::string& concrete_key_system) const {
DCHECK(thread_checker_.CalledOnValidThread());
KeySystemInfoMap::const_iterator key_system_iter =
@@ -682,10 +712,50 @@ std::string KeySystems::GetPepperType(const std::string& concrete_key_system) {
}
#endif
-EmeConfigRule KeySystems::GetRobustnessConfigRule(
+void KeySystemsImpl::AddContainerMask(const std::string& container,
+ uint32 mask) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ DCHECK(!container_to_codec_mask_map_.count(container));
+ container_to_codec_mask_map_[container] = static_cast<EmeCodec>(mask);
+}
+
+void KeySystemsImpl::AddCodecMask(const std::string& codec, uint32 mask) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ DCHECK(!codec_string_map_.count(codec));
+ codec_string_map_[codec] = static_cast<EmeCodec>(mask);
+}
+
+bool KeySystemsImpl::IsSupportedKeySystem(const std::string& key_system) const {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ return concrete_key_system_map_.count(key_system) != 0;
+}
+
+// TODO(sandersd): Make sure that the codecs also match the |media_type|.
+// http://crbug.com/457386
+bool KeySystemsImpl::IsSupportedCodecCombination(
+ const std::string& key_system,
+ EmeMediaType media_type,
+ const std::string& container_mime_type,
+ const std::vector<std::string>& codecs) const {
+ // Make sure the container matches |media_type|.
+ switch (media_type) {
+ case EmeMediaType::AUDIO:
+ if (!StartsWithASCII(container_mime_type, "audio/", true))
+ return false;
+ break;
+ case EmeMediaType::VIDEO:
+ if (!StartsWithASCII(container_mime_type, "video/", true))
+ return false;
+ break;
+ }
+ return IsSupportedKeySystemWithMediaMimeType(
+ container_mime_type, codecs, key_system);
+}
+
+EmeConfigRule KeySystemsImpl::GetRobustnessConfigRule(
const std::string& key_system,
EmeMediaType media_type,
- const std::string& requested_robustness) {
+ const std::string& requested_robustness) const {
DCHECK(thread_checker_.CalledOnValidThread());
EmeRobustness robustness = ConvertRobustness(requested_robustness);
@@ -742,8 +812,8 @@ EmeConfigRule KeySystems::GetRobustnessConfigRule(
return EmeConfigRule::SUPPORTED;
}
-EmeConfigRule KeySystems::GetPersistentLicenseSessionConfigRule(
- const std::string& key_system) {
+EmeConfigRule KeySystemsImpl::GetPersistentLicenseSessionConfigRule(
+ const std::string& key_system) const {
DCHECK(thread_checker_.CalledOnValidThread());
KeySystemInfoMap::const_iterator key_system_iter =
@@ -756,8 +826,8 @@ EmeConfigRule KeySystems::GetPersistentLicenseSessionConfigRule(
key_system_iter->second.persistent_license_support);
}
-EmeConfigRule KeySystems::GetPersistentReleaseMessageSessionConfigRule(
- const std::string& key_system) {
+EmeConfigRule KeySystemsImpl::GetPersistentReleaseMessageSessionConfigRule(
+ const std::string& key_system) const {
DCHECK(thread_checker_.CalledOnValidThread());
KeySystemInfoMap::const_iterator key_system_iter =
@@ -770,9 +840,9 @@ EmeConfigRule KeySystems::GetPersistentReleaseMessageSessionConfigRule(
key_system_iter->second.persistent_release_message_support);
}
-EmeConfigRule KeySystems::GetPersistentStateConfigRule(
+EmeConfigRule KeySystemsImpl::GetPersistentStateConfigRule(
const std::string& key_system,
- EmeFeatureRequirement requirement) {
+ EmeFeatureRequirement requirement) const {
DCHECK(thread_checker_.CalledOnValidThread());
KeySystemInfoMap::const_iterator key_system_iter =
@@ -812,9 +882,9 @@ EmeConfigRule KeySystems::GetPersistentStateConfigRule(
return EmeConfigRule::SUPPORTED;
}
-EmeConfigRule KeySystems::GetDistinctiveIdentifierConfigRule(
+EmeConfigRule KeySystemsImpl::GetDistinctiveIdentifierConfigRule(
const std::string& key_system,
- EmeFeatureRequirement requirement) {
+ EmeFeatureRequirement requirement) const {
DCHECK(thread_checker_.CalledOnValidThread());
KeySystemInfoMap::const_iterator key_system_iter =
@@ -850,16 +920,8 @@ EmeConfigRule KeySystems::GetDistinctiveIdentifierConfigRule(
return EmeConfigRule::SUPPORTED;
}
-void KeySystems::AddContainerMask(const std::string& container, uint32 mask) {
- DCHECK(thread_checker_.CalledOnValidThread());
- DCHECK(!container_to_codec_mask_map_.count(container));
- container_to_codec_mask_map_[container] = static_cast<EmeCodec>(mask);
-}
-
-void KeySystems::AddCodecMask(const std::string& codec, uint32 mask) {
- DCHECK(thread_checker_.CalledOnValidThread());
- DCHECK(!codec_string_map_.count(codec));
- codec_string_map_[codec] = static_cast<EmeCodec>(mask);
+KeySystems& KeySystems::GetInstance() {
+ return KeySystemsImpl::GetInstance();
}
//------------------------------------------------------------------------------
@@ -896,11 +958,11 @@ bool IsSaneInitDataTypeWithContainer(
}
bool PrefixedIsSupportedConcreteKeySystem(const std::string& key_system) {
- return KeySystems::GetInstance().IsConcreteSupportedKeySystem(key_system);
+ return KeySystemsImpl::GetInstance().IsConcreteSupportedKeySystem(key_system);
}
bool IsSupportedKeySystem(const std::string& key_system) {
- if (!KeySystems::GetInstance().IsSupportedKeySystem(key_system))
+ if (!KeySystemsImpl::GetInstance().IsSupportedKeySystem(key_system))
return false;
// TODO(ddorwin): Move this to where we add key systems when prefixed EME is
@@ -918,7 +980,7 @@ bool IsSupportedKeySystem(const std::string& key_system) {
bool IsSupportedKeySystemWithInitDataType(
const std::string& key_system,
const std::string& init_data_type) {
- return KeySystems::GetInstance().IsSupportedKeySystemWithInitDataType(
+ return KeySystemsImpl::GetInstance().IsSupportedKeySystemWithInitDataType(
key_system, init_data_type);
}
@@ -926,66 +988,33 @@ bool IsSupportedKeySystemWithMediaMimeType(
const std::string& mime_type,
const std::vector<std::string>& codecs,
const std::string& key_system) {
- return KeySystems::GetInstance().IsSupportedKeySystemWithMediaMimeType(
- mime_type, codecs, key_system, false);
+ return KeySystemsImpl::GetInstance().IsSupportedKeySystemWithMediaMimeType(
+ mime_type, codecs, key_system);
}
bool PrefixedIsSupportedKeySystemWithMediaMimeType(
const std::string& mime_type,
const std::vector<std::string>& codecs,
const std::string& key_system) {
- return KeySystems::GetInstance().IsSupportedKeySystemWithMediaMimeType(
- mime_type, codecs, key_system, true);
+ return KeySystemsImpl::GetInstance()
+ .PrefixedIsSupportedKeySystemWithMediaMimeType(mime_type, codecs,
+ key_system);
}
std::string GetKeySystemNameForUMA(const std::string& key_system) {
- return KeySystems::GetInstance().GetKeySystemNameForUMA(key_system);
+ return KeySystemsImpl::GetInstance().GetKeySystemNameForUMA(key_system);
}
bool CanUseAesDecryptor(const std::string& concrete_key_system) {
- return KeySystems::GetInstance().UseAesDecryptor(concrete_key_system);
+ return KeySystemsImpl::GetInstance().UseAesDecryptor(concrete_key_system);
}
#if defined(ENABLE_PEPPER_CDMS)
std::string GetPepperType(const std::string& concrete_key_system) {
- return KeySystems::GetInstance().GetPepperType(concrete_key_system);
+ return KeySystemsImpl::GetInstance().GetPepperType(concrete_key_system);
}
#endif
-EmeConfigRule GetRobustnessConfigRule(
- const std::string& key_system,
- EmeMediaType media_type,
- const std::string& robustness) {
- return KeySystems::GetInstance().GetRobustnessConfigRule(
- key_system, media_type, robustness);
-}
-
-EmeConfigRule GetPersistentLicenseSessionConfigRule(
- const std::string& key_system) {
- return KeySystems::GetInstance().GetPersistentLicenseSessionConfigRule(
- key_system);
-}
-
-EmeConfigRule GetPersistentReleaseMessageSessionConfigRule(
- const std::string& key_system) {
- return KeySystems::GetInstance().GetPersistentReleaseMessageSessionConfigRule(
- key_system);
-}
-
-EmeConfigRule GetPersistentStateConfigRule(
- const std::string& key_system,
- EmeFeatureRequirement requirement) {
- return KeySystems::GetInstance().GetPersistentStateConfigRule(
- key_system, requirement);
-}
-
-EmeConfigRule GetDistinctiveIdentifierConfigRule(
- const std::string& key_system,
- EmeFeatureRequirement requirement) {
- return KeySystems::GetInstance().GetDistinctiveIdentifierConfigRule(
- key_system, requirement);
-}
-
// These two functions are for testing purpose only. The declaration in the
// header file is guarded by "#if defined(UNIT_TEST)" so that they can be used
// by tests but not non-test code. However, this .cc file is compiled as part of
@@ -993,11 +1022,11 @@ EmeConfigRule GetDistinctiveIdentifierConfigRule(
// "MEDIA_EXPORT" here again so that they are visible to tests.
MEDIA_EXPORT void AddContainerMask(const std::string& container, uint32 mask) {
- KeySystems::GetInstance().AddContainerMask(container, mask);
+ KeySystemsImpl::GetInstance().AddContainerMask(container, mask);
}
MEDIA_EXPORT void AddCodecMask(const std::string& codec, uint32 mask) {
- KeySystems::GetInstance().AddCodecMask(codec, mask);
+ KeySystemsImpl::GetInstance().AddCodecMask(codec, mask);
}
} // namespace media
« no previous file with comments | « media/base/key_systems.h ('k') | media/blink/webencryptedmediaclient_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698