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

Unified Diff: content/renderer/media/crypto/key_systems.h

Issue 23464005: Explicitly register each key system. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Clear Key on Android Created 7 years, 4 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 | « no previous file | content/renderer/media/crypto/key_systems.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/crypto/key_systems.h
diff --git a/content/renderer/media/crypto/key_systems.h b/content/renderer/media/crypto/key_systems.h
index 1932e1eb33048d6c0f0e83dbcdb35f04277bb29f..4657842697825172b8c8923ba115377f3d814dcd 100644
--- a/content/renderer/media/crypto/key_systems.h
+++ b/content/renderer/media/crypto/key_systems.h
@@ -32,6 +32,32 @@ class WebString;
namespace content {
+// Adds a concrete key system along with platform-specific information about how
+// to instantiate it. Must be called before AddSupportedType().
+// May only be called once per |concrete_key_system|.
+// When not empty, |parent_key_system| will add a mapping to the
+// |concrete_key_system| that can be used to check supported types.
+// Only one parent key system is currently supported per concrete key system.
+CONTENT_EXPORT void AddConcreteSupportedKeySystem(
+ const std::string& concrete_key_system,
+ bool use_aes_decryptor,
+#if defined(ENABLE_PEPPER_CDMS)
+ const std::string& pepper_type,
+#elif defined(OS_ANDROID)
+ const uint8 uuid[16],
+#endif
+ const std::string& parent_key_system);
+
+// Specifies the container and codec combinations supported by
+// |concrete_key_system|.
+// Multiple codecs can be listed. In all cases, the container
+// without a codec is also supported.
+// |concrete_key_system| must be a concrete supported key system previously
+// added using AddConcreteSupportedKeySystem().
+CONTENT_EXPORT void AddSupportedType(const std::string& concrete_key_system,
+ const std::string& mime_type,
+ const std::string& codecs_list);
+
// Returns whether |key_system| is a real supported key system that can be
// instantiated.
// Abstract parent |key_system| strings will return false.
@@ -51,17 +77,15 @@ CONTENT_EXPORT bool IsSupportedKeySystemWithMediaMimeType(
CONTENT_EXPORT std::string KeySystemNameForUMA(
const WebKit::WebString& key_system);
-// Returns whether AesDecryptor can be used for the given |key_system|.
-CONTENT_EXPORT bool CanUseAesDecryptor(const std::string& key_system);
+// Returns whether AesDecryptor can be used for the given |concrete_key_system|.
+CONTENT_EXPORT bool CanUseAesDecryptor(const std::string& concrete_key_system);
#if defined(ENABLE_PEPPER_CDMS)
// Returns the Pepper MIME type for |concrete_key_system|.
// Returns empty string if |concrete_key_system| is unknown or not Pepper-based.
CONTENT_EXPORT std::string GetPepperType(
const std::string& concrete_key_system);
-#endif
-
-#if defined(OS_ANDROID)
+#elif defined(OS_ANDROID)
// Convert |concrete_key_system| to 16-byte Android UUID.
CONTENT_EXPORT std::vector<uint8> GetUUID(
const std::string& concrete_key_system);
« no previous file with comments | « no previous file | content/renderer/media/crypto/key_systems.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698