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

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

Issue 2268283003: media: Add External Clear Key content browser test on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 4 years, 3 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/external_clear_key_key_system_properties.cc
diff --git a/components/cdm/renderer/external_clear_key_key_system_properties.cc b/components/cdm/renderer/external_clear_key_key_system_properties.cc
new file mode 100644
index 0000000000000000000000000000000000000000..5771ec2af558afca3907879462cfd46cc6db421b
--- /dev/null
+++ b/components/cdm/renderer/external_clear_key_key_system_properties.cc
@@ -0,0 +1,89 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/cdm/renderer/external_clear_key_key_system_properties.h"
+
+#include "base/logging.h"
+#include "media/base/eme_constants.h"
+
+namespace cdm {
+
+#if defined(ENABLE_PEPPER_CDMS)
+const char kExternalClearKeyPepperType[] = "application/x-ppapi-clearkey-cdm";
+#endif
+
+ExternalClearKeyProperties::ExternalClearKeyProperties(
+ const std::string& key_system_name)
+ : key_system_name_(key_system_name) {}
+
+ExternalClearKeyProperties::~ExternalClearKeyProperties() {}
+
+std::string ExternalClearKeyProperties::GetKeySystemName() const {
+ return key_system_name_;
+}
+
+bool ExternalClearKeyProperties::IsSupportedInitDataType(
+ media::EmeInitDataType init_data_type) const {
+ switch (init_data_type) {
+ case media::EmeInitDataType::WEBM:
+ case media::EmeInitDataType::KEYIDS:
+ return true;
+
+ case media::EmeInitDataType::CENC:
+#if defined(USE_PROPRIETARY_CODECS)
+ return true;
+#else
+ return false;
+#endif // defined(USE_PROPRIETARY_CODECS)
+
+ case media::EmeInitDataType::UNKNOWN:
+ return false;
+ }
+ NOTREACHED();
+ return false;
+}
+
+media::SupportedCodecs ExternalClearKeyProperties::GetSupportedCodecs() const {
+#if defined(USE_PROPRIETARY_CODECS)
+ return media::EME_CODEC_MP4_ALL | media::EME_CODEC_WEBM_ALL;
+#else
+ return media::EME_CODEC_WEBM_ALL;
+#endif
+}
+
+media::EmeConfigRule ExternalClearKeyProperties::GetRobustnessConfigRule(
+ media::EmeMediaType media_type,
+ const std::string& requested_robustness) const {
+ return requested_robustness.empty() ? media::EmeConfigRule::SUPPORTED
+ : media::EmeConfigRule::NOT_SUPPORTED;
+}
+
+// Persistent license sessions are faked.
+media::EmeSessionTypeSupport
+ExternalClearKeyProperties::GetPersistentLicenseSessionSupport() const {
+ return media::EmeSessionTypeSupport::SUPPORTED;
+}
+
+media::EmeSessionTypeSupport
+ExternalClearKeyProperties::GetPersistentReleaseMessageSessionSupport() const {
+ return media::EmeSessionTypeSupport::NOT_SUPPORTED;
+}
+
+media::EmeFeatureSupport ExternalClearKeyProperties::GetPersistentStateSupport()
+ const {
+ return media::EmeFeatureSupport::REQUESTABLE;
+}
+
+media::EmeFeatureSupport
+ExternalClearKeyProperties::GetDistinctiveIdentifierSupport() const {
+ return media::EmeFeatureSupport::NOT_SUPPORTED;
+}
+
+#if defined(ENABLE_PEPPER_CDMS)
+std::string ExternalClearKeyProperties::GetPepperType() const {
+ return kExternalClearKeyPepperType;
+}
+#endif
+
+} // namespace cdm

Powered by Google App Engine
This is Rietveld 408576698