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

Side by Side Diff: webkit/media/crypto/key_systems_info.cc

Issue 15028015: Conditionally build support for Pepper-based CDMs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use AppendAscii() where possible. Created 7 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/media/crypto/key_systems_info.h ('k') | webkit/media/crypto/key_systems_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/media/crypto/key_systems_info.h" 5 #include "webkit/media/crypto/key_systems_info.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 8
9 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. 9 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
10 10
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 { "audio/mp4", kWidevineAudioMp4Codecs, kWidevineBaseKeySystem }, 82 { "audio/mp4", kWidevineAudioMp4Codecs, kWidevineBaseKeySystem },
83 #endif // defined(WIDEVINE_CDM_CENC_SUPPORT_AVAILABLE) 83 #endif // defined(WIDEVINE_CDM_CENC_SUPPORT_AVAILABLE)
84 #endif // defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS) 84 #endif // defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS)
85 #endif // defined(DISABLE_WIDEVINE_CDM_CANPLAYTYPE) 85 #endif // defined(DISABLE_WIDEVINE_CDM_CANPLAYTYPE)
86 #endif // WIDEVINE_CDM_AVAILABLE 86 #endif // WIDEVINE_CDM_AVAILABLE
87 }; 87 };
88 88
89 const int kNumSupportedFormatKeySystemCombinations = 89 const int kNumSupportedFormatKeySystemCombinations =
90 arraysize(kSupportedFormatKeySystemCombinations); 90 arraysize(kSupportedFormatKeySystemCombinations);
91 91
92 const KeySystemPluginTypePair kKeySystemToPluginTypeMapping[] = { 92 #if defined(ENABLE_PEPPER_CDMS)
93 // TODO(xhwang): Update this with the real plugin name. 93 const KeySystemPepperTypePair kKeySystemToPepperTypeMapping[] = {
94 { kExternalClearKeyKeySystem, "application/x-ppapi-clearkey-cdm"}, 94 { kExternalClearKeyKeySystem, "application/x-ppapi-clearkey-cdm"},
95 #if defined(WIDEVINE_CDM_AVAILABLE) 95 #if defined(WIDEVINE_CDM_AVAILABLE)
96 { kWidevineKeySystem, kWidevineCdmPluginMimeType} 96 { kWidevineKeySystem, kWidevineCdmPluginMimeType}
97 #endif // WIDEVINE_CDM_AVAILABLE 97 #endif // WIDEVINE_CDM_AVAILABLE
98 }; 98 };
99 99
100 const int kNumKeySystemToPluginTypeMapping = 100 const int kNumKeySystemToPepperTypeMapping =
101 arraysize(kKeySystemToPluginTypeMapping); 101 arraysize(kKeySystemToPepperTypeMapping);
102 #endif // defined(ENABLE_PEPPER_CDMS)
102 103
103 bool IsSystemCompatible(const std::string& key_system) { 104 bool IsSystemCompatible(const std::string& key_system) {
104 #if defined(WIDEVINE_CDM_AVAILABLE) && \ 105 #if defined(WIDEVINE_CDM_AVAILABLE) && \
105 defined(OS_LINUX) && !defined(OS_CHROMEOS) 106 defined(OS_LINUX) && !defined(OS_CHROMEOS)
106 if (key_system == kWidevineKeySystem || 107 if (key_system == kWidevineKeySystem ||
107 key_system == kWidevineBaseKeySystem) { 108 key_system == kWidevineBaseKeySystem) {
108 Version glibc_version(gnu_get_libc_version()); 109 Version glibc_version(gnu_get_libc_version());
109 DCHECK(glibc_version.IsValid()); 110 DCHECK(glibc_version.IsValid());
110 return !glibc_version.IsOlderThan(WIDEVINE_CDM_MIN_GLIBC_VERSION); 111 return !glibc_version.IsOlderThan(WIDEVINE_CDM_MIN_GLIBC_VERSION);
111 } 112 }
112 #endif 113 #endif
113 return true; 114 return true;
114 } 115 }
115 116
116 std::string KeySystemNameForUMAGeneric(const std::string& key_system) { 117 std::string KeySystemNameForUMAGeneric(const std::string& key_system) {
117 if (key_system == kClearKeyKeySystem) 118 if (key_system == kClearKeyKeySystem)
118 return "ClearKey"; 119 return "ClearKey";
119 #if defined(WIDEVINE_CDM_AVAILABLE) 120 #if defined(WIDEVINE_CDM_AVAILABLE)
120 if (key_system == kWidevineKeySystem) 121 if (key_system == kWidevineKeySystem)
121 return "Widevine"; 122 return "Widevine";
122 #endif // WIDEVINE_CDM_AVAILABLE 123 #endif // WIDEVINE_CDM_AVAILABLE
123 return "Unknown"; 124 return "Unknown";
124 } 125 }
125 126
126 bool CanUseBuiltInAesDecryptor(const std::string& key_system) { 127 bool CanUseBuiltInAesDecryptor(const std::string& key_system) {
127 return key_system == kClearKeyKeySystem; 128 return key_system == kClearKeyKeySystem;
128 } 129 }
129 130
130 } // namespace webkit_media 131 } // namespace webkit_media
OLDNEW
« no previous file with comments | « webkit/media/crypto/key_systems_info.h ('k') | webkit/media/crypto/key_systems_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698