pass encryption_modes_supported to CdmInfo
This commit is contained in:
parent
e721388bac
commit
ce2c8e358d
1 changed files with 21 additions and 4 deletions
|
@ -41,8 +41,11 @@ namespace atom {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
#if defined(WIDEVINE_CDM_AVAILABLE)
|
#if defined(WIDEVINE_CDM_AVAILABLE)
|
||||||
bool IsWidevineAvailable(base::FilePath* cdm_path,
|
bool IsWidevineAvailable(
|
||||||
std::vector<media::VideoCodec>* codecs_supported) {
|
base::FilePath* cdm_path,
|
||||||
|
std::vector<media::VideoCodec>* codecs_supported,
|
||||||
|
bool* supports_persistent_license,
|
||||||
|
base::flat_set<media::EncryptionMode>* modes_supported) {
|
||||||
static enum {
|
static enum {
|
||||||
NOT_CHECKED,
|
NOT_CHECKED,
|
||||||
FOUND,
|
FOUND,
|
||||||
|
@ -68,6 +71,16 @@ bool IsWidevineAvailable(base::FilePath* cdm_path,
|
||||||
codecs_supported->push_back(media::VideoCodec::kCodecH264);
|
codecs_supported->push_back(media::VideoCodec::kCodecH264);
|
||||||
#endif // BUILDFLAG(USE_PROPRIETARY_CODECS)
|
#endif // BUILDFLAG(USE_PROPRIETARY_CODECS)
|
||||||
|
|
||||||
|
// TODO(crbug.com/767941): Push persistent-license support info here once
|
||||||
|
// we check in a new CDM that supports it on Linux.
|
||||||
|
#if defined(OS_CHROMEOS)
|
||||||
|
*supports_persistent_license = true;
|
||||||
|
#else
|
||||||
|
*supports_persistent_license = false;
|
||||||
|
#endif // defined(OS_CHROMEOS)
|
||||||
|
|
||||||
|
modes_supported->insert(media::EncryptionMode::kCenc);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,7 +226,10 @@ void AtomContentClient::AddContentDecryptionModules(
|
||||||
base::FilePath cdm_path;
|
base::FilePath cdm_path;
|
||||||
std::vector<media::VideoCodec> video_codecs_supported;
|
std::vector<media::VideoCodec> video_codecs_supported;
|
||||||
bool supports_persistent_license = false;
|
bool supports_persistent_license = false;
|
||||||
if (IsWidevineAvailable(&cdm_path, &video_codecs_supported)) {
|
base::flat_set<media::EncryptionMode> encryption_modes_supported;
|
||||||
|
if (IsWidevineAvailable(&cdm_path, &video_codecs_supported,
|
||||||
|
&supports_persistent_license,
|
||||||
|
&encryption_modes_supported)) {
|
||||||
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
||||||
auto cdm_version_string =
|
auto cdm_version_string =
|
||||||
command_line->GetSwitchValueASCII(switches::kWidevineCdmVersion);
|
command_line->GetSwitchValueASCII(switches::kWidevineCdmVersion);
|
||||||
|
@ -226,7 +242,8 @@ void AtomContentClient::AddContentDecryptionModules(
|
||||||
cdms->push_back(content::CdmInfo(
|
cdms->push_back(content::CdmInfo(
|
||||||
kWidevineCdmDisplayName, kWidevineCdmGuid, version, cdm_path,
|
kWidevineCdmDisplayName, kWidevineCdmGuid, version, cdm_path,
|
||||||
kWidevineCdmFileSystemId, video_codecs_supported,
|
kWidevineCdmFileSystemId, video_codecs_supported,
|
||||||
supports_persistent_license, kWidevineKeySystem, false));
|
supports_persistent_license, encryption_modes_supported,
|
||||||
|
kWidevineKeySystem, false));
|
||||||
}
|
}
|
||||||
#endif // defined(WIDEVINE_CDM_AVAILABLE)
|
#endif // defined(WIDEVINE_CDM_AVAILABLE)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue