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

Unified Diff: components/cdm/renderer/android_key_systems.cc

Issue 1932893004: Revert of Convert Widevine and Android platform key systems to KeySystemProperties (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
Index: components/cdm/renderer/android_key_systems.cc
diff --git a/components/cdm/renderer/android_key_systems.cc b/components/cdm/renderer/android_key_systems.cc
index 8e4f7529fff0123a8980727fa2de3b3d18ee1921..56d2aec617265331d7181e11a3a9b903e5409374 100644
--- a/components/cdm/renderer/android_key_systems.cc
+++ b/components/cdm/renderer/android_key_systems.cc
@@ -10,88 +10,20 @@
#include "base/command_line.h"
#include "base/logging.h"
#include "components/cdm/common/cdm_messages_android.h"
-#include "components/cdm/renderer/widevine_key_system_properties.h"
+#include "components/cdm/renderer/widevine_key_systems.h"
#include "content/public/renderer/render_thread.h"
#include "media/base/eme_constants.h"
#include "media/base/media_switches.h"
#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
-using media::EmeConfigRule;
using media::EmeFeatureSupport;
-using media::EmeInitDataType;
using media::EmeRobustness;
using media::EmeSessionTypeSupport;
-using media::KeySystemProperties;
+using media::KeySystemInfo;
using media::SupportedCodecs;
namespace cdm {
-
-namespace {
-
-// Implementation of KeySystemProperties for platform-supported key systems.
-// Assumes that platform key systems support no features but can and will
-// make use of persistence and identifiers.
-class AndroidPlatformKeySystemProperties : public KeySystemProperties {
- public:
- AndroidPlatformKeySystemProperties(const std::string& name,
- SupportedCodecs supported_codecs)
- : name_(name), supported_codecs_(supported_codecs) {}
-
- std::string GetKeySystemName() const override { return name_; }
-
- bool IsSupportedInitDataType(EmeInitDataType init_data_type) const override {
- // Here we assume that support for a container implies support for the
- // associated initialization data type. KeySystems handles validating
- // |init_data_type| x |container| pairings.
- switch (init_data_type) {
- case EmeInitDataType::WEBM:
- return (supported_codecs_ & media::EME_CODEC_WEBM_ALL) != 0;
- case EmeInitDataType::CENC:
-#if defined(USE_PROPRIETARY_CODECS)
- return (supported_codecs_ & media::EME_CODEC_MP4_ALL) != 0;
-#else
- return false;
-#endif // defined(USE_PROPRIETARY_CODECS)
- case EmeInitDataType::KEYIDS:
- case EmeInitDataType::UNKNOWN:
- return false;
- }
- NOTREACHED();
- return false;
- }
-
- SupportedCodecs GetSupportedCodecs() const override {
- return supported_codecs_;
- }
-
- EmeConfigRule GetRobustnessConfigRule(
- media::EmeMediaType media_type,
- const std::string& requested_robustness) const override {
- return requested_robustness.empty() ? EmeConfigRule::SUPPORTED
- : EmeConfigRule::NOT_SUPPORTED;
- }
-
- EmeSessionTypeSupport GetPersistentLicenseSessionSupport() const override {
- return EmeSessionTypeSupport::NOT_SUPPORTED;
- }
- EmeSessionTypeSupport GetPersistentReleaseMessageSessionSupport()
- const override {
- return EmeSessionTypeSupport::NOT_SUPPORTED;
- }
- EmeFeatureSupport GetPersistentStateSupport() const override {
- return EmeFeatureSupport::ALWAYS_ENABLED;
- }
- EmeFeatureSupport GetDistinctiveIdentifierSupport() const override {
- return EmeFeatureSupport::ALWAYS_ENABLED;
- }
-
- private:
- const std::string name_;
- const SupportedCodecs supported_codecs_;
-};
-
-} // namespace
static SupportedKeySystemResponse QueryKeySystemSupport(
const std::string& key_system) {
@@ -109,8 +41,7 @@
return response;
}
-void AddAndroidWidevine(
- std::vector<std::unique_ptr<KeySystemProperties>>* concrete_key_systems) {
+void AddAndroidWidevine(std::vector<KeySystemInfo>* concrete_key_systems) {
SupportedKeySystemResponse response = QueryKeySystemSupport(
kWidevineKeySystem);
@@ -119,7 +50,7 @@
// persistence-based features are supported.
if (response.compositing_codecs != media::EME_CODEC_NONE) {
- concrete_key_systems->emplace_back(new WidevineKeySystemProperties(
+ AddWidevineWithCodecs(
response.compositing_codecs, // Regular codecs.
response.non_compositing_codecs, // Hardware-secure codecs.
EmeRobustness::HW_SECURE_CRYPTO, // Max audio robustness.
@@ -127,7 +58,8 @@
EmeSessionTypeSupport::NOT_SUPPORTED, // persistent-license.
EmeSessionTypeSupport::NOT_SUPPORTED, // persistent-release-message.
EmeFeatureSupport::ALWAYS_ENABLED, // Persistent state.
- EmeFeatureSupport::ALWAYS_ENABLED)); // Distinctive identifier.
+ EmeFeatureSupport::ALWAYS_ENABLED, // Distinctive identifier.
+ concrete_key_systems);
} else {
// It doesn't make sense to support secure codecs but not regular codecs.
DCHECK(response.non_compositing_codecs == media::EME_CODEC_NONE);
@@ -135,7 +67,7 @@
}
void AddAndroidPlatformKeySystems(
- std::vector<std::unique_ptr<KeySystemProperties>>* concrete_key_systems) {
+ std::vector<KeySystemInfo>* concrete_key_systems) {
std::vector<std::string> key_system_names;
content::RenderThread::Get()->Send(
new ChromeViewHostMsg_GetPlatformKeySystemNames(&key_system_names));
@@ -144,8 +76,30 @@
it != key_system_names.end(); ++it) {
SupportedKeySystemResponse response = QueryKeySystemSupport(*it);
if (response.compositing_codecs != media::EME_CODEC_NONE) {
- concrete_key_systems->emplace_back(new AndroidPlatformKeySystemProperties(
- *it, response.compositing_codecs));
+ KeySystemInfo info;
+ info.key_system = *it;
+ info.supported_codecs = response.compositing_codecs;
+ // Here we assume that support for a container implies support for the
+ // associated initialization data type. KeySystems handles validating
+ // |init_data_type| x |container| pairings.
+ if (response.compositing_codecs & media::EME_CODEC_WEBM_ALL)
+ info.supported_init_data_types |= media::kInitDataTypeMaskWebM;
+#if defined(USE_PROPRIETARY_CODECS)
+ if (response.compositing_codecs & media::EME_CODEC_MP4_ALL)
+ info.supported_init_data_types |= media::kInitDataTypeMaskCenc;
+#endif // defined(USE_PROPRIETARY_CODECS)
+ info.max_audio_robustness = EmeRobustness::EMPTY;
+ info.max_video_robustness = EmeRobustness::EMPTY;
+ // Assume that platform key systems support no features but can and will
+ // make use of persistence and identifiers.
+ info.persistent_license_support =
+ media::EmeSessionTypeSupport::NOT_SUPPORTED;
+ info.persistent_release_message_support =
+ media::EmeSessionTypeSupport::NOT_SUPPORTED;
+ info.persistent_state_support = media::EmeFeatureSupport::ALWAYS_ENABLED;
+ info.distinctive_identifier_support =
+ media::EmeFeatureSupport::ALWAYS_ENABLED;
+ concrete_key_systems->push_back(info);
}
}
}
« no previous file with comments | « components/cdm/renderer/android_key_systems.h ('k') | components/cdm/renderer/widevine_key_system_properties.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698