Index: webkit/media/crypto/key_systems.cc |
diff --git a/webkit/media/crypto/key_systems.cc b/webkit/media/crypto/key_systems.cc |
index ff7c26db2f42d2d8cecc50e253d52e5a16b958d0..80afab741d0698467e0d46b35484b0836e1e071d 100644 |
--- a/webkit/media/crypto/key_systems.cc |
+++ b/webkit/media/crypto/key_systems.cc |
@@ -38,6 +38,11 @@ struct KeySystemPluginTypePair { |
const char* plugin_type; |
}; |
+// TODO(xhwang): Remove this and ifdefs after fixing http://crbug.com/123421. |
+#define DECRYPT_ONLY_AUDIO_NOT_SUPPORTED |
+// TODO(ddorwin): Automatically support parent systems: http://crbug.com/164303. |
+static const char kWidevineBaseKeySystem[] = "com.widevine"; |
+ |
// Specifies the container and codec combinations supported by individual |
// key systems. Each line is a container-codecs combination and the key system |
// that supports it. Multiple codecs can be listed. A trailing commas in |
@@ -47,12 +52,20 @@ struct KeySystemPluginTypePair { |
static const MediaFormatAndKeySystem |
supported_format_key_system_combinations[] = { |
// Clear Key. |
+#if defined(DECRYPT_ONLY_AUDIO_NOT_SUPPORTED) |
+ { "video/webm", "vp8,vp8.0,", kClearKeyKeySystem }, |
+#else |
{ "video/webm", "vorbis,vp8,vp8.0,", kClearKeyKeySystem }, |
{ "audio/webm", "vorbis,", kClearKeyKeySystem }, |
+#endif |
#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) |
+#if defined(DECRYPT_ONLY_AUDIO_NOT_SUPPORTED) |
+ { "video/mp4", "avc1,", kClearKeyKeySystem }, |
+#else |
{ "video/mp4", "avc1,mp4a,", kClearKeyKeySystem }, |
{ "audio/mp4", "mp4a,", kClearKeyKeySystem }, |
#endif |
+#endif |
// External Clear Key (used for testing). |
{ "video/webm", "vorbis,vp8,vp8.0,", kExternalClearKeyKeySystem }, |
@@ -66,6 +79,16 @@ supported_format_key_system_combinations[] = { |
// Widevine. |
{ "video/webm", "vorbis,vp8,vp8.0,", kWidevineKeySystem }, |
{ "audio/webm", "vorbis,", kWidevineKeySystem }, |
+ { "video/webm", "vorbis,vp8,vp8.0,", kWidevineBaseKeySystem }, |
+ { "audio/webm", "vorbis,", kWidevineBaseKeySystem }, |
+#if defined(WIDEVINE_CDM_CENC_SUPPORT_AVAILABLE) |
+#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) |
+ { "video/mp4", "avc1,mp4a,", kWidevineKeySystem }, |
+ { "audio/mp4", "mp4a,", kWidevineKeySystem }, |
+ { "video/mp4", "avc1,mp4a,", kWidevineBaseKeySystem }, |
+ { "audio/mp4", "mp4a,", kWidevineBaseKeySystem }, |
+#endif |
+#endif |
#endif // WIDEVINE_CDM_AVAILABLE |
}; |
@@ -141,10 +164,6 @@ KeySystems::KeySystems() { |
bool KeySystems::IsSupportedKeySystem(const std::string& key_system) { |
bool is_supported = key_system_map_.find(key_system) != key_system_map_.end(); |
- DCHECK_EQ(is_supported, |
- (CanUseAesDecryptor(key_system) || |
- !GetPluginType(key_system).empty())) |
- << "key_system_map_ & key_system_to_plugin_type_mapping are inconsistent"; |
return is_supported; |
} |