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

Side by Side Diff: chrome/renderer/media/chrome_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, 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/renderer/media/chrome_key_systems.h" 5 #include "chrome/renderer/media/chrome_key_systems.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/strings/string16.h" 13 #include "base/strings/string16.h"
14 #include "base/strings/string_split.h" 14 #include "base/strings/string_split.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "build/build_config.h" 16 #include "build/build_config.h"
17 #include "chrome/common/render_messages.h" 17 #include "chrome/common/render_messages.h"
18 #include "components/cdm/renderer/widevine_key_systems.h"
18 #include "content/public/renderer/render_thread.h" 19 #include "content/public/renderer/render_thread.h"
19 #include "media/base/eme_constants.h" 20 #include "media/base/eme_constants.h"
20 #include "media/base/key_system_info.h"
21 #include "media/base/key_system_properties.h"
22
23 #include "media/media_features.h" 21 #include "media/media_features.h"
24 22
25 #if defined(OS_ANDROID) 23 #if defined(OS_ANDROID)
26 #include "components/cdm/renderer/android_key_systems.h" 24 #include "components/cdm/renderer/android_key_systems.h"
27 #endif 25 #endif
28 26
29 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. 27 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
30 28
31 // The following must be after widevine_cdm_version.h. 29 // The following must be after widevine_cdm_version.h.
32 30
33 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_MIN_GLIBC_VERSION) 31 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_MIN_GLIBC_VERSION)
34 #include <gnu/libc-version.h> 32 #include <gnu/libc-version.h>
35 #include "base/version.h" 33 #include "base/version.h"
36 #endif 34 #endif
37 35
38 using media::KeySystemInfo; 36 using media::KeySystemInfo;
39 using media::KeySystemProperties;
40 using media::SupportedCodecs; 37 using media::SupportedCodecs;
41 38
42 #if defined(ENABLE_PEPPER_CDMS) 39 #if defined(ENABLE_PEPPER_CDMS)
43 static bool IsPepperCdmAvailable( 40 static bool IsPepperCdmAvailable(
44 const std::string& pepper_type, 41 const std::string& pepper_type,
45 std::vector<base::string16>* additional_param_names, 42 std::vector<base::string16>* additional_param_names,
46 std::vector<base::string16>* additional_param_values) { 43 std::vector<base::string16>* additional_param_values) {
47 bool is_available = false; 44 bool is_available = false;
48 content::RenderThread::Get()->Send( 45 content::RenderThread::Get()->Send(
49 new ChromeViewHostMsg_IsInternalPluginAvailableForMimeType( 46 new ChromeViewHostMsg_IsInternalPluginAvailableForMimeType(
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 } 143 }
147 *codecs = base::SplitString( 144 *codecs = base::SplitString(
148 codecs_string, std::string(1, kCdmSupportedCodecsValueDelimiter), 145 codecs_string, std::string(1, kCdmSupportedCodecsValueDelimiter),
149 base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); 146 base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
150 break; 147 break;
151 } 148 }
152 } 149 }
153 } 150 }
154 151
155 static void AddPepperBasedWidevine( 152 static void AddPepperBasedWidevine(
156 std::vector<std::unique_ptr<KeySystemProperties>>* concrete_key_systems) { 153 std::vector<KeySystemInfo>* concrete_key_systems) {
157 #if defined(WIDEVINE_CDM_MIN_GLIBC_VERSION) 154 #if defined(WIDEVINE_CDM_MIN_GLIBC_VERSION)
158 Version glibc_version(gnu_get_libc_version()); 155 Version glibc_version(gnu_get_libc_version());
159 DCHECK(glibc_version.IsValid()); 156 DCHECK(glibc_version.IsValid());
160 if (glibc_version < base::Version(WIDEVINE_CDM_MIN_GLIBC_VERSION)) 157 if (glibc_version < base::Version(WIDEVINE_CDM_MIN_GLIBC_VERSION))
161 return; 158 return;
162 #endif // defined(WIDEVINE_CDM_MIN_GLIBC_VERSION) 159 #endif // defined(WIDEVINE_CDM_MIN_GLIBC_VERSION)
163 160
164 std::vector<base::string16> additional_param_names; 161 std::vector<base::string16> additional_param_names;
165 std::vector<base::string16> additional_param_values; 162 std::vector<base::string16> additional_param_values;
166 if (!IsPepperCdmAvailable(kWidevineCdmPluginMimeType, 163 if (!IsPepperCdmAvailable(kWidevineCdmPluginMimeType,
(...skipping 27 matching lines...) Expand all
194 #if defined(USE_PROPRIETARY_CODECS) 191 #if defined(USE_PROPRIETARY_CODECS)
195 if (codecs[i] == kCdmSupportedCodecAvc1) 192 if (codecs[i] == kCdmSupportedCodecAvc1)
196 supported_codecs |= media::EME_CODEC_MP4_AVC1; 193 supported_codecs |= media::EME_CODEC_MP4_AVC1;
197 #if BUILDFLAG(ENABLE_MP4_VP9_DEMUXING) 194 #if BUILDFLAG(ENABLE_MP4_VP9_DEMUXING)
198 if (codecs[i] == kCdmSupportedCodecVp9) 195 if (codecs[i] == kCdmSupportedCodecVp9)
199 supported_codecs |= media::EME_CODEC_MP4_VP9; 196 supported_codecs |= media::EME_CODEC_MP4_VP9;
200 #endif 197 #endif
201 #endif // defined(USE_PROPRIETARY_CODECS) 198 #endif // defined(USE_PROPRIETARY_CODECS)
202 } 199 }
203 200
204 concrete_key_systems->emplace_back(new cdm::WidevineKeySystemProperties( 201 cdm::AddWidevineWithCodecs(
205 supported_codecs, 202 supported_codecs,
206 #if defined(OS_CHROMEOS) 203 #if defined(OS_CHROMEOS)
207 media::EmeRobustness::HW_SECURE_ALL, // Maximum audio robustness. 204 media::EmeRobustness::HW_SECURE_ALL, // Maximum audio robustness.
208 media::EmeRobustness::HW_SECURE_ALL, // Maximim video robustness. 205 media::EmeRobustness::HW_SECURE_ALL, // Maximim video robustness.
209 media::EmeSessionTypeSupport:: 206 media::EmeSessionTypeSupport::
210 SUPPORTED_WITH_IDENTIFIER, // Persistent-license. 207 SUPPORTED_WITH_IDENTIFIER, // Persistent-license.
211 media::EmeSessionTypeSupport:: 208 media::EmeSessionTypeSupport::
212 NOT_SUPPORTED, // Persistent-release-message. 209 NOT_SUPPORTED, // Persistent-release-message.
213 media::EmeFeatureSupport::REQUESTABLE, // Persistent state. 210 media::EmeFeatureSupport::REQUESTABLE, // Persistent state.
214 media::EmeFeatureSupport::REQUESTABLE)); // Distinctive identifier. 211 media::EmeFeatureSupport::REQUESTABLE, // Distinctive identifier.
215 #else // (Desktop) 212 #else // (Desktop)
216 media::EmeRobustness::SW_SECURE_CRYPTO, // Maximum audio robustness. 213 media::EmeRobustness::SW_SECURE_CRYPTO, // Maximum audio robustness.
217 media::EmeRobustness::SW_SECURE_DECODE, // Maximum video robustness. 214 media::EmeRobustness::SW_SECURE_DECODE, // Maximum video robustness.
218 media::EmeSessionTypeSupport::NOT_SUPPORTED, // persistent-license. 215 media::EmeSessionTypeSupport::NOT_SUPPORTED, // persistent-license.
219 media::EmeSessionTypeSupport:: 216 media::EmeSessionTypeSupport::
220 NOT_SUPPORTED, // persistent-release-message. 217 NOT_SUPPORTED, // persistent-release-message.
221 media::EmeFeatureSupport::REQUESTABLE, // Persistent state. 218 media::EmeFeatureSupport::REQUESTABLE, // Persistent state.
222 media::EmeFeatureSupport::NOT_SUPPORTED)); // Distinctive identifier. 219 media::EmeFeatureSupport::NOT_SUPPORTED, // Distinctive identifier.
223 #endif // defined(OS_CHROMEOS) 220 #endif // defined(OS_CHROMEOS)
221 concrete_key_systems);
224 } 222 }
225 #endif // defined(WIDEVINE_CDM_AVAILABLE) 223 #endif // defined(WIDEVINE_CDM_AVAILABLE)
226 #endif // defined(ENABLE_PEPPER_CDMS) 224 #endif // defined(ENABLE_PEPPER_CDMS)
227 225
228 void AddChromeKeySystemsInfo(std::vector<KeySystemInfo>* key_systems_info) { 226 void AddChromeKeySystems(std::vector<KeySystemInfo>* key_systems_info) {
229 #if defined(ENABLE_PEPPER_CDMS) 227 #if defined(ENABLE_PEPPER_CDMS)
230 AddExternalClearKey(key_systems_info); 228 AddExternalClearKey(key_systems_info);
231 #endif
232 }
233 229
234 void AddChromeKeySystems(
235 std::vector<std::unique_ptr<KeySystemProperties>>* key_systems_properties) {
236 #if defined(ENABLE_PEPPER_CDMS)
237 #if defined(WIDEVINE_CDM_AVAILABLE) 230 #if defined(WIDEVINE_CDM_AVAILABLE)
238 AddPepperBasedWidevine(key_systems_properties); 231 AddPepperBasedWidevine(key_systems_info);
239 #endif // defined(WIDEVINE_CDM_AVAILABLE) 232 #endif // defined(WIDEVINE_CDM_AVAILABLE)
240 #endif // defined(ENABLE_PEPPER_CDMS) 233 #endif // defined(ENABLE_PEPPER_CDMS)
241 234
242 #if defined(OS_ANDROID) 235 #if defined(OS_ANDROID)
243 cdm::AddAndroidWidevine(key_systems_properties); 236 cdm::AddAndroidWidevine(key_systems_info);
244 #endif // defined(OS_ANDROID) 237 #endif // defined(OS_ANDROID)
245 } 238 }
OLDNEW
« no previous file with comments | « chrome/renderer/media/chrome_key_systems.h ('k') | chromecast/renderer/cast_content_renderer_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698