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

Unified Diff: chrome/renderer/media/chrome_key_systems.cc

Issue 253593002: Componentize EncryptedMediaMessageFilter and rename it CdmMessageFilter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed the empty library problem in macos build. Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/DEPS ('k') | components/cdm.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/media/chrome_key_systems.cc
diff --git a/chrome/renderer/media/chrome_key_systems.cc b/chrome/renderer/media/chrome_key_systems.cc
index 71937fd87c2f95bbd5622b15a47e60dcc7b3d57b..818d4010ac9c6a1494ceb80a87fdcb17ed26c3ce 100644
--- a/chrome/renderer/media/chrome_key_systems.cc
+++ b/chrome/renderer/media/chrome_key_systems.cc
@@ -12,6 +12,7 @@
#include "base/strings/string_split.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/common/render_messages.h"
+#include "components/cdm/renderer/widevine_key_systems.h"
#include "content/public/renderer/render_thread.h"
#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
@@ -23,10 +24,6 @@
#include "base/version.h"
#endif
-#if defined(OS_ANDROID)
-#include "chrome/common/encrypted_media_messages_android.h"
-#endif
-
using content::KeySystemInfo;
using content::SupportedCodecs;
@@ -99,76 +96,12 @@ static void AddExternalClearKey(
info.key_system = kExternalClearKeyCrashKeySystem;
concrete_key_systems->push_back(info);
}
-#endif // defined(ENABLE_PEPPER_CDMS)
-
#if defined(WIDEVINE_CDM_AVAILABLE)
-enum WidevineCdmType {
- WIDEVINE,
- WIDEVINE_HR,
-#if defined(OS_ANDROID)
- WIDEVINE_HR_NON_COMPOSITING,
-#endif
-};
-
-#if !defined(OS_ANDROID)
-static bool IsWidevineHrSupported() {
- // TODO(jrummell): Need to call CheckPlatformState() but it is
- // asynchronous, and needs to be done in the browser.
- return false;
-}
-#endif
-
-// Return |name|'s parent key system.
-static std::string GetDirectParentName(std::string name) {
- int last_period = name.find_last_of('.');
- DCHECK_GT(last_period, 0);
- return name.substr(0, last_period);
-}
-
-static void AddWidevineWithCodecs(
- WidevineCdmType widevine_cdm_type,
- SupportedCodecs supported_codecs,
- std::vector<KeySystemInfo>* concrete_key_systems) {
- KeySystemInfo info(kWidevineKeySystem);
-
- switch (widevine_cdm_type) {
- case WIDEVINE:
- // For standard Widevine, add parent name.
- info.parent_key_system = GetDirectParentName(kWidevineKeySystem);
- break;
- case WIDEVINE_HR:
- info.key_system.append(".hr");
- break;
-#if defined(OS_ANDROID)
- case WIDEVINE_HR_NON_COMPOSITING:
- info.key_system.append(".hrnoncompositing");
- break;
-#endif
- default:
- NOTREACHED();
- }
-
- // TODO(xhwang): A container or an initDataType may be supported even though
- // there are no codecs supported in that container. Fix this when we support
- // initDataType.
- info.supported_codecs = supported_codecs;
-
-#if defined(ENABLE_PEPPER_CDMS)
- info.pepper_type = kWidevineCdmPluginMimeType;
-#endif // defined(ENABLE_PEPPER_CDMS)
-
- concrete_key_systems->push_back(info);
-}
-
-#if defined(ENABLE_PEPPER_CDMS)
-// When the adapter is registered, a name-value pair is inserted in
-// additional_param_* that lists the supported codecs. The name is "codecs" and
-// the value is a comma-delimited list of codecs.
// This function finds "codecs" and parses the value into the vector |codecs|.
// Converts the codec strings to UTF-8 since we only expect ASCII strings and
// this simplifies the rest of the code in this file.
-void GetSupportedCodecs(
+void GetSupportedCodecsForPepperCdm(
const std::vector<base::string16>& additional_param_names,
const std::vector<base::string16>& additional_param_values,
std::vector<std::string>* codecs) {
@@ -212,7 +145,9 @@ static void AddPepperBasedWidevine(
}
std::vector<std::string> codecs;
- GetSupportedCodecs(additional_param_names, additional_param_values, &codecs);
+ GetSupportedCodecsForPepperCdm(additional_param_names,
+ additional_param_values,
+ &codecs);
SupportedCodecs supported_codecs = content::EME_CODEC_NONE;
for (size_t i = 0; i < codecs.size(); ++i) {
@@ -230,52 +165,23 @@ static void AddPepperBasedWidevine(
#endif // defined(USE_PROPRIETARY_CODECS)
}
- AddWidevineWithCodecs(WIDEVINE, supported_codecs, concrete_key_systems);
-
- if (IsWidevineHrSupported())
- AddWidevineWithCodecs(WIDEVINE_HR, supported_codecs, concrete_key_systems);
-}
-#elif defined(OS_ANDROID)
-static void AddAndroidWidevine(
- std::vector<KeySystemInfo>* concrete_key_systems) {
- SupportedKeySystemRequest request;
- SupportedKeySystemResponse response;
-
- request.key_system = kWidevineKeySystem;
- request.codecs = content::EME_CODEC_WEBM_ALL | content::EME_CODEC_MP4_ALL;
- content::RenderThread::Get()->Send(
- new ChromeViewHostMsg_GetSupportedKeySystems(request, &response));
- DCHECK(response.compositing_codecs & content::EME_CODEC_ALL)
- << "unrecognized codec";
- DCHECK(response.non_compositing_codecs & content::EME_CODEC_ALL)
- << "unrecognized codec";
- if (response.compositing_codecs != content::EME_CODEC_NONE) {
- AddWidevineWithCodecs(
- WIDEVINE,
- static_cast<SupportedCodecs>(response.compositing_codecs),
- concrete_key_systems);
- }
-
- if (response.non_compositing_codecs != content::EME_CODEC_NONE) {
- AddWidevineWithCodecs(
- WIDEVINE_HR_NON_COMPOSITING,
- static_cast<SupportedCodecs>(response.non_compositing_codecs),
- concrete_key_systems);
- }
+ cdm::AddWidevineWithCodecs(cdm::WIDEVINE,
+ supported_codecs,
+ concrete_key_systems);
}
-#endif // defined(ENABLE_PEPPER_CDMS)
#endif // defined(WIDEVINE_CDM_AVAILABLE)
+#endif // defined(ENABLE_PEPPER_CDMS)
void AddChromeKeySystems(std::vector<KeySystemInfo>* key_systems_info) {
#if defined(ENABLE_PEPPER_CDMS)
AddExternalClearKey(key_systems_info);
-#endif
#if defined(WIDEVINE_CDM_AVAILABLE)
-#if defined(ENABLE_PEPPER_CDMS)
AddPepperBasedWidevine(key_systems_info);
-#elif defined(OS_ANDROID)
- AddAndroidWidevine(key_systems_info);
-#endif
-#endif
+#endif // defined(WIDEVINE_CDM_AVAILABLE)
+#endif // defined(ENABLE_PEPPER_CDMS)
+
+#if defined(OS_ANDROID)
+ cdm::AddAndroidWidevine(key_systems_info);
+#endif // defined(OS_ANDROID)
}
« no previous file with comments | « chrome/renderer/DEPS ('k') | components/cdm.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698