| OLD | NEW |
| 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 <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "base/strings/string16.h" | 11 #include "base/strings/string16.h" |
| 12 #include "base/strings/string_split.h" | 12 #include "base/strings/string_split.h" |
| 13 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
| 14 #include "chrome/common/render_messages.h" | 14 #include "chrome/common/render_messages.h" |
| 15 #include "components/cdm/renderer/widevine_key_systems.h" | 15 #include "components/cdm/renderer/widevine_key_systems.h" |
| 16 #include "content/public/common/eme_constants.h" | |
| 17 #include "content/public/renderer/render_thread.h" | 16 #include "content/public/renderer/render_thread.h" |
| 17 #include "media/base/eme_constants.h" |
| 18 | 18 |
| 19 #if defined(OS_ANDROID) | 19 #if defined(OS_ANDROID) |
| 20 #include "components/cdm/renderer/android_key_systems.h" | 20 #include "components/cdm/renderer/android_key_systems.h" |
| 21 #endif | 21 #endif |
| 22 | 22 |
| 23 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. | 23 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. |
| 24 | 24 |
| 25 // The following must be after widevine_cdm_version.h. | 25 // The following must be after widevine_cdm_version.h. |
| 26 | 26 |
| 27 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_MIN_GLIBC_VERSION) | 27 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_MIN_GLIBC_VERSION) |
| 28 #include <gnu/libc-version.h> | 28 #include <gnu/libc-version.h> |
| 29 #include "base/version.h" | 29 #include "base/version.h" |
| 30 #endif | 30 #endif |
| 31 | 31 |
| 32 using content::KeySystemInfo; | 32 using media::KeySystemInfo; |
| 33 using content::SupportedCodecs; | 33 using media::SupportedCodecs; |
| 34 | 34 |
| 35 #if defined(ENABLE_PEPPER_CDMS) | 35 #if defined(ENABLE_PEPPER_CDMS) |
| 36 static bool IsPepperCdmAvailable( | 36 static bool IsPepperCdmAvailable( |
| 37 const std::string& pepper_type, | 37 const std::string& pepper_type, |
| 38 std::vector<base::string16>* additional_param_names, | 38 std::vector<base::string16>* additional_param_names, |
| 39 std::vector<base::string16>* additional_param_values) { | 39 std::vector<base::string16>* additional_param_values) { |
| 40 bool is_available = false; | 40 bool is_available = false; |
| 41 content::RenderThread::Get()->Send( | 41 content::RenderThread::Get()->Send( |
| 42 new ChromeViewHostMsg_IsInternalPluginAvailableForMimeType( | 42 new ChromeViewHostMsg_IsInternalPluginAvailableForMimeType( |
| 43 pepper_type, | 43 pepper_type, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 67 std::vector<base::string16> additional_param_names; | 67 std::vector<base::string16> additional_param_names; |
| 68 std::vector<base::string16> additional_param_values; | 68 std::vector<base::string16> additional_param_values; |
| 69 if (!IsPepperCdmAvailable(kExternalClearKeyPepperType, | 69 if (!IsPepperCdmAvailable(kExternalClearKeyPepperType, |
| 70 &additional_param_names, | 70 &additional_param_names, |
| 71 &additional_param_values)) { | 71 &additional_param_values)) { |
| 72 return; | 72 return; |
| 73 } | 73 } |
| 74 | 74 |
| 75 KeySystemInfo info(kExternalClearKeyKeySystem); | 75 KeySystemInfo info(kExternalClearKeyKeySystem); |
| 76 | 76 |
| 77 info.supported_codecs = content::EME_CODEC_WEBM_ALL; | 77 info.supported_codecs = media::EME_CODEC_WEBM_ALL; |
| 78 info.supported_init_data_types = content::EME_INIT_DATA_TYPE_WEBM; | 78 info.supported_init_data_types = media::EME_INIT_DATA_TYPE_WEBM; |
| 79 #if defined(USE_PROPRIETARY_CODECS) | 79 #if defined(USE_PROPRIETARY_CODECS) |
| 80 info.supported_codecs |= content::EME_CODEC_MP4_ALL; | 80 info.supported_codecs |= media::EME_CODEC_MP4_ALL; |
| 81 info.supported_init_data_types |= content::EME_INIT_DATA_TYPE_CENC; | 81 info.supported_init_data_types |= media::EME_INIT_DATA_TYPE_CENC; |
| 82 #endif // defined(USE_PROPRIETARY_CODECS) | 82 #endif // defined(USE_PROPRIETARY_CODECS) |
| 83 | 83 |
| 84 info.pepper_type = kExternalClearKeyPepperType; | 84 info.pepper_type = kExternalClearKeyPepperType; |
| 85 | 85 |
| 86 concrete_key_systems->push_back(info); | 86 concrete_key_systems->push_back(info); |
| 87 | 87 |
| 88 // Add support of decrypt-only mode in ClearKeyCdm. | 88 // Add support of decrypt-only mode in ClearKeyCdm. |
| 89 info.key_system = kExternalClearKeyDecryptOnlyKeySystem; | 89 info.key_system = kExternalClearKeyDecryptOnlyKeySystem; |
| 90 concrete_key_systems->push_back(info); | 90 concrete_key_systems->push_back(info); |
| 91 | 91 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 &additional_param_values)) { | 149 &additional_param_values)) { |
| 150 DVLOG(1) << "Widevine CDM is not currently available."; | 150 DVLOG(1) << "Widevine CDM is not currently available."; |
| 151 return; | 151 return; |
| 152 } | 152 } |
| 153 | 153 |
| 154 std::vector<std::string> codecs; | 154 std::vector<std::string> codecs; |
| 155 GetSupportedCodecsForPepperCdm(additional_param_names, | 155 GetSupportedCodecsForPepperCdm(additional_param_names, |
| 156 additional_param_values, | 156 additional_param_values, |
| 157 &codecs); | 157 &codecs); |
| 158 | 158 |
| 159 SupportedCodecs supported_codecs = content::EME_CODEC_NONE; | 159 SupportedCodecs supported_codecs = media::EME_CODEC_NONE; |
| 160 for (size_t i = 0; i < codecs.size(); ++i) { | 160 for (size_t i = 0; i < codecs.size(); ++i) { |
| 161 if (codecs[i] == kCdmSupportedCodecVorbis) | 161 if (codecs[i] == kCdmSupportedCodecVorbis) |
| 162 supported_codecs |= content::EME_CODEC_WEBM_VORBIS; | 162 supported_codecs |= media::EME_CODEC_WEBM_VORBIS; |
| 163 if (codecs[i] == kCdmSupportedCodecVp8) | 163 if (codecs[i] == kCdmSupportedCodecVp8) |
| 164 supported_codecs |= content::EME_CODEC_WEBM_VP8; | 164 supported_codecs |= media::EME_CODEC_WEBM_VP8; |
| 165 if (codecs[i] == kCdmSupportedCodecVp9) | 165 if (codecs[i] == kCdmSupportedCodecVp9) |
| 166 supported_codecs |= content::EME_CODEC_WEBM_VP9; | 166 supported_codecs |= media::EME_CODEC_WEBM_VP9; |
| 167 #if defined(USE_PROPRIETARY_CODECS) | 167 #if defined(USE_PROPRIETARY_CODECS) |
| 168 if (codecs[i] == kCdmSupportedCodecAac) | 168 if (codecs[i] == kCdmSupportedCodecAac) |
| 169 supported_codecs |= content::EME_CODEC_MP4_AAC; | 169 supported_codecs |= media::EME_CODEC_MP4_AAC; |
| 170 if (codecs[i] == kCdmSupportedCodecAvc1) | 170 if (codecs[i] == kCdmSupportedCodecAvc1) |
| 171 supported_codecs |= content::EME_CODEC_MP4_AVC1; | 171 supported_codecs |= media::EME_CODEC_MP4_AVC1; |
| 172 #endif // defined(USE_PROPRIETARY_CODECS) | 172 #endif // defined(USE_PROPRIETARY_CODECS) |
| 173 } | 173 } |
| 174 | 174 |
| 175 cdm::AddWidevineWithCodecs(cdm::WIDEVINE, | 175 cdm::AddWidevineWithCodecs(cdm::WIDEVINE, |
| 176 supported_codecs, | 176 supported_codecs, |
| 177 concrete_key_systems); | 177 concrete_key_systems); |
| 178 } | 178 } |
| 179 #endif // defined(WIDEVINE_CDM_AVAILABLE) | 179 #endif // defined(WIDEVINE_CDM_AVAILABLE) |
| 180 #endif // defined(ENABLE_PEPPER_CDMS) | 180 #endif // defined(ENABLE_PEPPER_CDMS) |
| 181 | 181 |
| 182 void AddChromeKeySystems(std::vector<KeySystemInfo>* key_systems_info) { | 182 void AddChromeKeySystems(std::vector<KeySystemInfo>* key_systems_info) { |
| 183 #if defined(ENABLE_PEPPER_CDMS) | 183 #if defined(ENABLE_PEPPER_CDMS) |
| 184 AddExternalClearKey(key_systems_info); | 184 AddExternalClearKey(key_systems_info); |
| 185 | 185 |
| 186 #if defined(WIDEVINE_CDM_AVAILABLE) | 186 #if defined(WIDEVINE_CDM_AVAILABLE) |
| 187 AddPepperBasedWidevine(key_systems_info); | 187 AddPepperBasedWidevine(key_systems_info); |
| 188 #endif // defined(WIDEVINE_CDM_AVAILABLE) | 188 #endif // defined(WIDEVINE_CDM_AVAILABLE) |
| 189 #endif // defined(ENABLE_PEPPER_CDMS) | 189 #endif // defined(ENABLE_PEPPER_CDMS) |
| 190 | 190 |
| 191 #if defined(OS_ANDROID) | 191 #if defined(OS_ANDROID) |
| 192 cdm::AddAndroidWidevine(key_systems_info); | 192 cdm::AddAndroidWidevine(key_systems_info); |
| 193 #endif // defined(OS_ANDROID) | 193 #endif // defined(OS_ANDROID) |
| 194 } | 194 } |
| OLD | NEW |