Rename EncryptionMode to EncryptionScheme
The old EncryptionScheme is deprecated and replaced by EncryptionMode.
So rename EncryptionMode to EncryptionScheme.
Now Audio/VideoDecoderConfig only carries EncryptionScheme.
EncryptionPattern is passed to Renderer in DecryptConfig/DecoderBuffer.
Bug: 825041
Test: CQ, build, media_unittests
Change-Id: Iecf8720a20141939460f150d2b6abf092e621117
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1885501
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Commit-Queue: Yuchen Liu <yucliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713930}
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 8dc95a1..b31c1b5 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -3987,7 +3987,7 @@
const std::string& key_system,
const base::flat_set<media::CdmProxy::Protocol>& cdm_proxy_protocols,
base::flat_set<media::VideoCodec>* video_codecs,
- base::flat_set<media::EncryptionMode>* encryption_schemes) {
+ base::flat_set<media::EncryptionScheme>* encryption_schemes) {
#if defined(OS_WIN) && BUILDFLAG(ENABLE_LIBRARY_CDMS) && \
BUILDFLAG(ENABLE_WIDEVINE)
if (key_system == kWidevineKeySystem) {
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
index f0e1c292..64826f0 100644
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -445,7 +445,7 @@
const std::string& key_system,
const base::flat_set<media::CdmProxy::Protocol>& cdm_proxy_protocols,
base::flat_set<media::VideoCodec>* video_codecs,
- base::flat_set<media::EncryptionMode>* encryption_schemes) override;
+ base::flat_set<media::EncryptionScheme>* encryption_schemes) override;
::rappor::RapporService* GetRapporService() override;
#if BUILDFLAG(ENABLE_MEDIA_REMOTING)
void CreateMediaRemoter(
diff --git a/chrome/browser/media/widevine_hardware_caps_win.cc b/chrome/browser/media/widevine_hardware_caps_win.cc
index eadfcc1..357cb82 100644
--- a/chrome/browser/media/widevine_hardware_caps_win.cc
+++ b/chrome/browser/media/widevine_hardware_caps_win.cc
@@ -110,7 +110,7 @@
void GetWidevineHardwareCaps(
const base::flat_set<media::CdmProxy::Protocol>& cdm_proxy_protocols,
base::flat_set<media::VideoCodec>* video_codecs,
- base::flat_set<media::EncryptionMode>* encryption_schemes) {
+ base::flat_set<media::EncryptionScheme>* encryption_schemes) {
DCHECK(!cdm_proxy_protocols.empty());
DCHECK(video_codecs->empty());
DCHECK(encryption_schemes->empty());
@@ -155,5 +155,5 @@
}
if (!video_codecs->empty())
- encryption_schemes->insert(media::EncryptionMode::kCenc);
+ encryption_schemes->insert(media::EncryptionScheme::kCenc);
}
diff --git a/chrome/browser/media/widevine_hardware_caps_win.h b/chrome/browser/media/widevine_hardware_caps_win.h
index 0bd4118..fe159a6 100644
--- a/chrome/browser/media/widevine_hardware_caps_win.h
+++ b/chrome/browser/media/widevine_hardware_caps_win.h
@@ -10,7 +10,7 @@
#include "media/cdm/cdm_proxy.h"
namespace media {
-enum class EncryptionMode;
+enum class EncryptionScheme;
}
// Get supported Widevine hardware capabilities, including supported
@@ -18,6 +18,6 @@
void GetWidevineHardwareCaps(
const base::flat_set<media::CdmProxy::Protocol>& cdm_proxy_protocols,
base::flat_set<media::VideoCodec>* video_codecs,
- base::flat_set<media::EncryptionMode>* encryption_schemes);
+ base::flat_set<media::EncryptionScheme>* encryption_schemes);
#endif // CHROME_BROWSER_MEDIA_WIDEVINE_HARDWARE_CAPS_WIN_H_
diff --git a/chrome/browser/media/widevine_hardware_caps_win_unittest.cc b/chrome/browser/media/widevine_hardware_caps_win_unittest.cc
index 7475e04..7468826 100644
--- a/chrome/browser/media/widevine_hardware_caps_win_unittest.cc
+++ b/chrome/browser/media/widevine_hardware_caps_win_unittest.cc
@@ -13,7 +13,7 @@
base::flat_set<media::CdmProxy::Protocol> cdm_proxy_protocols = {
media::CdmProxy::Protocol::kIntel};
base::flat_set<media::VideoCodec> video_codecs;
- base::flat_set<media::EncryptionMode> encryption_schemes;
+ base::flat_set<media::EncryptionScheme> encryption_schemes;
// Not checking the results since it's hardware dependent.
GetWidevineHardwareCaps(cdm_proxy_protocols, &video_codecs,
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
index a5c5055..8978e11 100644
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -417,8 +417,8 @@
#endif // BUILDFLAG(USE_PROPRIETARY_CODECS)
// Both encryption schemes are supported on ChromeOS.
- capability.encryption_schemes.insert(media::EncryptionMode::kCenc);
- capability.encryption_schemes.insert(media::EncryptionMode::kCbcs);
+ capability.encryption_schemes.insert(media::EncryptionScheme::kCenc);
+ capability.encryption_schemes.insert(media::EncryptionScheme::kCbcs);
// Both temporary and persistent sessions are supported on ChromeOS.
capability.session_types.insert(media::CdmSessionType::kTemporary);
@@ -656,7 +656,7 @@
// Supported codecs are hard-coded in ExternalClearKeyProperties.
content::CdmCapability capability(
- {}, {media::EncryptionMode::kCenc, media::EncryptionMode::kCbcs},
+ {}, {media::EncryptionScheme::kCenc, media::EncryptionScheme::kCbcs},
{media::CdmSessionType::kTemporary,
media::CdmSessionType::kPersistentLicense,
media::CdmSessionType::kPersistentUsageRecord},
diff --git a/chrome/common/media/cdm_manifest.cc b/chrome/common/media/cdm_manifest.cc
index e7147156..a35b5e9 100644
--- a/chrome/common/media/cdm_manifest.cc
+++ b/chrome/common/media/cdm_manifest.cc
@@ -218,7 +218,7 @@
// fail. Unrecognized values will be reported but otherwise ignored.
bool GetEncryptionSchemes(
const base::Value& manifest,
- base::flat_set<media::EncryptionMode>* encryption_schemes) {
+ base::flat_set<media::EncryptionScheme>* encryption_schemes) {
DCHECK(manifest.is_dict());
DCHECK(encryption_schemes);
@@ -227,7 +227,7 @@
if (!value) {
// No manifest entry found, so assume only 'cenc' supported for backwards
// compatibility.
- encryption_schemes->insert(media::EncryptionMode::kCenc);
+ encryption_schemes->insert(media::EncryptionScheme::kCenc);
return true;
}
@@ -238,7 +238,7 @@
}
base::span<const base::Value> list = value->GetList();
- base::flat_set<media::EncryptionMode> result;
+ base::flat_set<media::EncryptionScheme> result;
for (const auto& item : list) {
if (!item.is_string()) {
DLOG(ERROR) << "Unrecognized item type in CDM manifest entry "
@@ -248,9 +248,9 @@
const std::string& scheme = item.GetString();
if (scheme == kCdmSupportedEncryptionSchemeCenc) {
- result.insert(media::EncryptionMode::kCenc);
+ result.insert(media::EncryptionScheme::kCenc);
} else if (scheme == kCdmSupportedEncryptionSchemeCbcs) {
- result.insert(media::EncryptionMode::kCbcs);
+ result.insert(media::EncryptionScheme::kCbcs);
} else {
DLOG(WARNING) << "Unrecognized encryption scheme '" << scheme
<< "' in CDM manifest entry "
diff --git a/chrome/common/media/cdm_manifest_unittest.cc b/chrome/common/media/cdm_manifest_unittest.cc
index b12ee87..df99ccdd 100644
--- a/chrome/common/media/cdm_manifest_unittest.cc
+++ b/chrome/common/media/cdm_manifest_unittest.cc
@@ -107,8 +107,8 @@
}
void CheckEncryptionSchemes(
- const base::flat_set<media::EncryptionMode>& actual,
- const std::vector<media::EncryptionMode>& expected) {
+ const base::flat_set<media::EncryptionScheme>& actual,
+ const std::vector<media::EncryptionScheme>& expected) {
EXPECT_EQ(expected.size(), actual.size());
for (const auto& encryption_scheme : expected) {
EXPECT_TRUE(base::Contains(actual, encryption_scheme));
@@ -198,7 +198,7 @@
media::VideoCodec::kCodecAV1});
CheckEncryptionSchemes(
capability.encryption_schemes,
- {media::EncryptionMode::kCenc, media::EncryptionMode::kCbcs});
+ {media::EncryptionScheme::kCenc, media::EncryptionScheme::kCbcs});
CheckSessionTypes(capability.session_types,
{media::CdmSessionType::kTemporary,
media::CdmSessionType::kPersistentLicense});
@@ -212,7 +212,7 @@
EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
CheckCodecs(capability.video_codecs, {});
CheckEncryptionSchemes(capability.encryption_schemes,
- {media::EncryptionMode::kCenc});
+ {media::EncryptionScheme::kCenc});
CheckSessionTypes(capability.session_types,
{media::CdmSessionType::kTemporary});
CheckProxyProtocols(capability.cdm_proxy_protocols, {});
@@ -298,14 +298,14 @@
manifest.SetKey(kCdmSupportedEncryptionSchemesName, MakeListValue("cenc"));
EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
CheckEncryptionSchemes(capability.encryption_schemes,
- {media::EncryptionMode::kCenc});
+ {media::EncryptionScheme::kCenc});
}
{
CdmCapability capability;
manifest.SetKey(kCdmSupportedEncryptionSchemesName, MakeListValue("cbcs"));
EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
CheckEncryptionSchemes(capability.encryption_schemes,
- {media::EncryptionMode::kCbcs});
+ {media::EncryptionScheme::kCbcs});
}
{
// Try multiple valid entries.
@@ -315,7 +315,7 @@
EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
CheckEncryptionSchemes(
capability.encryption_schemes,
- {media::EncryptionMode::kCenc, media::EncryptionMode::kCbcs});
+ {media::EncryptionScheme::kCenc, media::EncryptionScheme::kCbcs});
}
{
// Invalid encryption schemes are ignored. However, if value specified then
@@ -331,7 +331,7 @@
MakeListValue("invalid", "cenc"));
EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
CheckEncryptionSchemes(capability.encryption_schemes,
- {media::EncryptionMode::kCenc});
+ {media::EncryptionScheme::kCenc});
}
{
// Wrong types are an error.
@@ -345,7 +345,7 @@
EXPECT_TRUE(manifest.RemoveKey(kCdmSupportedEncryptionSchemesName));
EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
CheckEncryptionSchemes(capability.encryption_schemes,
- {media::EncryptionMode::kCenc});
+ {media::EncryptionScheme::kCenc});
}
}
@@ -442,7 +442,7 @@
media::VideoCodec::kCodecAV1});
CheckEncryptionSchemes(
capability.encryption_schemes,
- {media::EncryptionMode::kCenc, media::EncryptionMode::kCbcs});
+ {media::EncryptionScheme::kCenc, media::EncryptionScheme::kCbcs});
CheckSessionTypes(capability.session_types,
{media::CdmSessionType::kTemporary,
media::CdmSessionType::kPersistentLicense});
@@ -522,7 +522,7 @@
EXPECT_TRUE(ParseCdmManifestFromPath(manifest_path, &version, &capability));
CheckCodecs(capability.video_codecs, {});
CheckEncryptionSchemes(capability.encryption_schemes,
- {media::EncryptionMode::kCenc});
+ {media::EncryptionScheme::kCenc});
CheckSessionTypes(capability.session_types,
{media::CdmSessionType::kTemporary});
CheckProxyProtocols(capability.cdm_proxy_protocols, {});
diff --git a/chrome/renderer/media/chrome_key_systems_provider_unittest.cc b/chrome/renderer/media/chrome_key_systems_provider_unittest.cc
index a57a4ab..31c21b1 100644
--- a/chrome/renderer/media/chrome_key_systems_provider_unittest.cc
+++ b/chrome/renderer/media/chrome_key_systems_provider_unittest.cc
@@ -29,7 +29,7 @@
}
media::EmeConfigRule GetEncryptionSchemeConfigRule(
- media::EncryptionMode encryption_scheme) const override {
+ media::EncryptionScheme encryption_scheme) const override {
return media::EmeConfigRule::NOT_SUPPORTED;
}
diff --git a/chromecast/media/cma/base/decoder_config_adapter.cc b/chromecast/media/cma/base/decoder_config_adapter.cc
index fad7a9f..2b60efc 100644
--- a/chromecast/media/cma/base/decoder_config_adapter.cc
+++ b/chromecast/media/cma/base/decoder_config_adapter.cc
@@ -130,28 +130,13 @@
}
}
-::media::EncryptionScheme::CipherMode ToMediaCipherMode(
- EncryptionScheme scheme) {
+EncryptionScheme ToEncryptionScheme(::media::EncryptionScheme scheme) {
switch (scheme) {
- case EncryptionScheme::kUnencrypted:
- return ::media::EncryptionScheme::CIPHER_MODE_UNENCRYPTED;
- case EncryptionScheme::kAesCtr:
- return ::media::EncryptionScheme::CIPHER_MODE_AES_CTR;
- case EncryptionScheme::kAesCbc:
- return ::media::EncryptionScheme::CIPHER_MODE_AES_CBC;
- default:
- NOTREACHED();
- return ::media::EncryptionScheme::CIPHER_MODE_UNENCRYPTED;
- }
-}
-
-EncryptionScheme ToEncryptionScheme(const ::media::EncryptionScheme& scheme) {
- switch (scheme.mode()) {
- case ::media::EncryptionScheme::CIPHER_MODE_UNENCRYPTED:
+ case ::media::EncryptionScheme::kUnencrypted:
return EncryptionScheme::kUnencrypted;
- case ::media::EncryptionScheme::CIPHER_MODE_AES_CTR:
+ case ::media::EncryptionScheme::kCenc:
return EncryptionScheme::kAesCtr;
- case ::media::EncryptionScheme::CIPHER_MODE_AES_CBC:
+ case ::media::EncryptionScheme::kCbcs:
return EncryptionScheme::kAesCbc;
default:
NOTREACHED();
@@ -159,10 +144,18 @@
}
}
-// TODO(yucliu): Remove pattern after update ::media::Audio/VideoDecoderConfig.
::media::EncryptionScheme ToMediaEncryptionScheme(EncryptionScheme scheme) {
- return ::media::EncryptionScheme(ToMediaCipherMode(scheme),
- ::media::EncryptionPattern());
+ switch (scheme) {
+ case EncryptionScheme::kUnencrypted:
+ return ::media::EncryptionScheme::kUnencrypted;
+ case EncryptionScheme::kAesCtr:
+ return ::media::EncryptionScheme::kCenc;
+ case EncryptionScheme::kAesCbc:
+ return ::media::EncryptionScheme::kCbcs;
+ default:
+ NOTREACHED();
+ return ::media::EncryptionScheme::kUnencrypted;
+ }
}
} // namespace
diff --git a/chromecast/media/cma/base/demuxer_stream_for_test.cc b/chromecast/media/cma/base/demuxer_stream_for_test.cc
index 99d79204..f1c11a720 100644
--- a/chromecast/media/cma/base/demuxer_stream_for_test.cc
+++ b/chromecast/media/cma/base/demuxer_stream_for_test.cc
@@ -61,7 +61,7 @@
::media::VideoDecoderConfig::AlphaMode::kIsOpaque,
::media::VideoColorSpace(), ::media::kNoTransformation, coded_size,
visible_rect, natural_size, ::media::EmptyExtraData(),
- ::media::Unencrypted());
+ ::media::EncryptionScheme::kUnencrypted);
}
::media::DemuxerStream::Type DemuxerStreamForTest::type() const {
diff --git a/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc b/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
index 3eb5c38..e20fdf1a 100644
--- a/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
+++ b/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
@@ -137,7 +137,7 @@
::media::AudioDecoderConfig audio_config(
::media::kCodecMP3, ::media::kSampleFormatS16,
::media::CHANNEL_LAYOUT_STEREO, 44100, ::media::EmptyExtraData(),
- ::media::Unencrypted());
+ ::media::EncryptionScheme::kUnencrypted);
AvPipelineClient client;
client.eos_cb = base::Bind(&PipelineHelper::OnEos, base::Unretained(this),
STREAM_AUDIO);
diff --git a/chromecast/media/cma/test/mock_frame_provider.cc b/chromecast/media/cma/test/mock_frame_provider.cc
index 6b4e19b9..b7c5568 100644
--- a/chromecast/media/cma/test/mock_frame_provider.cc
+++ b/chromecast/media/cma/test/mock_frame_provider.cc
@@ -84,15 +84,12 @@
::media::VideoDecoderConfig::AlphaMode::kIsOpaque,
::media::VideoColorSpace(), ::media::kNoTransformation, coded_size,
visible_rect, natural_size, ::media::EmptyExtraData(),
- ::media::Unencrypted());
+ ::media::EncryptionScheme::kUnencrypted);
audio_config = ::media::AudioDecoderConfig(
- ::media::kCodecAAC,
- ::media::kSampleFormatS16,
- ::media::CHANNEL_LAYOUT_STEREO,
- 44100,
- ::media::EmptyExtraData(),
- ::media::Unencrypted());
+ ::media::kCodecAAC, ::media::kSampleFormatS16,
+ ::media::CHANNEL_LAYOUT_STEREO, 44100, ::media::EmptyExtraData(),
+ ::media::EncryptionScheme::kUnencrypted);
}
read_cb.Run(buffer, audio_config, video_config);
diff --git a/chromecast/renderer/media/key_systems_cast.cc b/chromecast/renderer/media/key_systems_cast.cc
index 21166af..b06c086 100644
--- a/chromecast/renderer/media/key_systems_cast.cc
+++ b/chromecast/renderer/media/key_systems_cast.cc
@@ -97,8 +97,8 @@
}
EmeConfigRule GetEncryptionSchemeConfigRule(
- ::media::EncryptionMode encryption_mode) const override {
- if (encryption_mode == ::media::EncryptionMode::kCenc)
+ ::media::EncryptionScheme encryption_scheme) const override {
+ if (encryption_scheme == ::media::EncryptionScheme::kCenc)
return EmeConfigRule::SUPPORTED;
return EmeConfigRule::NOT_SUPPORTED;
}
@@ -162,8 +162,8 @@
#if BUILDFLAG(ENABLE_WIDEVINE)
using Robustness = cdm::WidevineKeySystemProperties::Robustness;
- base::flat_set<::media::EncryptionMode> encryption_schemes = {
- ::media::EncryptionMode::kCenc, ::media::EncryptionMode::kCbcs};
+ base::flat_set<::media::EncryptionScheme> encryption_schemes = {
+ ::media::EncryptionScheme::kCenc, ::media::EncryptionScheme::kCbcs};
key_systems_properties->emplace_back(new cdm::WidevineKeySystemProperties(
codecs, // Regular codecs.
diff --git a/components/cdm/renderer/android_key_systems.cc b/components/cdm/renderer/android_key_systems.cc
index ccfcca0..4065088b 100644
--- a/components/cdm/renderer/android_key_systems.cc
+++ b/components/cdm/renderer/android_key_systems.cc
@@ -61,8 +61,8 @@
}
EmeConfigRule GetEncryptionSchemeConfigRule(
- media::EncryptionMode encryption_scheme) const override {
- return encryption_scheme == media::EncryptionMode::kCenc
+ media::EncryptionScheme encryption_scheme) const override {
+ return encryption_scheme == media::EncryptionScheme::kCenc
? EmeConfigRule::SUPPORTED
: EmeConfigRule::NOT_SUPPORTED;
}
@@ -140,10 +140,10 @@
if (codecs != media::EME_CODEC_NONE) {
DVLOG(3) << __func__ << " Widevine supported.";
- base::flat_set<media::EncryptionMode> encryption_schemes = {
- media::EncryptionMode::kCenc};
+ base::flat_set<media::EncryptionScheme> encryption_schemes = {
+ media::EncryptionScheme::kCenc};
if (response.is_cbcs_encryption_supported) {
- encryption_schemes.insert(media::EncryptionMode::kCbcs);
+ encryption_schemes.insert(media::EncryptionScheme::kCbcs);
}
concrete_key_systems->emplace_back(new WidevineKeySystemProperties(
diff --git a/components/cdm/renderer/external_clear_key_key_system_properties.cc b/components/cdm/renderer/external_clear_key_key_system_properties.cc
index 3a38719..0998dd5 100644
--- a/components/cdm/renderer/external_clear_key_key_system_properties.cc
+++ b/components/cdm/renderer/external_clear_key_key_system_properties.cc
@@ -35,12 +35,12 @@
}
media::EmeConfigRule ExternalClearKeyProperties::GetEncryptionSchemeConfigRule(
- media::EncryptionMode encryption_scheme) const {
+ media::EncryptionScheme encryption_scheme) const {
switch (encryption_scheme) {
- case media::EncryptionMode::kCenc:
- case media::EncryptionMode::kCbcs:
+ case media::EncryptionScheme::kCenc:
+ case media::EncryptionScheme::kCbcs:
return media::EmeConfigRule::SUPPORTED;
- case media::EncryptionMode::kUnencrypted:
+ case media::EncryptionScheme::kUnencrypted:
break;
}
NOTREACHED();
diff --git a/components/cdm/renderer/external_clear_key_key_system_properties.h b/components/cdm/renderer/external_clear_key_key_system_properties.h
index 6fe015f..4e6389c 100644
--- a/components/cdm/renderer/external_clear_key_key_system_properties.h
+++ b/components/cdm/renderer/external_clear_key_key_system_properties.h
@@ -23,7 +23,7 @@
bool IsSupportedInitDataType(
media::EmeInitDataType init_data_type) const override;
media::EmeConfigRule GetEncryptionSchemeConfigRule(
- media::EncryptionMode encryption_scheme) const override;
+ media::EncryptionScheme encryption_scheme) const override;
media::SupportedCodecs GetSupportedCodecs() const override;
media::EmeConfigRule GetRobustnessConfigRule(
media::EmeMediaType media_type,
diff --git a/components/cdm/renderer/widevine_key_system_properties.cc b/components/cdm/renderer/widevine_key_system_properties.cc
index f316475..553ac49 100644
--- a/components/cdm/renderer/widevine_key_system_properties.cc
+++ b/components/cdm/renderer/widevine_key_system_properties.cc
@@ -44,9 +44,9 @@
WidevineKeySystemProperties::WidevineKeySystemProperties(
media::SupportedCodecs codecs,
- base::flat_set<media::EncryptionMode> encryption_schemes,
+ base::flat_set<media::EncryptionScheme> encryption_schemes,
media::SupportedCodecs hw_secure_codecs,
- base::flat_set<media::EncryptionMode> hw_secure_encryption_schemes,
+ base::flat_set<media::EncryptionScheme> hw_secure_encryption_schemes,
Robustness max_audio_robustness,
Robustness max_video_robustness,
media::EmeSessionTypeSupport persistent_license_support,
@@ -84,7 +84,7 @@
}
EmeConfigRule WidevineKeySystemProperties::GetEncryptionSchemeConfigRule(
- media::EncryptionMode encryption_scheme) const {
+ media::EncryptionScheme encryption_scheme) const {
bool is_supported = encryption_schemes_.count(encryption_scheme);
bool is_hw_secure_supported =
hw_secure_encryption_schemes_.count(encryption_scheme);
diff --git a/components/cdm/renderer/widevine_key_system_properties.h b/components/cdm/renderer/widevine_key_system_properties.h
index fa51638..cc29ee9 100644
--- a/components/cdm/renderer/widevine_key_system_properties.h
+++ b/components/cdm/renderer/widevine_key_system_properties.h
@@ -30,9 +30,9 @@
WidevineKeySystemProperties(
media::SupportedCodecs codecs,
- base::flat_set<media::EncryptionMode> encryption_schemes,
+ base::flat_set<media::EncryptionScheme> encryption_schemes,
media::SupportedCodecs hw_secure_codecs,
- base::flat_set<media::EncryptionMode> hw_secure_encryption_schemes,
+ base::flat_set<media::EncryptionScheme> hw_secure_encryption_schemes,
Robustness max_audio_robustness,
Robustness max_video_robustness,
media::EmeSessionTypeSupport persistent_license_support,
@@ -45,7 +45,7 @@
bool IsSupportedInitDataType(
media::EmeInitDataType init_data_type) const override;
media::EmeConfigRule GetEncryptionSchemeConfigRule(
- media::EncryptionMode encryption_scheme) const override;
+ media::EncryptionScheme encryption_scheme) const override;
media::SupportedCodecs GetSupportedCodecs() const override;
media::SupportedCodecs GetSupportedHwSecureCodecs() const override;
media::EmeConfigRule GetRobustnessConfigRule(
@@ -60,9 +60,9 @@
private:
const media::SupportedCodecs codecs_;
- const base::flat_set<media::EncryptionMode> encryption_schemes_;
+ const base::flat_set<media::EncryptionScheme> encryption_schemes_;
const media::SupportedCodecs hw_secure_codecs_;
- const base::flat_set<media::EncryptionMode> hw_secure_encryption_schemes_;
+ const base::flat_set<media::EncryptionScheme> hw_secure_encryption_schemes_;
const Robustness max_audio_robustness_;
const Robustness max_video_robustness_;
const media::EmeSessionTypeSupport persistent_license_support_;
diff --git a/content/browser/media/cdm_registry_impl_unittest.cc b/content/browser/media/cdm_registry_impl_unittest.cc
index e3e197b..e919de1 100644
--- a/content/browser/media/cdm_registry_impl_unittest.cc
+++ b/content/browser/media/cdm_registry_impl_unittest.cc
@@ -25,7 +25,7 @@
namespace {
using VideoCodec = media::VideoCodec;
-using EncryptionMode = media::EncryptionMode;
+using EncryptionScheme = media::EncryptionScheme;
using CdmSessionType = media::CdmSessionType;
using CdmProxy = media::CdmProxy;
@@ -76,7 +76,7 @@
kTestCdmName, kTestCdmGuid, base::Version(kVersion1),
base::FilePath::FromUTF8Unsafe(kTestPath), kTestFileSystemId,
CdmCapability(
- {media::kCodecVP8, media::kCodecVP9}, {EncryptionMode::kCenc},
+ {media::kCodecVP8, media::kCodecVP9}, {EncryptionScheme::kCenc},
{CdmSessionType::kTemporary, CdmSessionType::kPersistentLicense},
{CdmProxy::Protocol::kIntel}),
kTestKeySystem, /*supports_sub_key_systems=*/true);
@@ -118,7 +118,7 @@
EXPECT_EQ(kTestPath, cdm.path.MaybeAsASCII());
EXPECT_EQ(kTestFileSystemId, cdm.file_system_id);
EXPECT_VIDEO_CODECS(VideoCodec::kCodecVP8, VideoCodec::kCodecVP9);
- EXPECT_ENCRYPTION_SCHEMES(EncryptionMode::kCenc);
+ EXPECT_ENCRYPTION_SCHEMES(EncryptionScheme::kCenc);
EXPECT_SESSION_TYPES(CdmSessionType::kTemporary,
CdmSessionType::kPersistentLicense);
EXPECT_CDM_PROXY_PROTOCOLS(CdmProxy::Protocol::kIntel);
@@ -172,14 +172,14 @@
TEST_F(CdmRegistryImplTest, SupportedEncryptionSchemes) {
auto cdm_info = GetTestCdmInfo();
- cdm_info.capability.encryption_schemes = {EncryptionMode::kCenc,
- EncryptionMode::kCbcs};
+ cdm_info.capability.encryption_schemes = {EncryptionScheme::kCenc,
+ EncryptionScheme::kCbcs};
Register(cdm_info);
std::vector<CdmInfo> cdms = cdm_registry_.GetAllRegisteredCdms();
ASSERT_EQ(1u, cdms.size());
const CdmInfo& cdm = cdms[0];
- EXPECT_ENCRYPTION_SCHEMES(EncryptionMode::kCenc, EncryptionMode::kCbcs);
+ EXPECT_ENCRYPTION_SCHEMES(EncryptionScheme::kCenc, EncryptionScheme::kCbcs);
}
} // namespace content
diff --git a/content/browser/media/key_system_support_impl.cc b/content/browser/media/key_system_support_impl.cc
index 854ddd9c..93de83d 100644
--- a/content/browser/media/key_system_support_impl.cc
+++ b/content/browser/media/key_system_support_impl.cc
@@ -45,7 +45,7 @@
// be modified.
bool IsHardwareSecureCodecsOverriddenFromCommandLine(
std::vector<media::VideoCodec>* video_codecs,
- std::vector<media::EncryptionMode>* encryption_schemes) {
+ std::vector<media::EncryptionScheme>* encryption_schemes) {
DCHECK(video_codecs->empty());
DCHECK(encryption_schemes->empty());
@@ -73,7 +73,7 @@
// Codecs enabled from command line assumes CENC support.
if (!video_codecs->empty())
- encryption_schemes->push_back(media::EncryptionMode::kCenc);
+ encryption_schemes->push_back(media::EncryptionScheme::kCenc);
return true;
}
@@ -82,7 +82,7 @@
const std::string& key_system,
const base::flat_set<media::CdmProxy::Protocol>& cdm_proxy_protocols,
std::vector<media::VideoCodec>* video_codecs,
- std::vector<media::EncryptionMode>* encryption_schemes) {
+ std::vector<media::EncryptionScheme>* encryption_schemes) {
DCHECK(video_codecs->empty());
DCHECK(encryption_schemes->empty());
@@ -122,7 +122,7 @@
#endif
base::flat_set<media::VideoCodec> video_codec_set;
- base::flat_set<media::EncryptionMode> encryption_scheme_set;
+ base::flat_set<media::EncryptionScheme> encryption_scheme_set;
GetContentClient()->browser()->GetHardwareSecureDecryptionCaps(
key_system, cdm_proxy_protocols, &video_codec_set,
diff --git a/content/browser/media/key_system_support_impl_unittest.cc b/content/browser/media/key_system_support_impl_unittest.cc
index 660f21a..e687ae1 100644
--- a/content/browser/media/key_system_support_impl_unittest.cc
+++ b/content/browser/media/key_system_support_impl_unittest.cc
@@ -25,7 +25,7 @@
namespace {
using VideoCodec = media::VideoCodec;
-using EncryptionMode = media::EncryptionMode;
+using EncryptionScheme = media::EncryptionScheme;
using CdmSessionType = media::CdmSessionType;
const base::Token kTestCdmGuid{1234, 5678};
@@ -68,7 +68,7 @@
CdmCapability GetTestCdmCapability() {
return CdmCapability(
{VideoCodec::kCodecVP8, VideoCodec::kCodecVP9},
- {EncryptionMode::kCenc, EncryptionMode::kCbcs},
+ {EncryptionScheme::kCenc, EncryptionScheme::kCbcs},
{CdmSessionType::kTemporary, CdmSessionType::kPersistentLicense}, {});
}
@@ -114,7 +114,7 @@
EXPECT_TRUE(IsSupported("KeySystem2"));
EXPECT_VIDEO_CODECS(VideoCodec::kCodecVP8, VideoCodec::kCodecVP9);
- EXPECT_ENCRYPTION_SCHEMES(EncryptionMode::kCenc, EncryptionMode::kCbcs);
+ EXPECT_ENCRYPTION_SCHEMES(EncryptionScheme::kCenc, EncryptionScheme::kCbcs);
EXPECT_SESSION_TYPES(CdmSessionType::kTemporary,
CdmSessionType::kPersistentLicense);
}
diff --git a/content/common/media/cdm_info.cc b/content/common/media/cdm_info.cc
index b1844062..c5480ec 100644
--- a/content/common/media/cdm_info.cc
+++ b/content/common/media/cdm_info.cc
@@ -12,7 +12,7 @@
CdmCapability::CdmCapability(
std::vector<media::VideoCodec> video_codecs,
- base::flat_set<media::EncryptionMode> encryption_schemes,
+ base::flat_set<media::EncryptionScheme> encryption_schemes,
base::flat_set<media::CdmSessionType> session_types,
base::flat_set<media::CdmProxy::Protocol> cdm_proxy_protocols)
: video_codecs(std::move(video_codecs)),
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index b50b87e4..227d4d91 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -230,7 +230,7 @@
const std::string& key_system,
const base::flat_set<media::CdmProxy::Protocol>& cdm_proxy_protocols,
base::flat_set<media::VideoCodec>* video_codecs,
- base::flat_set<media::EncryptionMode>* encryption_schemes) {}
+ base::flat_set<media::EncryptionScheme>* encryption_schemes) {}
bool ContentBrowserClient::ShouldAssignSiteForURL(const GURL& url) {
return true;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 3ff6710..f1c1cacb 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -87,7 +87,7 @@
namespace media {
class AudioLogFactory;
class AudioManager;
-enum class EncryptionMode;
+enum class EncryptionScheme;
} // namespace media
namespace network {
@@ -1130,7 +1130,7 @@
const std::string& key_system,
const base::flat_set<media::CdmProxy::Protocol>& cdm_proxy_protocols,
base::flat_set<media::VideoCodec>* video_codecs,
- base::flat_set<media::EncryptionMode>* encryption_schemes);
+ base::flat_set<media::EncryptionScheme>* encryption_schemes);
// Populates |mappings| with all files that need to be mapped before launching
// a child process.
diff --git a/content/public/common/cdm_info.h b/content/public/common/cdm_info.h
index 39b8da2..f8bcf527 100644
--- a/content/public/common/cdm_info.h
+++ b/content/public/common/cdm_info.h
@@ -14,9 +14,7 @@
#include "base/version.h"
#include "content/common/content_export.h"
#include "media/base/content_decryption_module.h"
-// TODO(crbug.com/825041): Move EncryptionMode out of decrypt_config and
-// rename it to EncryptionScheme.
-#include "media/base/decrypt_config.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/video_codecs.h"
#include "media/cdm/cdm_proxy.h"
@@ -26,7 +24,7 @@
struct CONTENT_EXPORT CdmCapability {
CdmCapability();
CdmCapability(std::vector<media::VideoCodec> video_codecs,
- base::flat_set<media::EncryptionMode> encryption_schemes,
+ base::flat_set<media::EncryptionScheme> encryption_schemes,
base::flat_set<media::CdmSessionType> session_types,
base::flat_set<media::CdmProxy::Protocol> cdm_proxy_protocols);
CdmCapability(const CdmCapability& other);
@@ -46,7 +44,7 @@
bool supports_vp9_profile2 = false;
// List of encryption schemes supported by the CDM (e.g. cenc).
- base::flat_set<media::EncryptionMode> encryption_schemes;
+ base::flat_set<media::EncryptionScheme> encryption_schemes;
// List of session types supported by the CDM.
base::flat_set<media::CdmSessionType> session_types;
diff --git a/content/renderer/pepper/video_decoder_shim.cc b/content/renderer/pepper/video_decoder_shim.cc
index 55886b2..48f1829 100644
--- a/content/renderer/pepper/video_decoder_shim.cc
+++ b/content/renderer/pepper/video_decoder_shim.cc
@@ -895,7 +895,7 @@
gfx::Size(32, 24), // Small sizes that won't fail.
gfx::Rect(32, 24), gfx::Size(32, 24),
// TODO(bbudge): Verify extra data isn't needed.
- media::EmptyExtraData(), media::Unencrypted());
+ media::EmptyExtraData(), media::EncryptionScheme::kUnencrypted);
media_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&VideoDecoderShim::DecoderImpl::Initialize,
diff --git a/fuchsia/engine/renderer/web_engine_content_renderer_client.cc b/fuchsia/engine/renderer/web_engine_content_renderer_client.cc
index c7a044b7..615b95a 100644
--- a/fuchsia/engine/renderer/web_engine_content_renderer_client.cc
+++ b/fuchsia/engine/renderer/web_engine_content_renderer_client.cc
@@ -89,8 +89,8 @@
}
media::EmeConfigRule GetEncryptionSchemeConfigRule(
- media::EncryptionMode encryption_mode) const override {
- if (encryption_mode == ::media::EncryptionMode::kCenc) {
+ media::EncryptionScheme encryption_mode) const override {
+ if (encryption_mode == ::media::EncryptionScheme::kCenc) {
return media::EmeConfigRule::SUPPORTED;
}
@@ -179,8 +179,8 @@
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableWidevine)) {
- base::flat_set<media::EncryptionMode> encryption_schemes{
- media::EncryptionMode::kCenc, media::EncryptionMode::kCbcs};
+ base::flat_set<media::EncryptionScheme> encryption_schemes{
+ media::EncryptionScheme::kCenc, media::EncryptionScheme::kCbcs};
// Fuchsia always decrypts audio into clear buffers and return them back to
// Chromium. Hardware secured decoders are only available for supported
diff --git a/media/base/BUILD.gn b/media/base/BUILD.gn
index 247f0f8..a4733e86 100644
--- a/media/base/BUILD.gn
+++ b/media/base/BUILD.gn
@@ -414,7 +414,7 @@
if (is_android) {
java_cpp_enum("java_enums") {
sources = [
- "decrypt_config.h",
+ "encryption_scheme.h",
"video_codecs.h",
]
}
diff --git a/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java b/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
index 9d87a7599f2..54386a7 100644
--- a/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
+++ b/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
@@ -556,16 +556,16 @@
}
}
- // Incoming |native| values are as defined in media/base/decrypt_config.h. Translated values
+ // Incoming |native| values are as defined in media/base/encryption_scheme.h. Translated values
// are from MediaCodec. At present, these values are in sync. Returns
// MEDIA_CODEC_UNKNOWN_CIPHER_MODE in the case of unknown incoming value.
- private int translateEncryptionModeValue(int nativeValue) {
+ private int translateEncryptionSchemeValue(int nativeValue) {
switch (nativeValue) {
- case EncryptionMode.UNENCRYPTED:
+ case EncryptionScheme.UNENCRYPTED:
return MediaCodec.CRYPTO_MODE_UNENCRYPTED;
- case EncryptionMode.CENC:
+ case EncryptionScheme.CENC:
return MediaCodec.CRYPTO_MODE_AES_CTR;
- case EncryptionMode.CBCS:
+ case EncryptionScheme.CBCS:
return MediaCodec.CRYPTO_MODE_AES_CBC;
default:
Log.e(TAG, "Unsupported cipher mode: " + nativeValue);
@@ -579,7 +579,7 @@
int[] numBytesOfClearData, int[] numBytesOfEncryptedData, int numSubSamples,
int cipherMode, int patternEncrypt, int patternSkip, long presentationTimeUs) {
try {
- cipherMode = translateEncryptionModeValue(cipherMode);
+ cipherMode = translateEncryptionSchemeValue(cipherMode);
if (cipherMode == MEDIA_CODEC_UNKNOWN_CIPHER_MODE) {
return MediaCodecStatus.ERROR;
}
diff --git a/media/base/android/media_codec_bridge.h b/media/base/android/media_codec_bridge.h
index 86b02cb..f9cb49f 100644
--- a/media/base/android/media_codec_bridge.h
+++ b/media/base/android/media_codec_bridge.h
@@ -14,9 +14,10 @@
#include "base/android/jni_android.h"
#include "base/android/scoped_java_ref.h"
#include "base/macros.h"
+#include "base/optional.h"
#include "base/time/time.h"
-#include "media/base/decrypt_config.h"
#include "media/base/encryption_pattern.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/media_export.h"
#include "ui/gfx/geometry/size.h"
@@ -93,7 +94,7 @@
const std::string& key_id,
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples,
- EncryptionMode encryption_scheme,
+ EncryptionScheme encryption_scheme,
base::Optional<EncryptionPattern> encryption_pattern,
base::TimeDelta presentation_time) = 0;
diff --git a/media/base/android/media_codec_bridge_impl.cc b/media/base/android/media_codec_bridge_impl.cc
index a5aa079..48350424 100644
--- a/media/base/android/media_codec_bridge_impl.cc
+++ b/media/base/android/media_codec_bridge_impl.cc
@@ -416,7 +416,7 @@
const std::string& key_id,
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples,
- EncryptionMode encryption_scheme,
+ EncryptionScheme encryption_scheme,
base::Optional<EncryptionPattern> encryption_pattern,
base::TimeDelta presentation_time) {
DVLOG(3) << __func__ << " " << index << ": " << data_size;
diff --git a/media/base/android/media_codec_bridge_impl.h b/media/base/android/media_codec_bridge_impl.h
index ae44336..35c224c7 100644
--- a/media/base/android/media_codec_bridge_impl.h
+++ b/media/base/android/media_codec_bridge_impl.h
@@ -121,7 +121,7 @@
const std::string& key_id,
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples,
- EncryptionMode encryption_scheme,
+ EncryptionScheme encryption_scheme,
base::Optional<EncryptionPattern> encryption_pattern,
base::TimeDelta presentation_time) override;
void QueueEOS(int input_buffer_index) override;
diff --git a/media/base/android/media_codec_bridge_impl_unittest.cc b/media/base/android/media_codec_bridge_impl_unittest.cc
index 8278cf1..60328e5 100644
--- a/media/base/android/media_codec_bridge_impl_unittest.cc
+++ b/media/base/android/media_codec_bridge_impl_unittest.cc
@@ -281,7 +281,8 @@
int64_t codec_delay = 0) {
AudioDecoderConfig config;
config.Initialize(codec, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO, 44100,
- extra_data, Unencrypted(), seek_preroll, codec_delay);
+ extra_data, EncryptionScheme::kUnencrypted, seek_preroll,
+ codec_delay);
return config;
}
diff --git a/media/base/android/media_codec_loop.cc b/media/base/android/media_codec_loop.cc
index 61b9a996..5722736 100644
--- a/media/base/android/media_codec_loop.cc
+++ b/media/base/android/media_codec_loop.cc
@@ -197,7 +197,7 @@
media::MediaCodecStatus status = MEDIA_CODEC_OK;
- if (input_data.encryption_scheme != EncryptionMode::kUnencrypted) {
+ if (input_data.encryption_scheme != EncryptionScheme::kUnencrypted) {
// Note that input_data might not have a valid memory ptr if this is a
// re-send of a buffer that was sent before decryption keys arrived.
diff --git a/media/base/android/media_codec_loop.h b/media/base/android/media_codec_loop.h
index ebb8106..3eb0d81 100644
--- a/media/base/android/media_codec_loop.h
+++ b/media/base/android/media_codec_loop.h
@@ -127,7 +127,7 @@
base::TimeDelta presentation_time;
bool is_eos = false;
- EncryptionMode encryption_scheme = EncryptionMode::kUnencrypted;
+ EncryptionScheme encryption_scheme = EncryptionScheme::kUnencrypted;
base::Optional<EncryptionPattern> encryption_pattern;
};
diff --git a/media/base/android/mock_media_codec_bridge.h b/media/base/android/mock_media_codec_bridge.h
index a2e03978..85325f5 100644
--- a/media/base/android/mock_media_codec_bridge.h
+++ b/media/base/android/mock_media_codec_bridge.h
@@ -43,7 +43,7 @@
const std::string& key_id,
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples,
- EncryptionMode encryption_scheme,
+ EncryptionScheme encryption_scheme,
base::Optional<EncryptionPattern> encryption_pattern,
base::TimeDelta presentation_time));
MOCK_METHOD1(QueueEOS, void(int input_buffer_index));
diff --git a/media/base/audio_decoder_config.cc b/media/base/audio_decoder_config.cc
index f499bc5..27351dc2 100644
--- a/media/base/audio_decoder_config.cc
+++ b/media/base/audio_decoder_config.cc
@@ -12,13 +12,12 @@
AudioDecoderConfig::AudioDecoderConfig() {}
-AudioDecoderConfig::AudioDecoderConfig(
- AudioCodec codec,
- SampleFormat sample_format,
- ChannelLayout channel_layout,
- int samples_per_second,
- const std::vector<uint8_t>& extra_data,
- const EncryptionScheme& encryption_scheme) {
+AudioDecoderConfig::AudioDecoderConfig(AudioCodec codec,
+ SampleFormat sample_format,
+ ChannelLayout channel_layout,
+ int samples_per_second,
+ const std::vector<uint8_t>& extra_data,
+ EncryptionScheme encryption_scheme) {
Initialize(codec, sample_format, channel_layout, samples_per_second,
extra_data, encryption_scheme, base::TimeDelta(), 0);
}
@@ -31,7 +30,7 @@
ChannelLayout channel_layout,
int samples_per_second,
const std::vector<uint8_t>& extra_data,
- const EncryptionScheme& encryption_scheme,
+ EncryptionScheme encryption_scheme,
base::TimeDelta seek_preroll,
int codec_delay) {
codec_ = codec;
@@ -71,7 +70,7 @@
(channel_layout() == config.channel_layout()) &&
(samples_per_second() == config.samples_per_second()) &&
(extra_data() == config.extra_data()) &&
- (encryption_scheme().Matches(config.encryption_scheme())) &&
+ (encryption_scheme() == config.encryption_scheme()) &&
(sample_format() == config.sample_format()) &&
(seek_preroll() == config.seek_preroll()) &&
(codec_delay() == config.codec_delay()) &&
@@ -109,16 +108,17 @@
void AudioDecoderConfig::SetIsEncrypted(bool is_encrypted) {
if (!is_encrypted) {
- DCHECK(encryption_scheme_.is_encrypted()) << "Config is already clear.";
- encryption_scheme_ = Unencrypted();
+ DCHECK_NE(encryption_scheme_, EncryptionScheme::kUnencrypted)
+ << "Config is already clear.";
+ encryption_scheme_ = EncryptionScheme::kUnencrypted;
} else {
- DCHECK(!encryption_scheme_.is_encrypted())
+ DCHECK_EQ(encryption_scheme_, EncryptionScheme::kUnencrypted)
<< "Config is already encrypted.";
// TODO(xhwang): This is only used to guide decoder selection, so set
// a common encryption scheme that should be supported by all decrypting
// decoders. We should be able to remove this when we support switching
// decoders at run time. See http://crbug.com/695595
- encryption_scheme_ = AesCtrEncryptionScheme();
+ encryption_scheme_ = EncryptionScheme::kCenc;
}
}
diff --git a/media/base/audio_decoder_config.h b/media/base/audio_decoder_config.h
index b251bf7..a7f294d 100644
--- a/media/base/audio_decoder_config.h
+++ b/media/base/audio_decoder_config.h
@@ -35,7 +35,7 @@
ChannelLayout channel_layout,
int samples_per_second,
const std::vector<uint8_t>& extra_data,
- const EncryptionScheme& encryption_scheme);
+ EncryptionScheme encryption_scheme);
AudioDecoderConfig(const AudioDecoderConfig& other);
@@ -47,7 +47,7 @@
ChannelLayout channel_layout,
int samples_per_second,
const std::vector<uint8_t>& extra_data,
- const EncryptionScheme& encryption_scheme,
+ EncryptionScheme encryption_scheme,
base::TimeDelta seek_preroll,
int codec_delay);
@@ -83,12 +83,12 @@
// Whether the audio stream is potentially encrypted.
// Note that in a potentially encrypted audio stream, individual buffers
// can be encrypted or not encrypted.
- bool is_encrypted() const { return encryption_scheme_.is_encrypted(); }
+ bool is_encrypted() const {
+ return encryption_scheme_ != EncryptionScheme::kUnencrypted;
+ }
// Encryption scheme used for encrypted buffers.
- const EncryptionScheme& encryption_scheme() const {
- return encryption_scheme_;
- }
+ EncryptionScheme encryption_scheme() const { return encryption_scheme_; }
// Sets the config to be encrypted or not encrypted manually. This can be
// useful for decryptors that decrypts an encrypted stream to a clear stream.
@@ -119,7 +119,7 @@
int samples_per_second_ = 0;
int bytes_per_frame_ = 0;
std::vector<uint8_t> extra_data_;
- EncryptionScheme encryption_scheme_;
+ EncryptionScheme encryption_scheme_ = EncryptionScheme::kUnencrypted;
// Layout and count of the *stream* being decoded.
ChannelLayout channel_layout_ = CHANNEL_LAYOUT_UNSUPPORTED;
diff --git a/media/base/bitstream_buffer.h b/media/base/bitstream_buffer.h
index ca5333a6..9280c80 100644
--- a/media/base/bitstream_buffer.h
+++ b/media/base/bitstream_buffer.h
@@ -76,7 +76,7 @@
scoped_refptr<DecoderBuffer> ToDecoderBuffer();
// TODO(crbug.com/813845): As this is only used by Android, include
- // EncryptionMode and optional EncryptionPattern when updating for Android.
+ // EncryptionScheme and optional EncryptionPattern when updating for Android.
void SetDecryptionSettings(const std::string& key_id,
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples);
diff --git a/media/base/decrypt_config.cc b/media/base/decrypt_config.cc
index 385e159..ce994949 100644
--- a/media/base/decrypt_config.cc
+++ b/media/base/decrypt_config.cc
@@ -13,29 +13,12 @@
namespace media {
-namespace {
-
-const char* EncryptionModeAsString(EncryptionMode mode) {
- switch (mode) {
- case EncryptionMode::kUnencrypted:
- return "Unencrypted";
- case EncryptionMode::kCenc:
- return "CENC";
- case EncryptionMode::kCbcs:
- return "CBCS";
- default:
- return "Unknown";
- }
-}
-
-} // namespace
-
// static
std::unique_ptr<DecryptConfig> DecryptConfig::CreateCencConfig(
const std::string& key_id,
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples) {
- return std::make_unique<DecryptConfig>(EncryptionMode::kCenc, key_id, iv,
+ return std::make_unique<DecryptConfig>(EncryptionScheme::kCenc, key_id, iv,
subsamples, base::nullopt);
}
@@ -45,29 +28,29 @@
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples,
base::Optional<EncryptionPattern> encryption_pattern) {
- return std::make_unique<DecryptConfig>(EncryptionMode::kCbcs, key_id, iv,
+ return std::make_unique<DecryptConfig>(EncryptionScheme::kCbcs, key_id, iv,
subsamples,
std::move(encryption_pattern));
}
DecryptConfig::DecryptConfig(
- const EncryptionMode& encryption_mode,
+ EncryptionScheme encryption_scheme,
const std::string& key_id,
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples,
base::Optional<EncryptionPattern> encryption_pattern)
- : encryption_mode_(encryption_mode),
+ : encryption_scheme_(encryption_scheme),
key_id_(key_id),
iv_(iv),
subsamples_(subsamples),
encryption_pattern_(std::move(encryption_pattern)) {
// Unencrypted blocks should not have a DecryptConfig.
- DCHECK_NE(encryption_mode_, EncryptionMode::kUnencrypted);
+ DCHECK_NE(encryption_scheme_, EncryptionScheme::kUnencrypted);
CHECK_GT(key_id_.size(), 0u);
CHECK_EQ(iv_.size(), static_cast<size_t>(DecryptConfig::kDecryptionKeySize));
- // Pattern not allowed for non-'cbcs' modes.
- DCHECK(encryption_mode_ == EncryptionMode::kCbcs || !encryption_pattern_);
+ // Pattern not allowed for non-'cbcs' schemes.
+ DCHECK(encryption_scheme_ == EncryptionScheme::kCbcs || !encryption_pattern_);
}
DecryptConfig::~DecryptConfig() = default;
@@ -79,7 +62,7 @@
std::unique_ptr<DecryptConfig> DecryptConfig::CopyNewSubsamplesIV(
const std::vector<SubsampleEntry>& subsamples,
const std::string& iv) {
- return std::make_unique<DecryptConfig>(encryption_mode_, key_id_, iv,
+ return std::make_unique<DecryptConfig>(encryption_scheme_, key_id_, iv,
subsamples, encryption_pattern_);
}
@@ -90,7 +73,7 @@
bool DecryptConfig::Matches(const DecryptConfig& config) const {
if (key_id() != config.key_id() || iv() != config.iv() ||
subsamples().size() != config.subsamples().size() ||
- encryption_mode_ != config.encryption_mode_ ||
+ encryption_scheme_ != config.encryption_scheme_ ||
encryption_pattern_ != config.encryption_pattern_) {
return false;
}
@@ -108,7 +91,7 @@
std::ostream& DecryptConfig::Print(std::ostream& os) const {
os << "key_id:'" << base::HexEncode(key_id_.data(), key_id_.size()) << "'"
<< " iv:'" << base::HexEncode(iv_.data(), iv_.size()) << "'"
- << " mode:" << EncryptionModeAsString(encryption_mode_);
+ << " scheme:" << encryption_scheme_;
if (encryption_pattern_) {
os << " pattern:" << encryption_pattern_->crypt_byte_block() << ":"
diff --git a/media/base/decrypt_config.h b/media/base/decrypt_config.h
index cdc4c21..7990541 100644
--- a/media/base/decrypt_config.h
+++ b/media/base/decrypt_config.h
@@ -15,21 +15,12 @@
#include "base/macros.h"
#include "base/optional.h"
#include "media/base/encryption_pattern.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/media_export.h"
#include "media/base/subsample_entry.h"
namespace media {
-// The encryption mode. The definitions are from ISO/IEC 23001-7:2016.
-// TODO(crbug.com/825041): Merge this with existing media::EncryptionScheme.
-// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media
-enum class EncryptionMode {
- kUnencrypted = 0,
- kCenc, // 'cenc' subsample encryption using AES-CTR mode.
- kCbcs, // 'cbcs' pattern encryption using AES-CBC mode.
- kMaxValue = kCbcs
-};
-
// Contains all information that a decryptor needs to decrypt a media sample.
class MEDIA_EXPORT DecryptConfig {
public:
@@ -58,7 +49,7 @@
const std::vector<SubsampleEntry>& subsamples,
base::Optional<EncryptionPattern> encryption_pattern);
- DecryptConfig(const EncryptionMode& encryption_mode,
+ DecryptConfig(EncryptionScheme encryption_scheme,
const std::string& key_id,
const std::string& iv,
const std::vector<SubsampleEntry>& subsamples,
@@ -68,7 +59,7 @@
const std::string& key_id() const { return key_id_; }
const std::string& iv() const { return iv_; }
const std::vector<SubsampleEntry>& subsamples() const { return subsamples_; }
- const EncryptionMode& encryption_mode() const { return encryption_mode_; }
+ EncryptionScheme encryption_scheme() const { return encryption_scheme_; }
const base::Optional<EncryptionPattern>& encryption_pattern() const {
return encryption_pattern_;
}
@@ -93,7 +84,7 @@
private:
DecryptConfig(const DecryptConfig& other);
- const EncryptionMode encryption_mode_;
+ const EncryptionScheme encryption_scheme_;
const std::string key_id_;
// Initialization vector.
diff --git a/media/base/decrypt_config_unittest.cc b/media/base/decrypt_config_unittest.cc
index a42266d..e39d7a7 100644
--- a/media/base/decrypt_config_unittest.cc
+++ b/media/base/decrypt_config_unittest.cc
@@ -26,7 +26,7 @@
EXPECT_EQ(config->key_id(), kDefaultKeyId);
EXPECT_EQ(config->iv(), kDefaultIV);
EXPECT_EQ(config->subsamples().size(), 0u);
- EXPECT_EQ(config->encryption_mode(), EncryptionMode::kCenc);
+ EXPECT_EQ(config->encryption_scheme(), EncryptionScheme::kCenc);
// Now with single subsample entry.
config =
@@ -36,7 +36,7 @@
EXPECT_EQ(config->subsamples().size(), 1u);
EXPECT_EQ(config->subsamples()[0].clear_bytes, 1u);
EXPECT_EQ(config->subsamples()[0].cypher_bytes, 2u);
- EXPECT_EQ(config->encryption_mode(), EncryptionMode::kCenc);
+ EXPECT_EQ(config->encryption_scheme(), EncryptionScheme::kCenc);
// Now with multiple subsample entries.
config = DecryptConfig::CreateCencConfig(kDefaultKeyId, kAlternateIV,
@@ -46,7 +46,7 @@
EXPECT_EQ(config->subsamples().size(), 4u);
EXPECT_EQ(config->subsamples()[1].clear_bytes, 3u);
EXPECT_EQ(config->subsamples()[3].cypher_bytes, 8u);
- EXPECT_EQ(config->encryption_mode(), EncryptionMode::kCenc);
+ EXPECT_EQ(config->encryption_scheme(), EncryptionScheme::kCenc);
}
TEST(DecryptConfigTest, CbcsConstruction) {
@@ -55,7 +55,7 @@
EXPECT_EQ(config->key_id(), kDefaultKeyId);
EXPECT_EQ(config->iv(), kDefaultIV);
EXPECT_EQ(config->subsamples().size(), 0u);
- EXPECT_EQ(config->encryption_mode(), EncryptionMode::kCbcs);
+ EXPECT_EQ(config->encryption_scheme(), EncryptionScheme::kCbcs);
EXPECT_TRUE(config->HasPattern());
EXPECT_EQ(config->encryption_pattern()->crypt_byte_block(), 1u);
EXPECT_EQ(config->encryption_pattern()->skip_byte_block(), 2u);
@@ -71,7 +71,7 @@
EXPECT_EQ(config->subsamples()[0].cypher_bytes, 2u);
EXPECT_EQ(config->subsamples()[3].clear_bytes, 7u);
EXPECT_EQ(config->subsamples()[3].cypher_bytes, 8u);
- EXPECT_EQ(config->encryption_mode(), EncryptionMode::kCbcs);
+ EXPECT_EQ(config->encryption_scheme(), EncryptionScheme::kCbcs);
EXPECT_TRUE(config->HasPattern());
EXPECT_EQ(config->encryption_pattern()->crypt_byte_block(), 1u);
EXPECT_EQ(config->encryption_pattern()->skip_byte_block(), 0u);
@@ -84,7 +84,7 @@
EXPECT_EQ(config->subsamples().size(), 1u);
EXPECT_EQ(config->subsamples()[0].clear_bytes, 1u);
EXPECT_EQ(config->subsamples()[0].cypher_bytes, 2u);
- EXPECT_EQ(config->encryption_mode(), EncryptionMode::kCbcs);
+ EXPECT_EQ(config->encryption_scheme(), EncryptionScheme::kCbcs);
EXPECT_FALSE(config->HasPattern());
}
diff --git a/media/base/encryption_scheme.cc b/media/base/encryption_scheme.cc
index d20fbf4..40de184 100644
--- a/media/base/encryption_scheme.cc
+++ b/media/base/encryption_scheme.cc
@@ -10,46 +10,17 @@
namespace media {
-EncryptionScheme::EncryptionScheme() = default;
-
-EncryptionScheme::EncryptionScheme(CipherMode mode,
- const EncryptionPattern& pattern)
- : mode_(mode), pattern_(pattern) {}
-
-EncryptionScheme::~EncryptionScheme() = default;
-
-bool EncryptionScheme::is_encrypted() const {
- return mode_ != CIPHER_MODE_UNENCRYPTED;
-}
-
-EncryptionScheme::CipherMode EncryptionScheme::mode() const {
- return mode_;
-}
-
-const EncryptionPattern& EncryptionScheme::pattern() const {
- return pattern_;
-}
-
-bool EncryptionScheme::Matches(const EncryptionScheme& other) const {
- return mode_ == other.mode_ && pattern_ == other.pattern_;
-}
-
-std::ostream& operator<<(std::ostream& os,
- const EncryptionScheme& encryption_scheme) {
- if (!encryption_scheme.is_encrypted())
- return os << "Unencrypted";
-
- if (encryption_scheme.mode() == EncryptionScheme::CIPHER_MODE_AES_CTR)
- return os << "CENC";
-
- if (encryption_scheme.mode() == EncryptionScheme::CIPHER_MODE_AES_CBC) {
- return os << "CBCS with pattern ("
- << encryption_scheme.pattern().crypt_byte_block() << ","
- << encryption_scheme.pattern().skip_byte_block() << ")";
+std::ostream& operator<<(std::ostream& os, EncryptionScheme scheme) {
+ switch (scheme) {
+ case EncryptionScheme::kUnencrypted:
+ return os << "Unencrypted";
+ case EncryptionScheme::kCenc:
+ return os << "CENC";
+ case EncryptionScheme::kCbcs:
+ return os << "CBCS";
+ default:
+ return os << "Unknown";
}
-
- NOTREACHED();
- return os << "Unknown EncryptionScheme, mode = " << encryption_scheme.mode();
}
} // namespace media
diff --git a/media/base/encryption_scheme.h b/media/base/encryption_scheme.h
index 420f4e7..00bd931 100644
--- a/media/base/encryption_scheme.h
+++ b/media/base/encryption_scheme.h
@@ -5,51 +5,24 @@
#ifndef MEDIA_BASE_ENCRYPTION_SCHEME_H_
#define MEDIA_BASE_ENCRYPTION_SCHEME_H_
-#include <stdint.h>
-
#include <iosfwd>
-#include "media/base/encryption_pattern.h"
#include "media/base/media_export.h"
namespace media {
-// Specification of whether and how the stream is encrypted (in whole or part).
-class MEDIA_EXPORT EncryptionScheme {
- public:
- // Algorithm and mode used for encryption. CIPHER_MODE_UNENCRYPTED indicates
- // no encryption.
- enum CipherMode {
- CIPHER_MODE_UNENCRYPTED,
- CIPHER_MODE_AES_CTR,
- CIPHER_MODE_AES_CBC,
- CIPHER_MODE_MAX = CIPHER_MODE_AES_CBC
- };
-
- // The default constructor makes an instance that indicates no encryption.
- EncryptionScheme();
-
- // This constructor allows specification of the cipher mode and the pattern.
- EncryptionScheme(CipherMode mode, const EncryptionPattern& pattern);
- ~EncryptionScheme();
-
- bool Matches(const EncryptionScheme& other) const;
-
- bool is_encrypted() const;
- CipherMode mode() const;
- const EncryptionPattern& pattern() const;
-
- private:
- CipherMode mode_ = CIPHER_MODE_UNENCRYPTED;
- EncryptionPattern pattern_;
-
- // Allow copy and assignment.
+// The encryption mode. The definitions are from ISO/IEC 23001-7:2016.
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media
+enum class EncryptionScheme {
+ kUnencrypted = 0,
+ kCenc, // 'cenc' subsample encryption using AES-CTR mode.
+ kCbcs, // 'cbcs' pattern encryption using AES-CBC mode.
+ kMaxValue = kCbcs
};
// For logging use only.
-MEDIA_EXPORT std::ostream& operator<<(
- std::ostream& os,
- const EncryptionScheme& encryption_scheme);
+MEDIA_EXPORT std::ostream& operator<<(std::ostream& os,
+ EncryptionScheme encryption_scheme);
} // namespace media
diff --git a/media/base/fake_demuxer_stream.cc b/media/base/fake_demuxer_stream.cc
index 5a6526a..dac0819 100644
--- a/media/base/fake_demuxer_stream.cc
+++ b/media/base/fake_demuxer_stream.cc
@@ -165,7 +165,7 @@
VideoDecoderConfig::AlphaMode::kIsOpaque, VideoColorSpace(),
kNoTransformation, next_coded_size_, kVisibleRect, next_coded_size_,
EmptyExtraData(),
- is_encrypted_ ? AesCtrEncryptionScheme() : Unencrypted());
+ is_encrypted_ ? EncryptionScheme::kCenc : EncryptionScheme::kUnencrypted);
next_coded_size_.Enlarge(kWidthDelta, kHeightDelta);
}
diff --git a/media/base/ipc/media_param_traits.cc b/media/base/ipc/media_param_traits.cc
index 64db44e7..46c977a7 100644
--- a/media/base/ipc/media_param_traits.cc
+++ b/media/base/ipc/media_param_traits.cc
@@ -113,28 +113,6 @@
static void Log(const param_type& p, std::string* l);
};
-void ParamTraits<media::EncryptionScheme>::Write(base::Pickle* m,
- const param_type& p) {
- WriteParam(m, p.mode());
- WriteParam(m, p.pattern());
-}
-
-bool ParamTraits<media::EncryptionScheme>::Read(const base::Pickle* m,
- base::PickleIterator* iter,
- param_type* r) {
- media::EncryptionScheme::CipherMode mode;
- media::EncryptionPattern pattern;
- if (!ReadParam(m, iter, &mode) || !ReadParam(m, iter, &pattern))
- return false;
- *r = media::EncryptionScheme(mode, pattern);
- return true;
-}
-
-void ParamTraits<media::EncryptionScheme>::Log(const param_type& p,
- std::string* l) {
- l->append(base::StringPrintf("<EncryptionScheme>"));
-}
-
void ParamTraits<media::EncryptionPattern>::Write(base::Pickle* m,
const param_type& p) {
WriteParam(m, p.crypt_byte_block());
diff --git a/media/base/ipc/media_param_traits.h b/media/base/ipc/media_param_traits.h
index b4205f5..4771d463 100644
--- a/media/base/ipc/media_param_traits.h
+++ b/media/base/ipc/media_param_traits.h
@@ -11,7 +11,6 @@
namespace media {
class AudioParameters;
-class EncryptionScheme;
}
namespace IPC {
@@ -36,16 +35,6 @@
static void Log(const param_type& p, std::string* l);
};
-template <>
-struct ParamTraits<media::EncryptionScheme> {
- typedef media::EncryptionScheme param_type;
- static void Write(base::Pickle* m, const param_type& p);
- static bool Read(const base::Pickle* m,
- base::PickleIterator* iter,
- param_type* r);
- static void Log(const param_type& p, std::string* l);
-};
-
} // namespace IPC
#endif // MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_H_
diff --git a/media/base/ipc/media_param_traits_macros.h b/media/base/ipc/media_param_traits_macros.h
index 966177e..805726b 100644
--- a/media/base/ipc/media_param_traits_macros.h
+++ b/media/base/ipc/media_param_traits_macros.h
@@ -104,11 +104,8 @@
IPC_ENUM_TRAITS_MAX_VALUE(media::EmeInitDataType, media::EmeInitDataType::MAX)
-IPC_ENUM_TRAITS_MAX_VALUE(media::EncryptionMode,
- media::EncryptionMode::kMaxValue)
-
-IPC_ENUM_TRAITS_MAX_VALUE(media::EncryptionScheme::CipherMode,
- media::EncryptionScheme::CipherMode::CIPHER_MODE_MAX)
+IPC_ENUM_TRAITS_MAX_VALUE(media::EncryptionScheme,
+ media::EncryptionScheme::kMaxValue)
IPC_ENUM_TRAITS_MAX_VALUE(media::HdcpVersion,
media::HdcpVersion::kHdcpVersionMax)
diff --git a/media/base/key_system_properties.h b/media/base/key_system_properties.h
index c61b903..b8f1695 100644
--- a/media/base/key_system_properties.h
+++ b/media/base/key_system_properties.h
@@ -28,7 +28,7 @@
// Returns the configuration rule for supporting |encryption_scheme|.
virtual EmeConfigRule GetEncryptionSchemeConfigRule(
- EncryptionMode encryption_scheme) const = 0;
+ EncryptionScheme encryption_scheme) const = 0;
// Returns the codecs supported by this key system.
virtual SupportedCodecs GetSupportedCodecs() const = 0;
diff --git a/media/base/key_systems.cc b/media/base/key_systems.cc
index 82c00b09..88cb98d 100644
--- a/media/base/key_systems.cc
+++ b/media/base/key_systems.cc
@@ -134,12 +134,12 @@
}
media::EmeConfigRule GetEncryptionSchemeConfigRule(
- media::EncryptionMode encryption_scheme) const override {
+ media::EncryptionScheme encryption_scheme) const override {
switch (encryption_scheme) {
- case media::EncryptionMode::kCenc:
- case media::EncryptionMode::kCbcs:
+ case media::EncryptionScheme::kCenc:
+ case media::EncryptionScheme::kCbcs:
return media::EmeConfigRule::SUPPORTED;
- case media::EncryptionMode::kUnencrypted:
+ case media::EncryptionScheme::kUnencrypted:
break;
}
NOTREACHED();
@@ -251,7 +251,7 @@
EmeConfigRule GetEncryptionSchemeConfigRule(
const std::string& key_system,
- EncryptionMode encryption_scheme) const override;
+ EncryptionScheme encryption_scheme) const override;
EmeConfigRule GetContentTypeConfigRule(
const std::string& key_system,
@@ -565,7 +565,7 @@
EmeConfigRule KeySystemsImpl::GetEncryptionSchemeConfigRule(
const std::string& key_system,
- EncryptionMode encryption_scheme) const {
+ EncryptionScheme encryption_scheme) const {
DCHECK(thread_checker_.CalledOnValidThread());
auto key_system_iter = key_system_properties_map_.find(key_system);
diff --git a/media/base/key_systems.h b/media/base/key_systems.h
index 645f434..c912c1bb 100644
--- a/media/base/key_systems.h
+++ b/media/base/key_systems.h
@@ -42,7 +42,7 @@
// Returns the configuration rule for supporting |encryption_scheme|.
virtual EmeConfigRule GetEncryptionSchemeConfigRule(
const std::string& key_system,
- EncryptionMode encryption_scheme) const = 0;
+ EncryptionScheme encryption_scheme) const = 0;
// Returns the configuration rule for supporting a container and a list of
// codecs.
diff --git a/media/base/key_systems_unittest.cc b/media/base/key_systems_unittest.cc
index 3782240..29c042a 100644
--- a/media/base/key_systems_unittest.cc
+++ b/media/base/key_systems_unittest.cc
@@ -93,9 +93,9 @@
std::string GetKeySystemName() const override { return name_; }
EmeConfigRule GetEncryptionSchemeConfigRule(
- EncryptionMode encryption_scheme) const override {
- return (encryption_scheme == EncryptionMode::kUnencrypted ||
- encryption_scheme == EncryptionMode::kCenc)
+ EncryptionScheme encryption_scheme) const override {
+ return (encryption_scheme == EncryptionScheme::kUnencrypted ||
+ encryption_scheme == EncryptionScheme::kCenc)
? EmeConfigRule::SUPPORTED
: EmeConfigRule::NOT_SUPPORTED;
}
@@ -125,12 +125,12 @@
// Pretend clear (unencrypted) and 'cenc' content are always supported. But
// 'cbcs' is not supported by hardware secure codecs.
EmeConfigRule GetEncryptionSchemeConfigRule(
- EncryptionMode encryption_scheme) const override {
+ EncryptionScheme encryption_scheme) const override {
switch (encryption_scheme) {
- case media::EncryptionMode::kUnencrypted:
- case media::EncryptionMode::kCenc:
+ case media::EncryptionScheme::kUnencrypted:
+ case media::EncryptionScheme::kCenc:
return media::EmeConfigRule::SUPPORTED;
- case media::EncryptionMode::kCbcs:
+ case media::EncryptionScheme::kCbcs:
return media::EmeConfigRule::HW_SECURE_CODECS_NOT_ALLOWED;
}
NOTREACHED();
@@ -170,7 +170,7 @@
};
void ExpectEncryptionSchemeConfigRule(const std::string& key_system,
- EncryptionMode encryption_scheme,
+ EncryptionScheme encryption_scheme,
EmeConfigRule expected_rule) {
EXPECT_EQ(expected_rule,
KeySystems::GetInstance()->GetEncryptionSchemeConfigRule(
@@ -626,11 +626,11 @@
TEST_F(KeySystemsTest,
IsSupportedKeySystem_UsesAesDecryptor_EncryptionSchemes) {
- ExpectEncryptionSchemeConfigRule(kUsesAes, EncryptionMode::kUnencrypted,
+ ExpectEncryptionSchemeConfigRule(kUsesAes, EncryptionScheme::kUnencrypted,
EmeConfigRule::SUPPORTED);
- ExpectEncryptionSchemeConfigRule(kUsesAes, EncryptionMode::kCenc,
+ ExpectEncryptionSchemeConfigRule(kUsesAes, EncryptionScheme::kCenc,
EmeConfigRule::SUPPORTED);
- ExpectEncryptionSchemeConfigRule(kUsesAes, EncryptionMode::kCbcs,
+ ExpectEncryptionSchemeConfigRule(kUsesAes, EncryptionScheme::kCbcs,
EmeConfigRule::NOT_SUPPORTED);
}
@@ -760,11 +760,11 @@
if (!CanRunExternalKeySystemTests())
return;
- ExpectEncryptionSchemeConfigRule(kExternal, EncryptionMode::kUnencrypted,
+ ExpectEncryptionSchemeConfigRule(kExternal, EncryptionScheme::kUnencrypted,
EmeConfigRule::SUPPORTED);
- ExpectEncryptionSchemeConfigRule(kExternal, EncryptionMode::kCenc,
+ ExpectEncryptionSchemeConfigRule(kExternal, EncryptionScheme::kCenc,
EmeConfigRule::SUPPORTED);
- ExpectEncryptionSchemeConfigRule(kExternal, EncryptionMode::kCbcs,
+ ExpectEncryptionSchemeConfigRule(kExternal, EncryptionScheme::kCbcs,
EmeConfigRule::HW_SECURE_CODECS_NOT_ALLOWED);
}
diff --git a/media/base/media_util.cc b/media/base/media_util.cc
index 501574d..66f23be 100644
--- a/media/base/media_util.cc
+++ b/media/base/media_util.cc
@@ -5,7 +5,6 @@
#include "media/base/media_util.h"
#include "base/metrics/histogram_macros.h"
-#include "media/base/encryption_pattern.h"
namespace media {
@@ -42,15 +41,6 @@
return std::vector<uint8_t>();
}
-EncryptionScheme Unencrypted() {
- return EncryptionScheme();
-}
-
-EncryptionScheme AesCtrEncryptionScheme() {
- return EncryptionScheme(EncryptionScheme::CIPHER_MODE_AES_CTR,
- EncryptionPattern());
-}
-
void ReportPepperVideoDecoderOutputPictureCountHW(int height) {
UMA_HISTOGRAM_ENUMERATION("Media.PepperVideoDecoderOutputPictureCount.HW",
GetMediaVideoHeight(height));
diff --git a/media/base/media_util.h b/media/base/media_util.h
index d5f2600..65aee57e 100644
--- a/media/base/media_util.h
+++ b/media/base/media_util.h
@@ -9,7 +9,6 @@
#include <vector>
#include "base/macros.h"
-#include "media/base/encryption_scheme.h"
#include "media/base/media_export.h"
#include "media/base/media_log.h"
@@ -19,11 +18,6 @@
// constructed with empty extra data.
MEDIA_EXPORT std::vector<uint8_t> EmptyExtraData();
-// The following helper functions return new instances of EncryptionScheme that
-// indicate widely used settings.
-MEDIA_EXPORT EncryptionScheme Unencrypted();
-MEDIA_EXPORT EncryptionScheme AesCtrEncryptionScheme();
-
// Helpers for PPAPI UMAs. There wasn't an obvious place to put them in
// //content/renderer/pepper.
MEDIA_EXPORT void ReportPepperVideoDecoderOutputPictureCountHW(int height);
diff --git a/media/base/test_helpers.cc b/media/base/test_helpers.cc
index 0bc65a0..97bca27 100644
--- a/media/base/test_helpers.cc
+++ b/media/base/test_helpers.cc
@@ -139,7 +139,7 @@
codec, profile, VideoDecoderConfig::AlphaMode::kIsOpaque, color_space,
VideoTransformation(rotation), coded_size, visible_rect, natural_size,
EmptyExtraData(),
- is_encrypted ? AesCtrEncryptionScheme() : Unencrypted());
+ is_encrypted ? EncryptionScheme::kCenc : EncryptionScheme::kUnencrypted);
}
static VideoCodecProfile MinProfile(VideoCodec codec) {
@@ -243,13 +243,13 @@
AudioDecoderConfig TestAudioConfig::Normal() {
return AudioDecoderConfig(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, 44100, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
}
AudioDecoderConfig TestAudioConfig::NormalEncrypted() {
return AudioDecoderConfig(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, 44100, EmptyExtraData(),
- AesCtrEncryptionScheme());
+ EncryptionScheme::kCenc);
}
// static
diff --git a/media/base/video_decoder_config.cc b/media/base/video_decoder_config.cc
index c98ad08..dfe1f75 100644
--- a/media/base/video_decoder_config.cc
+++ b/media/base/video_decoder_config.cc
@@ -73,17 +73,16 @@
alpha_mode_(AlphaMode::kIsOpaque),
transformation_(kNoTransformation) {}
-VideoDecoderConfig::VideoDecoderConfig(
- VideoCodec codec,
- VideoCodecProfile profile,
- AlphaMode alpha_mode,
- const VideoColorSpace& color_space,
- VideoTransformation rotation,
- const gfx::Size& coded_size,
- const gfx::Rect& visible_rect,
- const gfx::Size& natural_size,
- const std::vector<uint8_t>& extra_data,
- const EncryptionScheme& encryption_scheme) {
+VideoDecoderConfig::VideoDecoderConfig(VideoCodec codec,
+ VideoCodecProfile profile,
+ AlphaMode alpha_mode,
+ const VideoColorSpace& color_space,
+ VideoTransformation rotation,
+ const gfx::Size& coded_size,
+ const gfx::Rect& visible_rect,
+ const gfx::Size& natural_size,
+ const std::vector<uint8_t>& extra_data,
+ EncryptionScheme encryption_scheme) {
Initialize(codec, profile, alpha_mode, color_space, rotation, coded_size,
visible_rect, natural_size, extra_data, encryption_scheme);
}
@@ -119,7 +118,7 @@
const gfx::Rect& visible_rect,
const gfx::Size& natural_size,
const std::vector<uint8_t>& extra_data,
- const EncryptionScheme& encryption_scheme) {
+ EncryptionScheme encryption_scheme) {
codec_ = codec;
profile_ = profile;
alpha_mode_ = alpha_mode;
@@ -146,7 +145,7 @@
visible_rect() == config.visible_rect() &&
natural_size() == config.natural_size() &&
extra_data() == config.extra_data() &&
- encryption_scheme().Matches(config.encryption_scheme()) &&
+ encryption_scheme() == config.encryption_scheme() &&
color_space_info() == config.color_space_info() &&
hdr_metadata() == config.hdr_metadata();
}
@@ -197,16 +196,17 @@
void VideoDecoderConfig::SetIsEncrypted(bool is_encrypted) {
if (!is_encrypted) {
- DCHECK(encryption_scheme_.is_encrypted()) << "Config is already clear.";
- encryption_scheme_ = Unencrypted();
+ DCHECK_NE(encryption_scheme_, EncryptionScheme::kUnencrypted)
+ << "Config is already clear.";
+ encryption_scheme_ = EncryptionScheme::kUnencrypted;
} else {
- DCHECK(!encryption_scheme_.is_encrypted())
+ DCHECK_EQ(encryption_scheme_, EncryptionScheme::kUnencrypted)
<< "Config is already encrypted.";
// TODO(xhwang): This is only used to guide decoder selection, so set
// a common encryption scheme that should be supported by all decrypting
// decoders. We should be able to remove this when we support switching
// decoders at run time. See http://crbug.com/695595
- encryption_scheme_ = AesCtrEncryptionScheme();
+ encryption_scheme_ = EncryptionScheme::kCenc;
}
}
diff --git a/media/base/video_decoder_config.h b/media/base/video_decoder_config.h
index afe139a..e9ca279 100644
--- a/media/base/video_decoder_config.h
+++ b/media/base/video_decoder_config.h
@@ -48,7 +48,7 @@
const gfx::Rect& visible_rect,
const gfx::Size& natural_size,
const std::vector<uint8_t>& extra_data,
- const EncryptionScheme& encryption_scheme);
+ EncryptionScheme encryption_scheme);
VideoDecoderConfig(const VideoDecoderConfig& other);
~VideoDecoderConfig();
@@ -63,7 +63,7 @@
const gfx::Rect& visible_rect,
const gfx::Size& natural_size,
const std::vector<uint8_t>& extra_data,
- const EncryptionScheme& encryption_scheme);
+ EncryptionScheme encryption_scheme);
// Returns true if this object has appropriate configuration values, false
// otherwise.
@@ -140,12 +140,12 @@
// Whether the video stream is potentially encrypted.
// Note that in a potentially encrypted video stream, individual buffers
// can be encrypted or not encrypted.
- bool is_encrypted() const { return encryption_scheme_.is_encrypted(); }
+ bool is_encrypted() const {
+ return encryption_scheme_ != EncryptionScheme::kUnencrypted;
+ }
// Encryption scheme used for encrypted buffers.
- const EncryptionScheme& encryption_scheme() const {
- return encryption_scheme_;
- }
+ EncryptionScheme encryption_scheme() const { return encryption_scheme_; }
// Color space of the image data.
void set_color_space_info(const VideoColorSpace& color_space);
@@ -175,7 +175,7 @@
std::vector<uint8_t> extra_data_;
- EncryptionScheme encryption_scheme_;
+ EncryptionScheme encryption_scheme_ = EncryptionScheme::kUnencrypted;
VideoColorSpace color_space_info_;
base::Optional<HDRMetadata> hdr_metadata_;
diff --git a/media/base/video_decoder_config_unittest.cc b/media/base/video_decoder_config_unittest.cc
index 636e7a4..6c083a0 100644
--- a/media/base/video_decoder_config_unittest.cc
+++ b/media/base/video_decoder_config_unittest.cc
@@ -19,14 +19,14 @@
VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize,
kVisibleRect, kNaturalSize, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
EXPECT_TRUE(config.IsValidConfig());
EXPECT_EQ(config.alpha_mode(), VideoDecoderConfig::AlphaMode::kIsOpaque);
config.Initialize(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN,
VideoDecoderConfig::AlphaMode::kHasAlpha, VideoColorSpace(),
kNoTransformation, kCodedSize, kVisibleRect, kNaturalSize,
- EmptyExtraData(), Unencrypted());
+ EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_EQ(config.alpha_mode(), VideoDecoderConfig::AlphaMode::kHasAlpha);
}
@@ -35,7 +35,7 @@
VideoDecoderConfig config(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- natural_size, EmptyExtraData(), Unencrypted());
+ natural_size, EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_FALSE(config.IsValidConfig());
}
@@ -44,7 +44,7 @@
VideoDecoderConfig config(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- natural_size, EmptyExtraData(), Unencrypted());
+ natural_size, EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_FALSE(config.IsValidConfig());
}
@@ -53,7 +53,7 @@
VideoDecoderConfig config(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- natural_size, EmptyExtraData(), Unencrypted());
+ natural_size, EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_FALSE(config.IsValidConfig());
}
@@ -62,7 +62,7 @@
VideoDecoderConfig config(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- natural_size, EmptyExtraData(), Unencrypted());
+ natural_size, EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_FALSE(config.IsValidConfig());
}
@@ -73,7 +73,7 @@
VideoDecoderConfig config(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- natural_size, EmptyExtraData(), Unencrypted());
+ natural_size, EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_FALSE(config.IsValidConfig());
}
@@ -87,7 +87,7 @@
VideoDecoderConfig config(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- natural_size, EmptyExtraData(), Unencrypted());
+ natural_size, EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_FALSE(config.IsValidConfig());
}
diff --git a/media/base/video_thumbnail_decoder_unittest.cc b/media/base/video_thumbnail_decoder_unittest.cc
index 5cdf459..57550ae1 100644
--- a/media/base/video_thumbnail_decoder_unittest.cc
+++ b/media/base/video_thumbnail_decoder_unittest.cc
@@ -38,7 +38,7 @@
VideoDecoderConfig valid_config(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, gfx::Size(1, 1), gfx::Rect(1, 1),
- gfx::Size(1, 1), EmptyExtraData(), Unencrypted());
+ gfx::Size(1, 1), EmptyExtraData(), EncryptionScheme::kUnencrypted);
thumbnail_decoder_ = std::make_unique<VideoThumbnailDecoder>(
std::move(mock_video_decoder), valid_config, std::vector<uint8_t>{0u});
diff --git a/media/blink/key_system_config_selector.cc b/media/blink/key_system_config_selector.cc
index faed6ec7f..6a98a4f1 100644
--- a/media/blink/key_system_config_selector.cc
+++ b/media/blink/key_system_config_selector.cc
@@ -378,11 +378,11 @@
// compatibility and simplicity, we treat kNotSpecified the same as kCenc.
case EmeEncryptionScheme::kNotSpecified:
case EmeEncryptionScheme::kCenc:
- return key_systems_->GetEncryptionSchemeConfigRule(key_system,
- EncryptionMode::kCenc);
+ return key_systems_->GetEncryptionSchemeConfigRule(
+ key_system, EncryptionScheme::kCenc);
case EmeEncryptionScheme::kCbcs:
- return key_systems_->GetEncryptionSchemeConfigRule(key_system,
- EncryptionMode::kCbcs);
+ return key_systems_->GetEncryptionSchemeConfigRule(
+ key_system, EncryptionScheme::kCbcs);
}
NOTREACHED();
diff --git a/media/blink/key_system_config_selector_unittest.cc b/media/blink/key_system_config_selector_unittest.cc
index 2299401..f484498 100644
--- a/media/blink/key_system_config_selector_unittest.cc
+++ b/media/blink/key_system_config_selector_unittest.cc
@@ -77,17 +77,18 @@
constexpr EncryptionScheme kDisallowHwSecureCodecEncryptionScheme =
EncryptionScheme::kCbcs;
-EncryptionMode ConvertEncryptionScheme(EncryptionScheme encryption_scheme) {
+media::EncryptionScheme ConvertEncryptionScheme(
+ EncryptionScheme encryption_scheme) {
switch (encryption_scheme) {
case EncryptionScheme::kNotSpecified:
case EncryptionScheme::kCenc:
- return EncryptionMode::kCenc;
+ return media::EncryptionScheme::kCenc;
case EncryptionScheme::kCbcs:
- return EncryptionMode::kCbcs;
+ return media::EncryptionScheme::kCbcs;
}
NOTREACHED();
- return EncryptionMode::kUnencrypted;
+ return media::EncryptionScheme::kUnencrypted;
}
WebString MakeCodecs(const std::string& a, const std::string& b) {
@@ -215,7 +216,7 @@
EmeConfigRule GetEncryptionSchemeConfigRule(
const std::string& key_system,
- EncryptionMode encryption_scheme) const override {
+ media::EncryptionScheme encryption_scheme) const override {
if (encryption_scheme ==
ConvertEncryptionScheme(kSupportedEncryptionScheme)) {
return EmeConfigRule::SUPPORTED;
diff --git a/media/blink/video_decode_stats_reporter_unittest.cc b/media/blink/video_decode_stats_reporter_unittest.cc
index 7ce60a1..1dfba937 100644
--- a/media/blink/video_decode_stats_reporter_unittest.cc
+++ b/media/blink/video_decode_stats_reporter_unittest.cc
@@ -52,7 +52,7 @@
return VideoDecoderConfig(
codec, profile, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace::JPEG(), kNoTransformation, coded_size, visible_rect,
- natural_size, EmptyExtraData(), Unencrypted());
+ natural_size, EmptyExtraData(), EncryptionScheme::kUnencrypted);
}
PipelineStatistics MakeStats(int frames_decoded,
diff --git a/media/blink/watch_time_reporter_unittest.cc b/media/blink/watch_time_reporter_unittest.cc
index 0a12e04..4cb4b2d 100644
--- a/media/blink/watch_time_reporter_unittest.cc
+++ b/media/blink/watch_time_reporter_unittest.cc
@@ -1102,8 +1102,8 @@
has_video_ ? H264PROFILE_MAIN : VIDEO_CODEC_PROFILE_UNKNOWN,
has_audio_ ? "FirstAudioDecoder" : "",
has_video_ ? "FirstVideoDecoder" : "",
- has_audio_ ? EncryptionMode::kCenc : EncryptionMode::kUnencrypted,
- has_video_ ? EncryptionMode::kCbcs : EncryptionMode::kUnencrypted,
+ has_audio_ ? EncryptionScheme::kCenc : EncryptionScheme::kUnencrypted,
+ has_video_ ? EncryptionScheme::kCbcs : EncryptionScheme::kUnencrypted,
has_video_ ? gfx::Size(800, 600) : gfx::Size());
// Get a pointer to our original properties since we're not allowed to use
@@ -1137,7 +1137,7 @@
.Times((has_audio_ && has_video_) ? 3 : 2);
wtr_->UpdateSecondaryProperties(mojom::SecondaryPlaybackProperties::New(
kUnknownAudioCodec, kUnknownVideoCodec, VIDEO_CODEC_PROFILE_UNKNOWN, "",
- "", EncryptionMode::kUnencrypted, EncryptionMode::kUnencrypted,
+ "", EncryptionScheme::kUnencrypted, EncryptionScheme::kUnencrypted,
kSizeJustRight));
EXPECT_TRUE(IsMonitoring());
@@ -1159,7 +1159,7 @@
.Times((has_audio_ && has_video_) ? 3 : 2);
wtr_->UpdateSecondaryProperties(mojom::SecondaryPlaybackProperties::New(
kUnknownAudioCodec, kUnknownVideoCodec, VIDEO_CODEC_PROFILE_UNKNOWN, "",
- "", EncryptionMode::kUnencrypted, EncryptionMode::kUnencrypted,
+ "", EncryptionScheme::kUnencrypted, EncryptionScheme::kUnencrypted,
kSizeTooSmall));
EXPECT_WATCH_TIME_FINALIZED();
CycleReportingTimer();
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index c6c8b77..657890d0 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -172,31 +172,19 @@
// These values are persisted to UMA. Entries should not be renumbered and
// numeric values should never be reused.
-// TODO(crbug.com/825041): This should use EncryptionMode when kUnencrypted
+// TODO(crbug.com/825041): This should use EncryptionScheme when kUnencrypted
// removed.
enum class EncryptionSchemeUMA { kCenc = 0, kCbcs = 1, kCount };
EncryptionSchemeUMA DetermineEncryptionSchemeUMAValue(
- const EncryptionScheme& encryption_scheme) {
- if (encryption_scheme.mode() == EncryptionScheme::CIPHER_MODE_AES_CBC)
+ EncryptionScheme encryption_scheme) {
+ if (encryption_scheme == EncryptionScheme::kCbcs)
return EncryptionSchemeUMA::kCbcs;
- DCHECK_EQ(encryption_scheme.mode(), EncryptionScheme::CIPHER_MODE_AES_CTR);
+ DCHECK_EQ(encryption_scheme, EncryptionScheme::kCenc);
return EncryptionSchemeUMA::kCenc;
}
-EncryptionMode DetermineEncryptionMode(
- const EncryptionScheme& encryption_scheme) {
- switch (encryption_scheme.mode()) {
- case EncryptionScheme::CIPHER_MODE_UNENCRYPTED:
- return EncryptionMode::kUnencrypted;
- case EncryptionScheme::CIPHER_MODE_AES_CTR:
- return EncryptionMode::kCenc;
- case EncryptionScheme::CIPHER_MODE_AES_CBC:
- return EncryptionMode::kCbcs;
- }
-}
-
#if BUILDFLAG(ENABLE_FFMPEG)
// Returns true if |url| represents (or is likely to) a local file.
bool IsLocalFile(const GURL& url) {
@@ -3206,10 +3194,8 @@
pipeline_metadata_.video_decoder_config.codec(),
pipeline_metadata_.video_decoder_config.profile(),
audio_decoder_name_, video_decoder_name_,
- DetermineEncryptionMode(
- pipeline_metadata_.audio_decoder_config.encryption_scheme()),
- DetermineEncryptionMode(
- pipeline_metadata_.video_decoder_config.encryption_scheme()),
+ pipeline_metadata_.audio_decoder_config.encryption_scheme(),
+ pipeline_metadata_.video_decoder_config.encryption_scheme(),
pipeline_metadata_.natural_size));
}
@@ -3585,11 +3571,11 @@
void WebMediaPlayerImpl::RecordEncryptionScheme(
const std::string& stream_name,
- const EncryptionScheme& encryption_scheme) {
+ EncryptionScheme encryption_scheme) {
DCHECK(stream_name == "Audio" || stream_name == "Video");
// If the stream is not encrypted, don't record it.
- if (encryption_scheme.mode() == EncryptionScheme::CIPHER_MODE_UNENCRYPTED)
+ if (encryption_scheme == EncryptionScheme::kUnencrypted)
return;
base::UmaHistogramEnumeration(
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
index 14ebb86c..2fba773 100644
--- a/media/blink/webmediaplayer_impl.h
+++ b/media/blink/webmediaplayer_impl.h
@@ -27,6 +27,7 @@
#include "cc/layers/surface_layer.h"
#include "components/viz/common/gpu/context_provider.h"
#include "media/base/cdm_config.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/media_observer.h"
#include "media/base/media_tracks.h"
#include "media/base/overlay_info.h"
@@ -77,7 +78,6 @@
namespace media {
class CdmContextRef;
class ChunkDemuxer;
-class EncryptionScheme;
class VideoDecodeStatsReporter;
class MediaLog;
class UrlIndex;
@@ -594,7 +594,7 @@
// Records the encryption scheme used by the stream |stream_name|. This is
// only recorded when metadata is available.
void RecordEncryptionScheme(const std::string& stream_name,
- const EncryptionScheme& encryption_scheme);
+ EncryptionScheme encryption_scheme);
// Returns whether the player is currently displayed in Picture-in-Picture.
// It will return true even if the player is in AutoPIP mode.
diff --git a/media/cast/sender/h264_vt_encoder_unittest.cc b/media/cast/sender/h264_vt_encoder_unittest.cc
index 3c1c7b7..5c95e614 100644
--- a/media/cast/sender/h264_vt_encoder_unittest.cc
+++ b/media/cast/sender/h264_vt_encoder_unittest.cc
@@ -305,7 +305,7 @@
VideoDecoderConfig config(
kCodecH264, H264PROFILE_MAIN, alpha_mode, VideoColorSpace(),
kNoTransformation, frame_->coded_size(), frame_->visible_rect(),
- frame_->natural_size(), EmptyExtraData(), Unencrypted());
+ frame_->natural_size(), EmptyExtraData(), EncryptionScheme::kUnencrypted);
scoped_refptr<EndToEndFrameChecker> checker(new EndToEndFrameChecker(config));
VideoEncoder::FrameEncodedCallback cb =
diff --git a/media/cdm/aes_decryptor.cc b/media/cdm/aes_decryptor.cc
index 176050a..4abcdfa7 100644
--- a/media/cdm/aes_decryptor.cc
+++ b/media/cdm/aes_decryptor.cc
@@ -155,10 +155,10 @@
CHECK(input.data_size());
CHECK(input.decrypt_config());
- if (input.decrypt_config()->encryption_mode() == EncryptionMode::kCenc)
+ if (input.decrypt_config()->encryption_scheme() == EncryptionScheme::kCenc)
return DecryptCencBuffer(input, key);
- if (input.decrypt_config()->encryption_mode() == EncryptionMode::kCbcs)
+ if (input.decrypt_config()->encryption_scheme() == EncryptionScheme::kCbcs)
return DecryptCbcsBuffer(input, key);
DVLOG(1) << "Only 'cenc' and 'cbcs' modes supported.";
diff --git a/media/cdm/cbcs_decryptor.cc b/media/cdm/cbcs_decryptor.cc
index 94c18ad..10f4dfd 100644
--- a/media/cdm/cbcs_decryptor.cc
+++ b/media/cdm/cbcs_decryptor.cc
@@ -126,7 +126,7 @@
const DecryptConfig* decrypt_config = input.decrypt_config();
DCHECK(decrypt_config) << "No need to call Decrypt() on unencrypted buffer.";
- DCHECK_EQ(EncryptionMode::kCbcs, decrypt_config->encryption_mode());
+ DCHECK_EQ(EncryptionScheme::kCbcs, decrypt_config->encryption_scheme());
DCHECK(decrypt_config->HasPattern());
const EncryptionPattern pattern =
diff --git a/media/cdm/cdm_type_conversion.cc b/media/cdm/cdm_type_conversion.cc
index 159d63d2..e786316 100644
--- a/media/cdm/cdm_type_conversion.cc
+++ b/media/cdm/cdm_type_conversion.cc
@@ -203,31 +203,17 @@
return cdm::kInternalError;
}
-cdm::EncryptionScheme ToCdmEncryptionScheme(const EncryptionScheme& scheme) {
- switch (scheme.mode()) {
- case EncryptionScheme::CIPHER_MODE_UNENCRYPTED:
+cdm::EncryptionScheme ToCdmEncryptionScheme(EncryptionScheme scheme) {
+ switch (scheme) {
+ case EncryptionScheme::kUnencrypted:
return cdm::EncryptionScheme::kUnencrypted;
- case EncryptionScheme::CIPHER_MODE_AES_CTR:
+ case EncryptionScheme::kCenc:
return cdm::EncryptionScheme::kCenc;
- case EncryptionScheme::CIPHER_MODE_AES_CBC:
+ case EncryptionScheme::kCbcs:
return cdm::EncryptionScheme::kCbcs;
}
- NOTREACHED() << "Unexpected EncryptionScheme mode " << scheme.mode();
- return cdm::EncryptionScheme::kUnencrypted;
-}
-
-cdm::EncryptionScheme ToCdmEncryptionScheme(const EncryptionMode& mode) {
- switch (mode) {
- case EncryptionMode::kUnencrypted:
- return cdm::EncryptionScheme::kUnencrypted;
- case EncryptionMode::kCenc:
- return cdm::EncryptionScheme::kCenc;
- case EncryptionMode::kCbcs:
- return cdm::EncryptionScheme::kCbcs;
- }
-
- NOTREACHED() << "Unexpected EncryptionMode";
+ NOTREACHED() << "Unexpected EncryptionScheme";
return cdm::EncryptionScheme::kUnencrypted;
}
@@ -626,7 +612,7 @@
input_buffer->num_subsamples = num_subsamples;
input_buffer->encryption_scheme =
- ToCdmEncryptionScheme(decrypt_config->encryption_mode());
+ ToCdmEncryptionScheme(decrypt_config->encryption_scheme());
if (decrypt_config->HasPattern()) {
input_buffer->pattern = {
decrypt_config->encryption_pattern()->crypt_byte_block(),
diff --git a/media/cdm/cdm_type_conversion.h b/media/cdm/cdm_type_conversion.h
index 2d9e670..d7b303a 100644
--- a/media/cdm/cdm_type_conversion.h
+++ b/media/cdm/cdm_type_conversion.h
@@ -51,9 +51,7 @@
MEDIA_EXPORT cdm::KeyStatus ToCdmKeyStatus(CdmKeyInformation::KeyStatus status);
MEDIA_EXPORT cdm::EncryptionScheme ToCdmEncryptionScheme(
- const EncryptionScheme& scheme);
-MEDIA_EXPORT cdm::EncryptionScheme ToCdmEncryptionScheme(
- const EncryptionMode& mode);
+ EncryptionScheme scheme);
MEDIA_EXPORT CdmPromise::Exception ToMediaCdmPromiseException(
cdm::Exception exception);
diff --git a/media/cdm/cenc_decryptor.cc b/media/cdm/cenc_decryptor.cc
index ae0442f..647362e 100644
--- a/media/cdm/cenc_decryptor.cc
+++ b/media/cdm/cenc_decryptor.cc
@@ -68,7 +68,7 @@
const DecryptConfig* decrypt_config = input.decrypt_config();
DCHECK(decrypt_config) << "No need to call Decrypt() on unencrypted buffer.";
- DCHECK_EQ(EncryptionMode::kCenc, decrypt_config->encryption_mode());
+ DCHECK_EQ(EncryptionScheme::kCenc, decrypt_config->encryption_scheme());
const std::string& iv = decrypt_config->iv();
DCHECK_EQ(iv.size(), static_cast<size_t>(DecryptConfig::kDecryptionKeySize));
diff --git a/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc
index 7e62ba0..0321d2d 100644
--- a/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc
+++ b/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc
@@ -59,7 +59,7 @@
gfx::Rect(coded_size), coded_size,
std::vector<uint8_t>(config.extra_data,
config.extra_data + config.extra_data_size),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
return media_config;
}
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 72dc400..ddce138 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -26,7 +26,7 @@
EncryptionScheme GetEncryptionScheme(const AVStream* stream) {
AVDictionaryEntry* key =
av_dict_get(stream->metadata, "enc_key_id", nullptr, 0);
- return key ? AesCtrEncryptionScheme() : Unencrypted();
+ return key ? EncryptionScheme::kCenc : EncryptionScheme::kUnencrypted;
}
} // namespace
@@ -318,10 +318,9 @@
return AV_SAMPLE_FMT_NONE;
}
-bool AVCodecContextToAudioDecoderConfig(
- const AVCodecContext* codec_context,
- const EncryptionScheme& encryption_scheme,
- AudioDecoderConfig* config) {
+bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
+ EncryptionScheme encryption_scheme,
+ AudioDecoderConfig* config) {
DCHECK_EQ(codec_context->codec_type, AVMEDIA_TYPE_AUDIO);
AudioCodec codec = CodecIDToAudioCodec(codec_context->codec_id);
diff --git a/media/ffmpeg/ffmpeg_common.h b/media/ffmpeg/ffmpeg_common.h
index 3c6c62b..fbcfa14 100644
--- a/media/ffmpeg/ffmpeg_common.h
+++ b/media/ffmpeg/ffmpeg_common.h
@@ -15,6 +15,7 @@
#include "base/time/time.h"
#include "media/base/audio_codecs.h"
#include "media/base/channel_layout.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/media_export.h"
#include "media/base/sample_format.h"
#include "media/base/video_codecs.h"
@@ -43,7 +44,6 @@
constexpr int64_t kNoFFmpegTimestamp = static_cast<int64_t>(AV_NOPTS_VALUE);
class AudioDecoderConfig;
-class EncryptionScheme;
class VideoDecoderConfig;
// The following implement the deleters declared in ffmpeg_deleters.h (which
@@ -114,7 +114,7 @@
// is not modified.
MEDIA_EXPORT bool AVCodecContextToAudioDecoderConfig(
const AVCodecContext* codec_context,
- const EncryptionScheme& encryption_scheme,
+ EncryptionScheme encryption_scheme,
AudioDecoderConfig* config);
// Converts FFmpeg's channel layout to chrome's ChannelLayout. |channels| can
diff --git a/media/filters/android/media_codec_audio_decoder.cc b/media/filters/android/media_codec_audio_decoder.cc
index 209d799..c88bcab 100644
--- a/media/filters/android/media_codec_audio_decoder.cc
+++ b/media/filters/android/media_codec_audio_decoder.cc
@@ -314,7 +314,7 @@
input_data.key_id = decrypt_config->key_id();
input_data.iv = decrypt_config->iv();
input_data.subsamples = decrypt_config->subsamples();
- input_data.encryption_scheme = decrypt_config->encryption_mode();
+ input_data.encryption_scheme = decrypt_config->encryption_scheme();
input_data.encryption_pattern = decrypt_config->encryption_pattern();
}
input_data.presentation_time = decoder_buffer->timestamp();
diff --git a/media/filters/audio_decoder_unittest.cc b/media/filters/audio_decoder_unittest.cc
index 62315337..ddac5fd0 100644
--- a/media/filters/audio_decoder_unittest.cc
+++ b/media/filters/audio_decoder_unittest.cc
@@ -209,7 +209,8 @@
AudioDecoderConfig config;
ASSERT_TRUE(AVCodecContextToAudioDecoderConfig(
- reader_->codec_context_for_testing(), Unencrypted(), &config));
+ reader_->codec_context_for_testing(), EncryptionScheme::kUnencrypted,
+ &config));
#if defined(OS_ANDROID) && BUILDFLAG(USE_PROPRIETARY_CODECS)
// MEDIA_CODEC type requires config->extra_data() for AAC codec. For ADTS
@@ -224,7 +225,7 @@
&channel_layout, nullptr, nullptr, &extra_data),
0);
config.Initialize(kCodecAAC, kSampleFormatS16, channel_layout,
- sample_rate, extra_data, Unencrypted(),
+ sample_rate, extra_data, EncryptionScheme::kUnencrypted,
base::TimeDelta(), 0);
ASSERT_FALSE(config.extra_data().empty());
}
diff --git a/media/filters/audio_timestamp_validator_unittest.cc b/media/filters/audio_timestamp_validator_unittest.cc
index 2424091..f21e28c 100644
--- a/media/filters/audio_timestamp_validator_unittest.cc
+++ b/media/filters/audio_timestamp_validator_unittest.cc
@@ -63,8 +63,9 @@
TEST_P(AudioTimestampValidatorTest, WarnForEraticTimes) {
AudioDecoderConfig decoder_config;
decoder_config.Initialize(kCodec, kSampleFormat, kChannelLayout,
- kSamplesPerSecond, EmptyExtraData(), Unencrypted(),
- kSeekPreroll, codec_delay_);
+ kSamplesPerSecond, EmptyExtraData(),
+ EncryptionScheme::kUnencrypted, kSeekPreroll,
+ codec_delay_);
// Validator should fail to stabilize pattern for timestamp expectations.
EXPECT_MEDIA_LOG(
@@ -112,8 +113,9 @@
TEST_P(AudioTimestampValidatorTest, NoWarningForValidTimes) {
AudioDecoderConfig decoder_config;
decoder_config.Initialize(kCodec, kSampleFormat, kChannelLayout,
- kSamplesPerSecond, EmptyExtraData(), Unencrypted(),
- kSeekPreroll, codec_delay_);
+ kSamplesPerSecond, EmptyExtraData(),
+ EncryptionScheme::kUnencrypted, kSeekPreroll,
+ codec_delay_);
// Validator should quickly stabilize pattern for timestamp expectations.
EXPECT_MEDIA_LOG(HasSubstr("Failed to reconcile encoded audio times "
@@ -151,8 +153,9 @@
TEST_P(AudioTimestampValidatorTest, SingleWarnForSingleLargeGap) {
AudioDecoderConfig decoder_config;
decoder_config.Initialize(kCodec, kSampleFormat, kChannelLayout,
- kSamplesPerSecond, EmptyExtraData(), Unencrypted(),
- kSeekPreroll, codec_delay_);
+ kSamplesPerSecond, EmptyExtraData(),
+ EncryptionScheme::kUnencrypted, kSeekPreroll,
+ codec_delay_);
AudioTimestampValidator validator(decoder_config, &media_log_);
@@ -196,8 +199,9 @@
TEST_P(AudioTimestampValidatorTest, RepeatedWarnForSlowAccumulatingDrift) {
AudioDecoderConfig decoder_config;
decoder_config.Initialize(kCodec, kSampleFormat, kChannelLayout,
- kSamplesPerSecond, EmptyExtraData(), Unencrypted(),
- kSeekPreroll, codec_delay_);
+ kSamplesPerSecond, EmptyExtraData(),
+ EncryptionScheme::kUnencrypted, kSeekPreroll,
+ codec_delay_);
AudioTimestampValidator validator(decoder_config, &media_log_);
diff --git a/media/filters/decrypting_audio_decoder_unittest.cc b/media/filters/decrypting_audio_decoder_unittest.cc
index 1932020..acb150e 100644
--- a/media/filters/decrypting_audio_decoder_unittest.cc
+++ b/media/filters/decrypting_audio_decoder_unittest.cc
@@ -108,7 +108,7 @@
config_.Initialize(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, kSampleRate, EmptyExtraData(),
- AesCtrEncryptionScheme(), base::TimeDelta(), 0);
+ EncryptionScheme::kCenc, base::TimeDelta(), 0);
InitializeAndExpectResult(config_, true);
}
@@ -276,7 +276,7 @@
TEST_F(DecryptingAudioDecoderTest, Initialize_InvalidAudioConfig) {
AudioDecoderConfig config(kUnknownAudioCodec, kUnknownSampleFormat,
CHANNEL_LAYOUT_STEREO, 0, EmptyExtraData(),
- AesCtrEncryptionScheme());
+ EncryptionScheme::kCenc);
InitializeAndExpectResult(config, false);
}
@@ -289,7 +289,7 @@
AudioDecoderConfig config(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, kSampleRate,
- EmptyExtraData(), AesCtrEncryptionScheme());
+ EmptyExtraData(), EncryptionScheme::kCenc);
InitializeAndExpectResult(config, false);
}
@@ -297,7 +297,7 @@
SetCdmType(CDM_WITHOUT_DECRYPTOR);
AudioDecoderConfig config(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, kSampleRate,
- EmptyExtraData(), AesCtrEncryptionScheme());
+ EmptyExtraData(), EncryptionScheme::kCenc);
InitializeAndExpectResult(config, false);
}
@@ -362,7 +362,7 @@
// channel layout and samples_per_second.
AudioDecoderConfig new_config(kCodecVorbis, kSampleFormatPlanarS16,
CHANNEL_LAYOUT_5_1, 88200, EmptyExtraData(),
- AesCtrEncryptionScheme());
+ EncryptionScheme::kCenc);
EXPECT_NE(new_config.bits_per_channel(), config_.bits_per_channel());
EXPECT_NE(new_config.channel_layout(), config_.channel_layout());
EXPECT_NE(new_config.samples_per_second(), config_.samples_per_second());
@@ -384,7 +384,7 @@
// channel layout and samples_per_second.
AudioDecoderConfig new_config(kCodecVorbis, kSampleFormatPlanarS16,
CHANNEL_LAYOUT_5_1, 88200, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
EXPECT_NE(new_config.bits_per_channel(), config_.bits_per_channel());
EXPECT_NE(new_config.channel_layout(), config_.channel_layout());
EXPECT_NE(new_config.samples_per_second(), config_.samples_per_second());
diff --git a/media/filters/decrypting_demuxer_stream_unittest.cc b/media/filters/decrypting_demuxer_stream_unittest.cc
index b927aa1..2d4f6931 100644
--- a/media/filters/decrypting_demuxer_stream_unittest.cc
+++ b/media/filters/decrypting_demuxer_stream_unittest.cc
@@ -145,7 +145,7 @@
AudioDecoderConfig input_config(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, 44100,
- EmptyExtraData(), AesCtrEncryptionScheme());
+ EmptyExtraData(), EncryptionScheme::kCenc);
InitializeAudioAndExpectStatus(input_config, PIPELINE_OK);
const AudioDecoderConfig& output_config =
@@ -326,7 +326,7 @@
SetCdmType(CDM_WITHOUT_DECRYPTOR);
AudioDecoderConfig input_config(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, 44100,
- EmptyExtraData(), AesCtrEncryptionScheme());
+ EmptyExtraData(), EncryptionScheme::kCenc);
InitializeAudioAndExpectStatus(input_config, DECODER_ERROR_NOT_SUPPORTED);
}
@@ -502,7 +502,7 @@
AudioDecoderConfig new_config(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, 88200, EmptyExtraData(),
- AesCtrEncryptionScheme());
+ EncryptionScheme::kCenc);
input_audio_stream_->set_audio_decoder_config(new_config);
EXPECT_CALL(*input_audio_stream_, OnRead(_))
diff --git a/media/filters/ffmpeg_video_decoder_unittest.cc b/media/filters/ffmpeg_video_decoder_unittest.cc
index 24fe18f..5fdf779ea 100644
--- a/media/filters/ffmpeg_video_decoder_unittest.cc
+++ b/media/filters/ffmpeg_video_decoder_unittest.cc
@@ -225,7 +225,7 @@
VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize,
kVisibleRect, kNaturalSize, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
InitializeWithConfigWithResult(config, false);
}
diff --git a/media/filters/frame_processor_unittest.cc b/media/filters/frame_processor_unittest.cc
index a907c1d..ee4dec0 100644
--- a/media/filters/frame_processor_unittest.cc
+++ b/media/filters/frame_processor_unittest.cc
@@ -345,9 +345,9 @@
ASSERT_FALSE(audio_);
audio_.reset(
new ChunkDemuxerStream(DemuxerStream::AUDIO, MediaTrack::Id("1")));
- AudioDecoderConfig decoder_config(kCodecVorbis, kSampleFormatPlanarF32,
- CHANNEL_LAYOUT_STEREO, 1000,
- EmptyExtraData(), Unencrypted());
+ AudioDecoderConfig decoder_config(
+ kCodecVorbis, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO, 1000,
+ EmptyExtraData(), EncryptionScheme::kUnencrypted);
frame_processor_->OnPossibleAudioConfigUpdate(decoder_config);
ASSERT_TRUE(
audio_->UpdateAudioConfig(decoder_config, false, &media_log_));
diff --git a/media/filters/source_buffer_state_unittest.cc b/media/filters/source_buffer_state_unittest.cc
index c0b0dba..9221b928 100644
--- a/media/filters/source_buffer_state_unittest.cc
+++ b/media/filters/source_buffer_state_unittest.cc
@@ -29,7 +29,7 @@
AudioDecoderConfig CreateAudioConfig(AudioCodec codec) {
return AudioDecoderConfig(codec, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, 1000, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
}
VideoDecoderConfig CreateVideoConfig(VideoCodec codec, int w, int h) {
@@ -39,7 +39,7 @@
VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace::REC709(), kNoTransformation, size,
visible_rect, size, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
}
void AddAudioTrack(std::unique_ptr<MediaTracks>& t, AudioCodec codec, int id) {
diff --git a/media/filters/source_buffer_stream_unittest.cc b/media/filters/source_buffer_stream_unittest.cc
index 8364ab7d..0fd3b26 100644
--- a/media/filters/source_buffer_stream_unittest.cc
+++ b/media/filters/source_buffer_stream_unittest.cc
@@ -96,9 +96,9 @@
void SetAudioStream() {
video_config_ = TestVideoConfig::Invalid();
- audio_config_.Initialize(kCodecVorbis, kSampleFormatPlanarF32,
- CHANNEL_LAYOUT_STEREO, 1000, EmptyExtraData(),
- Unencrypted(), base::TimeDelta(), 0);
+ audio_config_.Initialize(
+ kCodecVorbis, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO, 1000,
+ EmptyExtraData(), EncryptionScheme::kUnencrypted, base::TimeDelta(), 0);
ResetStream<>(audio_config_);
// Equivalent to 2ms per frame.
@@ -3892,7 +3892,8 @@
// Test all the valid same timestamp cases for audio.
TEST_F(SourceBufferStreamTest, SameTimestamp_Audio) {
AudioDecoderConfig config(kCodecMP3, kSampleFormatF32, CHANNEL_LAYOUT_STEREO,
- 44100, EmptyExtraData(), Unencrypted());
+ 44100, EmptyExtraData(),
+ EncryptionScheme::kUnencrypted);
ResetStream<>(config);
Seek(0);
NewCodedFrameGroupAppend("0K 0K 30K 30K");
@@ -4518,9 +4519,9 @@
EXPECT_MEDIA_LOG(SkippingSpliceTooLittleOverlap(1250, 250));
video_config_ = TestVideoConfig::Invalid();
- audio_config_.Initialize(kCodecVorbis, kSampleFormatPlanarF32,
- CHANNEL_LAYOUT_STEREO, 4000, EmptyExtraData(),
- Unencrypted(), base::TimeDelta(), 0);
+ audio_config_.Initialize(
+ kCodecVorbis, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO, 4000,
+ EmptyExtraData(), EncryptionScheme::kUnencrypted, base::TimeDelta(), 0);
ResetStream<>(audio_config_);
// Equivalent to 0.5ms per frame.
SetStreamInfo(2000, 2000);
@@ -4553,7 +4554,7 @@
TEST_F(SourceBufferStreamTest, Audio_ConfigChangeWithPreroll) {
AudioDecoderConfig new_config(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_MONO, 2000, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
SetAudioStream();
Seek(0);
@@ -4598,8 +4599,8 @@
video_config_ = TestVideoConfig::Invalid();
audio_config_.Initialize(kCodecOpus, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, 1000, EmptyExtraData(),
- Unencrypted(), base::TimeDelta::FromMilliseconds(10),
- 0);
+ EncryptionScheme::kUnencrypted,
+ base::TimeDelta::FromMilliseconds(10), 0);
ResetStream<>(audio_config_);
// Equivalent to 1s per frame.
diff --git a/media/filters/vpx_video_decoder_fuzzertest.cc b/media/filters/vpx_video_decoder_fuzzertest.cc
index b501176..d7e6b835 100644
--- a/media/filters/vpx_video_decoder_fuzzertest.cc
+++ b/media/filters/vpx_video_decoder_fuzzertest.cc
@@ -92,7 +92,7 @@
: media::VideoDecoderConfig::AlphaMode::kIsOpaque,
color_space, media::VideoTransformation(rotation, reflection), coded_size,
visible_rect, natural_size, media::EmptyExtraData(),
- media::Unencrypted());
+ media::EncryptionScheme::kUnencrypted);
if (!config.IsValidConfig())
return 0;
diff --git a/media/formats/mp2t/descriptors.cc b/media/formats/mp2t/descriptors.cc
index a0a771e..7d06dc97 100644
--- a/media/formats/mp2t/descriptors.cc
+++ b/media/formats/mp2t/descriptors.cc
@@ -114,7 +114,7 @@
bool Descriptors::HasCADescriptorCenc(int* ca_pid,
int* pssh_pid,
- EncryptionMode* mode) const {
+ EncryptionScheme* scheme) const {
DCHECK(ca_pid);
DCHECK(pssh_pid);
int system_id;
@@ -145,7 +145,7 @@
RCHECK(reader.ReadBits(13, pssh_pid));
// The pattern is actually set differently for audio and video, so OK not to
// set it here. Important thing is to set the cipher mode.
- *mode = EncryptionMode::kCbcs;
+ *scheme = EncryptionScheme::kCbcs;
return true;
}
diff --git a/media/formats/mp2t/descriptors.h b/media/formats/mp2t/descriptors.h
index 8e444f8..ad55322 100644
--- a/media/formats/mp2t/descriptors.h
+++ b/media/formats/mp2t/descriptors.h
@@ -52,7 +52,7 @@
// |pssh_pid| and |mode| are populated with the contents of the descriptor.
bool HasCADescriptorCenc(int* ca_pid,
int* pssh_pid,
- EncryptionMode* mode) const;
+ EncryptionScheme* scheme) const;
// Indicates whether a Private Data Indicator descriptor is present with a
// particular |value|.
diff --git a/media/formats/mp2t/es_adapter_video_unittest.cc b/media/formats/mp2t/es_adapter_video_unittest.cc
index 228a969..00cacb21 100644
--- a/media/formats/mp2t/es_adapter_video_unittest.cc
+++ b/media/formats/mp2t/es_adapter_video_unittest.cc
@@ -35,7 +35,7 @@
return VideoDecoderConfig(
kCodecH264, H264PROFILE_MAIN, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, coded_size, visible_rect,
- natural_size, EmptyExtraData(), Unencrypted());
+ natural_size, EmptyExtraData(), EncryptionScheme::kUnencrypted);
}
BufferQueue GenerateFakeBuffers(const int* frame_pts_ms,
diff --git a/media/formats/mp2t/es_parser_adts.cc b/media/formats/mp2t/es_parser_adts.cc
index 1834049..63aa3acd 100644
--- a/media/formats/mp2t/es_parser_adts.cc
+++ b/media/formats/mp2t/es_parser_adts.cc
@@ -217,7 +217,7 @@
CalculateSubsamplesForAdtsFrame(adts_frame, &subsamples);
stream_parser_buffer->set_decrypt_config(
std::make_unique<DecryptConfig>(
- base_decrypt_config->encryption_mode(),
+ base_decrypt_config->encryption_scheme(),
base_decrypt_config->key_id(), base_decrypt_config->iv(),
subsamples, EncryptionPattern()));
}
@@ -260,11 +260,10 @@
const int extended_samples_per_second =
sbr_in_mimetype_ ? std::min(2 * orig_sample_rate, 48000)
: orig_sample_rate;
- EncryptionScheme scheme = Unencrypted();
+ EncryptionScheme scheme = EncryptionScheme::kUnencrypted;
#if BUILDFLAG(ENABLE_HLS_SAMPLE_AES)
if (use_hls_sample_aes_) {
- scheme = EncryptionScheme(EncryptionScheme::CIPHER_MODE_AES_CBC,
- EncryptionPattern());
+ scheme = EncryptionScheme::kCbcs;
}
#endif
AudioDecoderConfig audio_decoder_config(
diff --git a/media/formats/mp2t/es_parser_h264.cc b/media/formats/mp2t/es_parser_h264.cc
index f48337d..fe03ac6 100644
--- a/media/formats/mp2t/es_parser_h264.cc
+++ b/media/formats/mp2t/es_parser_h264.cc
@@ -418,13 +418,11 @@
const H264SPS* sps = h264_parser_->GetSPS(pps->seq_parameter_set_id);
if (!sps)
return false;
- EncryptionScheme scheme = Unencrypted();
+ EncryptionScheme scheme = EncryptionScheme::kUnencrypted;
#if BUILDFLAG(ENABLE_HLS_SAMPLE_AES)
if (use_hls_sample_aes_) {
// Note that for SampleAES the (encrypt,skip) pattern is constant.
- scheme = EncryptionScheme(
- EncryptionScheme::CIPHER_MODE_AES_CBC,
- EncryptionPattern(kSampleAESEncryptBlocks, kSampleAESSkipBlocks));
+ scheme = EncryptionScheme::kCbcs;
}
#endif
RCHECK(UpdateVideoDecoderConfig(sps, scheme));
@@ -465,19 +463,19 @@
stream_parser_buffer->set_timestamp(current_timing_desc.pts);
#if BUILDFLAG(ENABLE_HLS_SAMPLE_AES)
if (use_hls_sample_aes_ && base_decrypt_config) {
- switch (base_decrypt_config->encryption_mode()) {
- case EncryptionMode::kUnencrypted:
+ switch (base_decrypt_config->encryption_scheme()) {
+ case EncryptionScheme::kUnencrypted:
// As |base_decrypt_config| is specified, the stream is encrypted,
// so this shouldn't happen.
NOTREACHED();
break;
- case EncryptionMode::kCenc:
+ case EncryptionScheme::kCenc:
stream_parser_buffer->set_decrypt_config(
DecryptConfig::CreateCencConfig(base_decrypt_config->key_id(),
base_decrypt_config->iv(),
subsamples));
break;
- case EncryptionMode::kCbcs:
+ case EncryptionScheme::kCbcs:
// Note that for SampleAES the (encrypt,skip) pattern is constant.
// If not specified in |base_decrypt_config|, use default values.
stream_parser_buffer->set_decrypt_config(
@@ -494,7 +492,7 @@
}
bool EsParserH264::UpdateVideoDecoderConfig(const H264SPS* sps,
- const EncryptionScheme& scheme) {
+ EncryptionScheme scheme) {
// Set the SAR to 1 when not specified in the H264 stream.
int sar_width = (sps->sar_width == 0) ? 1 : sps->sar_width;
int sar_height = (sps->sar_height == 0) ? 1 : sps->sar_height;
diff --git a/media/formats/mp2t/es_parser_h264.h b/media/formats/mp2t/es_parser_h264.h
index 5e22635..98e6ff0 100644
--- a/media/formats/mp2t/es_parser_h264.h
+++ b/media/formats/mp2t/es_parser_h264.h
@@ -22,7 +22,6 @@
#include "media/media_buildflags.h"
namespace media {
-class EncryptionScheme;
class H264Parser;
struct H264SPS;
}
@@ -77,8 +76,7 @@
// Update the video decoder config based on an H264 SPS.
// Return true if successful.
- bool UpdateVideoDecoderConfig(const H264SPS* sps,
- const EncryptionScheme& scheme);
+ bool UpdateVideoDecoderConfig(const H264SPS* sps, EncryptionScheme scheme);
EsAdapterVideo es_adapter_;
diff --git a/media/formats/mp2t/es_parser_mpeg1audio.cc b/media/formats/mp2t/es_parser_mpeg1audio.cc
index 1e1cb06..efcd7a1 100644
--- a/media/formats/mp2t/es_parser_mpeg1audio.cc
+++ b/media/formats/mp2t/es_parser_mpeg1audio.cc
@@ -169,7 +169,7 @@
// field for Mpeg1 audio. If yes, we should generate this field.
AudioDecoderConfig audio_decoder_config(
kCodecMP3, kSampleFormatS16, header.channel_layout, header.sample_rate,
- EmptyExtraData(), Unencrypted());
+ EmptyExtraData(), EncryptionScheme::kUnencrypted);
if (!audio_decoder_config.IsValidConfig()) {
DVLOG(1) << "Invalid config: "
diff --git a/media/formats/mp2t/mp2t_stream_parser.cc b/media/formats/mp2t/mp2t_stream_parser.cc
index 41621a21..1d55087 100644
--- a/media/formats/mp2t/mp2t_stream_parser.cc
+++ b/media/formats/mp2t/mp2t_stream_parser.cc
@@ -429,7 +429,7 @@
// use of the encrypted parser variant so that the initial configuration
// reflects the intended encryption mode (even if the initial segment itself
// is not encrypted).
- return initial_encryption_mode_ != EncryptionMode::kUnencrypted;
+ return initial_encryption_scheme_ != EncryptionScheme::kUnencrypted;
}
std::unique_ptr<EsParser> Mp2tStreamParser::CreateEncryptedH264Parser(
@@ -833,7 +833,7 @@
std::unique_ptr<TsSection> cat_section_parser(new TsSectionCat(
base::BindRepeating(&Mp2tStreamParser::RegisterCencPids,
base::Unretained(this)),
- base::BindRepeating(&Mp2tStreamParser::RegisterEncryptionMode,
+ base::BindRepeating(&Mp2tStreamParser::RegisterEncryptionScheme,
base::Unretained(this))));
std::unique_ptr<PidState> cat_pid_state(new PidState(
TsSection::kPidCat, PidState::kPidCat, std::move(cat_section_parser)));
@@ -883,10 +883,10 @@
}
}
-void Mp2tStreamParser::RegisterEncryptionMode(EncryptionMode mode) {
+void Mp2tStreamParser::RegisterEncryptionScheme(EncryptionScheme scheme) {
// We only need to record this for the initial decoder config.
if (!is_initialized_) {
- initial_encryption_mode_ = mode;
+ initial_encryption_scheme_ = scheme;
}
// Reset the DecryptConfig, so that unless and until a CENC-ECM (containing
// key id and IV) is seen, media data will be considered unencrypted. This is
@@ -897,14 +897,14 @@
void Mp2tStreamParser::RegisterNewKeyIdAndIv(const std::string& key_id,
const std::string& iv) {
if (!iv.empty()) {
- switch (initial_encryption_mode_) {
- case EncryptionMode::kUnencrypted:
+ switch (initial_encryption_scheme_) {
+ case EncryptionScheme::kUnencrypted:
decrypt_config_.reset();
break;
- case EncryptionMode::kCenc:
+ case EncryptionScheme::kCenc:
decrypt_config_ = DecryptConfig::CreateCencConfig(key_id, iv, {});
break;
- case EncryptionMode::kCbcs:
+ case EncryptionScheme::kCbcs:
decrypt_config_ =
DecryptConfig::CreateCbcsConfig(key_id, iv, {}, base::nullopt);
break;
diff --git a/media/formats/mp2t/mp2t_stream_parser.h b/media/formats/mp2t/mp2t_stream_parser.h
index ffa5ab16a..81f127f 100644
--- a/media/formats/mp2t/mp2t_stream_parser.h
+++ b/media/formats/mp2t/mp2t_stream_parser.h
@@ -122,7 +122,7 @@
// Register a default encryption mode to be used for decoder configs. This
// value is only used in the absence of explicit encryption metadata, as might
// be the case during an unencrypted portion of a live stream.
- void RegisterEncryptionMode(EncryptionMode mode);
+ void RegisterEncryptionScheme(EncryptionScheme scheme);
// Register the new KeyID and IV (parsed from CENC-ECM).
void RegisterNewKeyIdAndIv(const std::string& key_id, const std::string& iv);
@@ -171,7 +171,7 @@
TimestampUnroller timestamp_unroller_;
#if BUILDFLAG(ENABLE_HLS_SAMPLE_AES)
- EncryptionMode initial_encryption_mode_ = EncryptionMode::kUnencrypted;
+ EncryptionScheme initial_encryption_scheme_ = EncryptionScheme::kUnencrypted;
// TODO(jrummell): Rather than store the key_id and iv in a DecryptConfig,
// provide a better way to access the last values seen in a ECM packet.
diff --git a/media/formats/mp2t/mp2t_stream_parser_unittest.cc b/media/formats/mp2t/mp2t_stream_parser_unittest.cc
index bd1590a..3119e4f 100644
--- a/media/formats/mp2t/mp2t_stream_parser_unittest.cc
+++ b/media/formats/mp2t/mp2t_stream_parser_unittest.cc
@@ -124,15 +124,15 @@
// We only support AES-CBC at this time.
// For the purpose of these tests, the key id is also used as the actual key.
std::string DecryptBuffer(const StreamParserBuffer& buffer,
- const EncryptionScheme& scheme) {
- EXPECT_TRUE(scheme.is_encrypted());
- EXPECT_TRUE(scheme.mode() == EncryptionScheme::CIPHER_MODE_AES_CBC);
+ EncryptionScheme scheme) {
+ EXPECT_EQ(scheme, EncryptionScheme::kCbcs);
// Audio streams use whole block full sample encryption (so pattern = {0,0}),
// so only the video stream uses pattern decryption. |has_pattern| is only
// used by DecryptSampleAES(), which assumes a {1,9} pattern if
// |has_pattern| = true.
- bool has_pattern = scheme.pattern() == EncryptionPattern(1, 9);
+ bool has_pattern =
+ buffer.decrypt_config()->encryption_pattern() == EncryptionPattern(1, 9);
std::string key;
EXPECT_TRUE(
@@ -472,7 +472,7 @@
parser_->Flush();
EncryptionScheme video_encryption_scheme =
current_video_config_.encryption_scheme();
- EXPECT_TRUE(video_encryption_scheme.is_encrypted());
+ EXPECT_NE(video_encryption_scheme, EncryptionScheme::kUnencrypted);
for (const auto& buffer : video_buffer_capture_) {
std::string decrypted_video_buffer =
DecryptBuffer(*buffer.get(), video_encryption_scheme);
@@ -480,7 +480,7 @@
}
EncryptionScheme audio_encryption_scheme =
current_audio_config_.encryption_scheme();
- EXPECT_TRUE(audio_encryption_scheme.is_encrypted());
+ EXPECT_NE(audio_encryption_scheme, EncryptionScheme::kUnencrypted);
for (const auto& buffer : audio_buffer_capture_) {
std::string decrypted_audio_buffer =
DecryptBuffer(*buffer.get(), audio_encryption_scheme);
@@ -495,7 +495,7 @@
ParseMpeg2TsFile("bear-1280x720-hls.ts", 2048);
parser_->Flush();
video_encryption_scheme = current_video_config_.encryption_scheme();
- EXPECT_FALSE(video_encryption_scheme.is_encrypted());
+ EXPECT_EQ(video_encryption_scheme, EncryptionScheme::kUnencrypted);
// Skip the last buffer, which may be truncated.
for (size_t i = 0; i + 1 < video_buffer_capture_.size(); i++) {
const auto& buffer = video_buffer_capture_[i];
@@ -504,7 +504,7 @@
EXPECT_EQ(decrypted_video_buffers[i], unencrypted_video_buffer);
}
audio_encryption_scheme = current_audio_config_.encryption_scheme();
- EXPECT_FALSE(audio_encryption_scheme.is_encrypted());
+ EXPECT_EQ(audio_encryption_scheme, EncryptionScheme::kUnencrypted);
for (size_t i = 0; i + 1 < audio_buffer_capture_.size(); i++) {
const auto& buffer = audio_buffer_capture_[i];
std::string unencrypted_audio_buffer(
@@ -519,10 +519,10 @@
parser_->Flush();
EncryptionScheme video_encryption_scheme =
current_video_config_.encryption_scheme();
- EXPECT_TRUE(video_encryption_scheme.is_encrypted());
+ EXPECT_NE(video_encryption_scheme, EncryptionScheme::kUnencrypted);
EncryptionScheme audio_encryption_scheme =
current_audio_config_.encryption_scheme();
- EXPECT_TRUE(audio_encryption_scheme.is_encrypted());
+ EXPECT_NE(audio_encryption_scheme, EncryptionScheme::kUnencrypted);
}
#endif
diff --git a/media/formats/mp2t/ts_section_cat.cc b/media/formats/mp2t/ts_section_cat.cc
index a9239fbd..507a789 100644
--- a/media/formats/mp2t/ts_section_cat.cc
+++ b/media/formats/mp2t/ts_section_cat.cc
@@ -16,9 +16,9 @@
TsSectionCat::TsSectionCat(
const RegisterCencPidsCb& register_cenc_ids_cb,
- const RegisterEncryptionModeCb& register_encryption_mode_cb)
+ const RegisterEncryptionSchemeCb& register_encryption_scheme_cb)
: register_cenc_ids_cb_(register_cenc_ids_cb),
- register_encryption_mode_cb_(register_encryption_mode_cb),
+ register_encryption_scheme_cb_(register_encryption_scheme_cb),
version_number_(-1) {}
TsSectionCat::~TsSectionCat() {}
@@ -58,9 +58,9 @@
Descriptors descriptors;
int ca_pid, pssh_pid;
- EncryptionMode mode;
+ EncryptionScheme scheme;
RCHECK(descriptors.Read(bit_reader, section_length - 4));
- RCHECK(descriptors.HasCADescriptorCenc(&ca_pid, &pssh_pid, &mode));
+ RCHECK(descriptors.HasCADescriptorCenc(&ca_pid, &pssh_pid, &scheme));
int crc32;
RCHECK(bit_reader->ReadBits(32, &crc32));
@@ -76,7 +76,7 @@
// Can now register the PIDs and scheme.
register_cenc_ids_cb_.Run(ca_pid, pssh_pid);
- register_encryption_mode_cb_.Run(mode);
+ register_encryption_scheme_cb_.Run(scheme);
version_number_ = version_number;
diff --git a/media/formats/mp2t/ts_section_cat.h b/media/formats/mp2t/ts_section_cat.h
index 637aec8..c929fad 100644
--- a/media/formats/mp2t/ts_section_cat.h
+++ b/media/formats/mp2t/ts_section_cat.h
@@ -7,7 +7,7 @@
#include "base/callback.h"
#include "base/macros.h"
-#include "media/base/decrypt_config.h"
+#include "media/base/encryption_scheme.h"
#include "media/formats/mp2t/ts_section_psi.h"
namespace media {
@@ -17,11 +17,11 @@
public:
// RegisterCencPidsCb::Run(int ca_pid, int pssh_pid);
using RegisterCencPidsCb = base::RepeatingCallback<void(int, int)>;
- // RegisterEncryptionMode::Run(EncryptionMode mode);
- using RegisterEncryptionModeCb =
- base::RepeatingCallback<void(EncryptionMode)>;
+ // RegisterEncryptionScheme::Run(EncryptionScheme scheme);
+ using RegisterEncryptionSchemeCb =
+ base::RepeatingCallback<void(EncryptionScheme)>;
TsSectionCat(const RegisterCencPidsCb& register_cenc_ids_cb,
- const RegisterEncryptionModeCb& register_encryption_mode_cb);
+ const RegisterEncryptionSchemeCb& register_encryption_scheme_cb);
~TsSectionCat() override;
// TsSectionPsi implementation.
@@ -30,7 +30,7 @@
private:
RegisterCencPidsCb register_cenc_ids_cb_;
- RegisterEncryptionModeCb register_encryption_mode_cb_;
+ RegisterEncryptionSchemeCb register_encryption_scheme_cb_;
// Parameters from the CAT.
int version_number_;
diff --git a/media/formats/mp4/mp4_stream_parser.cc b/media/formats/mp4/mp4_stream_parser.cc
index 60fc993..550b2e9 100644
--- a/media/formats/mp4/mp4_stream_parser.cc
+++ b/media/formats/mp4/mp4_stream_parser.cc
@@ -42,33 +42,22 @@
const int kMaxInvalidConversionLogs = 20;
const int kMaxVideoKeyframeMismatchLogs = 10;
-// Caller should be prepared to handle return of Unencrypted() in case of
-// unsupported scheme.
-// TODO(crbug.com/825041): Remove pattern from this function.
+// Caller should be prepared to handle return of EncryptionScheme::kUnencrypted
+// in case of unsupported scheme.
EncryptionScheme GetEncryptionScheme(const ProtectionSchemeInfo& sinf) {
if (!sinf.HasSupportedScheme())
- return Unencrypted();
+ return EncryptionScheme::kUnencrypted;
FourCC fourcc = sinf.type.type;
- EncryptionScheme::CipherMode mode = EncryptionScheme::CIPHER_MODE_UNENCRYPTED;
- EncryptionPattern pattern;
- bool uses_pattern_encryption = false;
switch (fourcc) {
case FOURCC_CENC:
- mode = EncryptionScheme::CIPHER_MODE_AES_CTR;
- break;
+ return EncryptionScheme::kCenc;
case FOURCC_CBCS:
- mode = EncryptionScheme::CIPHER_MODE_AES_CBC;
- uses_pattern_encryption = true;
- break;
+ return EncryptionScheme::kCbcs;
default:
NOTREACHED();
break;
}
- if (uses_pattern_encryption) {
- pattern = {sinf.info.track_encryption.default_crypt_byte_block,
- sinf.info.track_encryption.default_skip_byte_block};
- }
- return EncryptionScheme(mode, pattern);
+ return EncryptionScheme::kUnencrypted;
}
} // namespace
@@ -442,10 +431,10 @@
return false;
}
bool is_track_encrypted = entry.sinf.info.track_encryption.is_encrypted;
- EncryptionScheme scheme = Unencrypted();
+ EncryptionScheme scheme = EncryptionScheme::kUnencrypted;
if (is_track_encrypted) {
scheme = GetEncryptionScheme(entry.sinf);
- if (!scheme.is_encrypted())
+ if (scheme == EncryptionScheme::kUnencrypted)
return false;
}
audio_config.Initialize(codec, sample_format, channel_layout,
@@ -511,10 +500,10 @@
return false;
}
bool is_track_encrypted = entry.sinf.info.track_encryption.is_encrypted;
- EncryptionScheme scheme = Unencrypted();
+ EncryptionScheme scheme = EncryptionScheme::kUnencrypted;
if (is_track_encrypted) {
scheme = GetEncryptionScheme(entry.sinf);
- if (!scheme.is_encrypted())
+ if (scheme == EncryptionScheme::kUnencrypted)
return false;
}
video_config.Initialize(entry.video_codec, entry.video_codec_profile,
@@ -838,7 +827,7 @@
if (!subsamples.empty()) {
// Create a new config with the updated subsamples.
decrypt_config.reset(
- new DecryptConfig(decrypt_config->encryption_mode(),
+ new DecryptConfig(decrypt_config->encryption_scheme(),
decrypt_config->key_id(), decrypt_config->iv(),
subsamples, decrypt_config->encryption_pattern()));
}
diff --git a/media/formats/mp4/track_run_iterator.cc b/media/formats/mp4/track_run_iterator.cc
index 91e0f822d..cda6de3 100644
--- a/media/formats/mp4/track_run_iterator.cc
+++ b/media/formats/mp4/track_run_iterator.cc
@@ -16,6 +16,7 @@
#include "media/base/decrypt_config.h"
#include "media/base/demuxer_memory_limit.h"
#include "media/base/encryption_pattern.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/media_util.h"
#include "media/base/timestamp_constants.h"
#include "media/formats/mp4/rcheck.h"
@@ -56,7 +57,7 @@
std::vector<uint8_t> aux_info_sizes; // Populated if default_size == 0.
int aux_info_total_size;
- EncryptionMode encryption_mode;
+ EncryptionScheme encryption_scheme = EncryptionScheme::kUnencrypted;
EncryptionPattern encryption_pattern;
std::vector<CencSampleEncryptionInfoEntry> fragment_sample_encryption_info;
@@ -372,11 +373,11 @@
}
if (!sinf->HasSupportedScheme()) {
- tri.encryption_mode = EncryptionMode::kUnencrypted;
+ tri.encryption_scheme = EncryptionScheme::kUnencrypted;
} else {
- tri.encryption_mode = sinf->IsCbcsEncryptionScheme()
- ? EncryptionMode::kCbcs
- : EncryptionMode::kCenc;
+ tri.encryption_scheme = sinf->IsCbcsEncryptionScheme()
+ ? EncryptionScheme::kCbcs
+ : EncryptionScheme::kCenc;
tri.encryption_pattern =
EncryptionPattern(track_encryption->default_crypt_byte_block,
track_encryption->default_skip_byte_block);
@@ -747,13 +748,13 @@
std::string iv(reinterpret_cast<const char*>(
sample_encryption_entry.initialization_vector),
base::size(sample_encryption_entry.initialization_vector));
- switch (run_itr_->encryption_mode) {
- case EncryptionMode::kUnencrypted:
+ switch (run_itr_->encryption_scheme) {
+ case EncryptionScheme::kUnencrypted:
return nullptr;
- case EncryptionMode::kCenc:
+ case EncryptionScheme::kCenc:
return DecryptConfig::CreateCencConfig(
key_id, iv, sample_encryption_entry.subsamples);
- case EncryptionMode::kCbcs:
+ case EncryptionScheme::kCbcs:
return DecryptConfig::CreateCbcsConfig(
key_id, iv, sample_encryption_entry.subsamples,
run_itr_->encryption_pattern);
diff --git a/media/formats/mpeg/mpeg_audio_stream_parser_base.cc b/media/formats/mpeg/mpeg_audio_stream_parser_base.cc
index 137bfa4..b5fed3d 100644
--- a/media/formats/mpeg/mpeg_audio_stream_parser_base.cc
+++ b/media/formats/mpeg/mpeg_audio_stream_parser_base.cc
@@ -211,7 +211,7 @@
if (!config_.IsValidConfig()) {
config_.Initialize(audio_codec_, kSampleFormatF32, channel_layout,
- sample_rate, extra_data, Unencrypted(),
+ sample_rate, extra_data, EncryptionScheme::kUnencrypted,
base::TimeDelta(), codec_delay_);
if (audio_codec_ == kCodecAAC)
config_.disable_discard_decoder_delay();
diff --git a/media/formats/webm/webm_audio_client.cc b/media/formats/webm/webm_audio_client.cc
index 6eff0dd..5ac98e8e 100644
--- a/media/formats/webm/webm_audio_client.cc
+++ b/media/formats/webm/webm_audio_client.cc
@@ -27,7 +27,7 @@
const std::vector<uint8_t>& codec_private,
int64_t seek_preroll,
int64_t codec_delay,
- const EncryptionScheme& encryption_scheme,
+ EncryptionScheme encryption_scheme,
AudioDecoderConfig* config) {
DCHECK(config);
SampleFormat sample_format = kSampleFormatPlanarF32;
diff --git a/media/formats/webm/webm_audio_client.h b/media/formats/webm/webm_audio_client.h
index 5b3357da..ab65867 100644
--- a/media/formats/webm/webm_audio_client.h
+++ b/media/formats/webm/webm_audio_client.h
@@ -11,12 +11,12 @@
#include <vector>
#include "base/macros.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/media_log.h"
#include "media/formats/webm/webm_parser.h"
namespace media {
class AudioDecoderConfig;
-class EncryptionScheme;
// Helper class used to parse an Audio element inside a TrackEntry element.
class WebMAudioClient : public WebMParserClient {
@@ -37,7 +37,7 @@
const std::vector<uint8_t>& codec_private,
const int64_t seek_preroll,
const int64_t codec_delay,
- const EncryptionScheme& encryption_scheme,
+ EncryptionScheme encryption_scheme,
AudioDecoderConfig* config);
private:
diff --git a/media/formats/webm/webm_tracks_parser.cc b/media/formats/webm/webm_tracks_parser.cc
index 6ae7ce8..b9a1179 100644
--- a/media/formats/webm/webm_tracks_parser.cc
+++ b/media/formats/webm/webm_tracks_parser.cc
@@ -205,8 +205,9 @@
content_encodings()[0]->encryption_key_id();
}
- EncryptionScheme encryption_scheme =
- encryption_key_id.empty() ? Unencrypted() : AesCtrEncryptionScheme();
+ EncryptionScheme encryption_scheme = encryption_key_id.empty()
+ ? EncryptionScheme::kUnencrypted
+ : EncryptionScheme::kCenc;
if (track_type_ == kWebMTrackTypeAudio) {
detected_audio_track_count_++;
diff --git a/media/formats/webm/webm_video_client.cc b/media/formats/webm/webm_video_client.cc
index 1500ff5..9eba79d 100644
--- a/media/formats/webm/webm_video_client.cc
+++ b/media/formats/webm/webm_video_client.cc
@@ -53,7 +53,7 @@
bool WebMVideoClient::InitializeConfig(
const std::string& codec_id,
const std::vector<uint8_t>& codec_private,
- const EncryptionScheme& encryption_scheme,
+ EncryptionScheme encryption_scheme,
VideoDecoderConfig* config) {
DCHECK(config);
diff --git a/media/formats/webm/webm_video_client.h b/media/formats/webm/webm_video_client.h
index f245ff9..3c15c463 100644
--- a/media/formats/webm/webm_video_client.h
+++ b/media/formats/webm/webm_video_client.h
@@ -11,13 +11,13 @@
#include <vector>
#include "base/macros.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/media_export.h"
#include "media/base/media_log.h"
#include "media/formats/webm/webm_colour_parser.h"
#include "media/formats/webm/webm_parser.h"
namespace media {
-class EncryptionScheme;
class VideoDecoderConfig;
// Helper class used to parse a Video element inside a TrackEntry element.
@@ -38,7 +38,7 @@
// case and should not be relied upon.
bool InitializeConfig(const std::string& codec_id,
const std::vector<uint8_t>& codec_private,
- const EncryptionScheme& encryption_scheme,
+ EncryptionScheme encryption_scheme,
VideoDecoderConfig* config);
private:
diff --git a/media/formats/webm/webm_video_client_unittest.cc b/media/formats/webm/webm_video_client_unittest.cc
index 4cc41190..cfc73ccc 100644
--- a/media/formats/webm/webm_video_client_unittest.cc
+++ b/media/formats/webm/webm_video_client_unittest.cc
@@ -140,7 +140,8 @@
VideoDecoderConfig expected_config(
kCodecVP9, profile, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace::REC709(), kNoTransformation, kCodedSize,
- gfx::Rect(kCodedSize), kCodedSize, codec_private, Unencrypted());
+ gfx::Rect(kCodedSize), kCodedSize, codec_private,
+ EncryptionScheme::kUnencrypted);
EXPECT_TRUE(config.Matches(expected_config))
<< "Config (" << config.AsHumanReadableString()
diff --git a/media/fuchsia/cdm/fuchsia_stream_decryptor.cc b/media/fuchsia/cdm/fuchsia_stream_decryptor.cc
index 1281e589..9c3ebb1 100644
--- a/media/fuchsia/cdm/fuchsia_stream_decryptor.cc
+++ b/media/fuchsia/cdm/fuchsia_stream_decryptor.cc
@@ -25,11 +25,11 @@
// available, so it doesn't need more than one output buffer.
const size_t kMinClearStreamOutputFrames = 1;
-std::string GetEncryptionScheme(EncryptionMode mode) {
+std::string GetEncryptionScheme(EncryptionScheme mode) {
switch (mode) {
- case EncryptionMode::kCenc:
+ case EncryptionScheme::kCenc:
return fuchsia::media::ENCRYPTION_SCHEME_CENC;
- case EncryptionMode::kCbcs:
+ case EncryptionScheme::kCbcs:
return fuchsia::media::ENCRYPTION_SCHEME_CBCS;
default:
NOTREACHED() << "unknown encryption mode " << static_cast<int>(mode);
@@ -89,13 +89,13 @@
DCHECK(config);
fuchsia::media::EncryptedFormat encrypted_format;
- encrypted_format.set_scheme(GetEncryptionScheme(config->encryption_mode()))
+ encrypted_format.set_scheme(GetEncryptionScheme(config->encryption_scheme()))
.set_key_id(std::vector<uint8_t>(config->key_id().begin(),
config->key_id().end()))
.set_init_vector(
std::vector<uint8_t>(config->iv().begin(), config->iv().end()))
.set_subsamples(GetSubsamples(config->subsamples()));
- if (config->encryption_mode() == EncryptionMode::kCbcs) {
+ if (config->encryption_scheme() == EncryptionScheme::kCbcs) {
DCHECK(config->encryption_pattern().has_value());
encrypted_format.set_pattern(
GetEncryptionPattern(config->encryption_pattern().value()));
diff --git a/media/gpu/android/codec_wrapper.cc b/media/gpu/android/codec_wrapper.cc
index dc0037ff..a89cc16 100644
--- a/media/gpu/android/codec_wrapper.cc
+++ b/media/gpu/android/codec_wrapper.cc
@@ -262,7 +262,7 @@
status = codec_->QueueSecureInputBuffer(
input_buffer, buffer.data(), buffer.data_size(),
decrypt_config->key_id(), decrypt_config->iv(),
- decrypt_config->subsamples(), decrypt_config->encryption_mode(),
+ decrypt_config->subsamples(), decrypt_config->encryption_scheme(),
decrypt_config->encryption_pattern(), buffer.timestamp());
} else {
status = codec_->QueueInputBuffer(input_buffer, buffer.data(),
diff --git a/media/gpu/ipc/service/vda_video_decoder_unittest.cc b/media/gpu/ipc/service/vda_video_decoder_unittest.cc
index b81c1c35..335f0653 100644
--- a/media/gpu/ipc/service/vda_video_decoder_unittest.cc
+++ b/media/gpu/ipc/service/vda_video_decoder_unittest.cc
@@ -144,7 +144,8 @@
kCodecVP9, VP9PROFILE_PROFILE0,
VideoDecoderConfig::AlphaMode::kIsOpaque, VideoColorSpace::REC709(),
kNoTransformation, gfx::Size(1920, 1088), gfx::Rect(1920, 1080),
- gfx::Size(1920, 1080), EmptyExtraData(), Unencrypted()));
+ gfx::Size(1920, 1080), EmptyExtraData(),
+ EncryptionScheme::kUnencrypted));
RunUntilIdle();
}
@@ -321,7 +322,7 @@
kCodecVP9, VP9PROFILE_PROFILE0, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace::REC601(), kNoTransformation, gfx::Size(320, 240),
gfx::Rect(320, 240), gfx::Size(320, 240), EmptyExtraData(),
- Unencrypted()));
+ EncryptionScheme::kUnencrypted));
EXPECT_CALL(init_cb_, Run(false));
RunUntilIdle();
}
@@ -331,7 +332,7 @@
kCodecH264, H264PROFILE_BASELINE,
VideoDecoderConfig::AlphaMode::kIsOpaque, VideoColorSpace::REC709(),
kNoTransformation, gfx::Size(1920, 1088), gfx::Rect(1920, 1080),
- gfx::Size(1920, 1080), EmptyExtraData(), Unencrypted()));
+ gfx::Size(1920, 1080), EmptyExtraData(), EncryptionScheme::kUnencrypted));
EXPECT_CALL(init_cb_, Run(false));
RunUntilIdle();
}
@@ -342,7 +343,7 @@
kCodecVP9, VP9PROFILE_PROFILE0, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace::REC709(), kNoTransformation, gfx::Size(1920, 1088),
gfx::Rect(1920, 1080), gfx::Size(1920, 1080), EmptyExtraData(),
- Unencrypted()));
+ EncryptionScheme::kUnencrypted));
EXPECT_CALL(init_cb_, Run(false));
RunUntilIdle();
}
@@ -425,7 +426,7 @@
kCodecVP9, VP9PROFILE_PROFILE0, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace::REC709(), kNoTransformation, gfx::Size(640, 480),
gfx::Rect(640, 480), gfx::Size(1280, 480), EmptyExtraData(),
- Unencrypted()));
+ EncryptionScheme::kUnencrypted));
EXPECT_CALL(init_cb_, Run(true));
RunUntilIdle();
diff --git a/media/gpu/video_encode_accelerator_unittest.cc b/media/gpu/video_encode_accelerator_unittest.cc
index b69c904..7834f03 100644
--- a/media/gpu/video_encode_accelerator_unittest.cc
+++ b/media/gpu/video_encode_accelerator_unittest.cc
@@ -1170,17 +1170,17 @@
if (IsVP8(profile_)) {
config.Initialize(kCodecVP8, VP8PROFILE_ANY, alpha_mode, VideoColorSpace(),
kNoTransformation, coded_size, visible_size, natural_size,
- EmptyExtraData(), Unencrypted());
+ EmptyExtraData(), EncryptionScheme::kUnencrypted);
} else if (IsVP9(profile_)) {
config.Initialize(kCodecVP9, VP9PROFILE_PROFILE0, alpha_mode,
VideoColorSpace(), kNoTransformation, coded_size,
visible_size, natural_size, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
} else if (IsH264(profile_)) {
config.Initialize(kCodecH264, H264PROFILE_MAIN, alpha_mode,
VideoColorSpace(), kNoTransformation, coded_size,
visible_size, natural_size, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
} else {
LOG_ASSERT(0) << "Invalid profile " << GetProfileName(profile_);
}
diff --git a/media/gpu/windows/d3d11_texture_selector_unittest.cc b/media/gpu/windows/d3d11_texture_selector_unittest.cc
index b24a372..84748886 100644
--- a/media/gpu/windows/d3d11_texture_selector_unittest.cc
+++ b/media/gpu/windows/d3d11_texture_selector_unittest.cc
@@ -25,14 +25,11 @@
gfx::Size size,
bool encrypted) {
VideoDecoderConfig result;
- EncryptionPattern pattern;
result.Initialize(
kUnknownVideoCodec, // It doesn't matter because it won't be used.
profile, VideoDecoderConfig::AlphaMode::kIsOpaque, VideoColorSpace(),
kNoTransformation, size, {}, {}, {},
- EncryptionScheme(encrypted ? EncryptionScheme::CIPHER_MODE_AES_CTR
- : EncryptionScheme::CIPHER_MODE_UNENCRYPTED,
- pattern));
+ encrypted ? EncryptionScheme::kCenc : EncryptionScheme::kUnencrypted);
return result;
}
diff --git a/media/mojo/clients/mojo_audio_decoder_unittest.cc b/media/mojo/clients/mojo_audio_decoder_unittest.cc
index 22efe050..6946df7 100644
--- a/media/mojo/clients/mojo_audio_decoder_unittest.cc
+++ b/media/mojo/clients/mojo_audio_decoder_unittest.cc
@@ -142,7 +142,7 @@
AudioDecoderConfig audio_config(kCodecVorbis, kSampleFormat, kChannelLayout,
kDefaultSampleRate, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
mojo_audio_decoder_->Initialize(
audio_config, nullptr,
diff --git a/media/mojo/common/media_type_converters.cc b/media/mojo/common/media_type_converters.cc
index 012d818..9337748 100644
--- a/media/mojo/common/media_type_converters.cc
+++ b/media/mojo/common/media_type_converters.cc
@@ -29,7 +29,7 @@
mojo_decrypt_config->key_id = input.key_id();
mojo_decrypt_config->iv = input.iv();
mojo_decrypt_config->subsamples = input.subsamples();
- mojo_decrypt_config->encryption_mode = input.encryption_mode();
+ mojo_decrypt_config->encryption_scheme = input.encryption_scheme();
mojo_decrypt_config->encryption_pattern = input.encryption_pattern();
return mojo_decrypt_config;
@@ -41,7 +41,7 @@
media::mojom::DecryptConfigPtr>::
Convert(const media::mojom::DecryptConfigPtr& input) {
return std::make_unique<media::DecryptConfig>(
- input->encryption_mode, input->key_id, input->iv, input->subsamples,
+ input->encryption_scheme, input->key_id, input->iv, input->subsamples,
input->encryption_pattern);
}
diff --git a/media/mojo/mojom/BUILD.gn b/media/mojo/mojom/BUILD.gn
index 6ff84fb..bf42227 100644
--- a/media/mojo/mojom/BUILD.gn
+++ b/media/mojo/mojom/BUILD.gn
@@ -131,7 +131,6 @@
sources = [
"audio_decoder_config_mojom_traits_unittest.cc",
"cdm_key_information_mojom_traits_unittest.cc",
- "encryption_scheme_mojom_traits_unittest.cc",
"video_decoder_config_mojom_traits_unittest.cc",
"video_frame_mojom_traits_unittest.cc",
]
diff --git a/media/mojo/mojom/audio_decoder_config_mojom_traits.h b/media/mojo/mojom/audio_decoder_config_mojom_traits.h
index a786d24..c95d33a 100644
--- a/media/mojo/mojom/audio_decoder_config_mojom_traits.h
+++ b/media/mojo/mojom/audio_decoder_config_mojom_traits.h
@@ -7,7 +7,6 @@
#include "media/base/audio_decoder_config.h"
#include "media/base/ipc/media_param_traits.h"
-#include "media/mojo/mojom/encryption_scheme_mojom_traits.h"
#include "media/mojo/mojom/media_types.mojom.h"
namespace mojo {
@@ -46,7 +45,7 @@
return input.codec_delay();
}
- static const media::EncryptionScheme& encryption_scheme(
+ static media::EncryptionScheme encryption_scheme(
const media::AudioDecoderConfig& input) {
return input.encryption_scheme();
}
diff --git a/media/mojo/mojom/audio_decoder_config_mojom_traits_unittest.cc b/media/mojo/mojom/audio_decoder_config_mojom_traits_unittest.cc
index f04e0cb3..16ea462 100644
--- a/media/mojo/mojom/audio_decoder_config_mojom_traits_unittest.cc
+++ b/media/mojo/mojom/audio_decoder_config_mojom_traits_unittest.cc
@@ -21,7 +21,8 @@
AudioDecoderConfig input;
input.Initialize(kCodecAAC, kSampleFormatU8, CHANNEL_LAYOUT_SURROUND, 48000,
- kExtraDataVector, Unencrypted(), base::TimeDelta(), 0);
+ kExtraDataVector, EncryptionScheme::kUnencrypted,
+ base::TimeDelta(), 0);
std::vector<uint8_t> data =
media::mojom::AudioDecoderConfig::Serialize(&input);
AudioDecoderConfig output;
@@ -34,7 +35,8 @@
ConvertAudioDecoderConfig_EmptyExtraData) {
AudioDecoderConfig input;
input.Initialize(kCodecAAC, kSampleFormatU8, CHANNEL_LAYOUT_SURROUND, 48000,
- EmptyExtraData(), Unencrypted(), base::TimeDelta(), 0);
+ EmptyExtraData(), EncryptionScheme::kUnencrypted,
+ base::TimeDelta(), 0);
std::vector<uint8_t> data =
media::mojom::AudioDecoderConfig::Serialize(&input);
AudioDecoderConfig output;
@@ -46,8 +48,8 @@
TEST(AudioDecoderConfigStructTraitsTest, ConvertAudioDecoderConfig_Encrypted) {
AudioDecoderConfig input;
input.Initialize(kCodecAAC, kSampleFormatU8, CHANNEL_LAYOUT_SURROUND, 48000,
- EmptyExtraData(), AesCtrEncryptionScheme(),
- base::TimeDelta(), 0);
+ EmptyExtraData(), EncryptionScheme::kCenc, base::TimeDelta(),
+ 0);
std::vector<uint8_t> data =
media::mojom::AudioDecoderConfig::Serialize(&input);
AudioDecoderConfig output;
diff --git a/media/mojo/mojom/encryption_pattern.typemap b/media/mojo/mojom/encryption_pattern.typemap
new file mode 100644
index 0000000..06e07e9
--- /dev/null
+++ b/media/mojo/mojom/encryption_pattern.typemap
@@ -0,0 +1,24 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+mojom = "//media/mojo/mojom/media_types.mojom"
+
+public_headers = [ "//media/base/encryption_pattern.h" ]
+
+traits_headers = [ "//media/mojo/mojom/encryption_pattern_mojom_traits.h" ]
+
+sources = [
+ "//media/mojo/mojom/encryption_pattern_mojom_traits.cc",
+]
+
+public_deps = [
+ "//media",
+]
+
+deps = [
+ "//media/base/ipc",
+]
+
+# See media_types.typemap for enum mappings.
+type_mappings = [ "media.mojom.EncryptionPattern=::media::EncryptionPattern" ]
diff --git a/media/mojo/mojom/encryption_pattern_mojom_traits.cc b/media/mojo/mojom/encryption_pattern_mojom_traits.cc
new file mode 100644
index 0000000..d463132
--- /dev/null
+++ b/media/mojo/mojom/encryption_pattern_mojom_traits.cc
@@ -0,0 +1,19 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "media/mojo/mojom/encryption_pattern_mojom_traits.h"
+
+namespace mojo {
+
+// static
+bool StructTraits<media::mojom::EncryptionPatternDataView,
+ media::EncryptionPattern>::
+ Read(media::mojom::EncryptionPatternDataView input,
+ media::EncryptionPattern* output) {
+ *output = media::EncryptionPattern(input.crypt_byte_block(),
+ input.skip_byte_block());
+ return true;
+}
+
+} // namespace mojo
diff --git a/media/mojo/mojom/encryption_pattern_mojom_traits.h b/media/mojo/mojom/encryption_pattern_mojom_traits.h
new file mode 100644
index 0000000..8694a4d
--- /dev/null
+++ b/media/mojo/mojom/encryption_pattern_mojom_traits.h
@@ -0,0 +1,31 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MEDIA_MOJO_MOJOM_ENCRYPTION_PATTERN_MOJOM_TRAITS_H_
+#define MEDIA_MOJO_MOJOM_ENCRYPTION_PATTERN_MOJOM_TRAITS_H_
+
+#include "media/base/encryption_pattern.h"
+#include "media/base/ipc/media_param_traits.h"
+#include "media/mojo/mojom/media_types.mojom.h"
+
+namespace mojo {
+
+template <>
+struct StructTraits<media::mojom::EncryptionPatternDataView,
+ media::EncryptionPattern> {
+ static uint32_t crypt_byte_block(const media::EncryptionPattern& input) {
+ return input.crypt_byte_block();
+ }
+
+ static uint32_t skip_byte_block(const media::EncryptionPattern& input) {
+ return input.skip_byte_block();
+ }
+
+ static bool Read(media::mojom::EncryptionPatternDataView input,
+ media::EncryptionPattern* output);
+};
+
+} // namespace mojo
+
+#endif // MEDIA_MOJO_MOJOM_ENCRYPTION_PATTERN_MOJOM_TRAITS_H_
diff --git a/media/mojo/mojom/encryption_scheme.typemap b/media/mojo/mojom/encryption_scheme.typemap
deleted file mode 100644
index f942f83..0000000
--- a/media/mojo/mojom/encryption_scheme.typemap
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//media/mojo/mojom/media_types.mojom"
-
-public_headers = [
- "//media/base/encryption_scheme.h",
- "//media/base/encryption_pattern.h",
-]
-
-traits_headers = [ "//media/mojo/mojom/encryption_scheme_mojom_traits.h" ]
-
-sources = [
- "//media/mojo/mojom/encryption_scheme_mojom_traits.cc",
-]
-
-public_deps = [
- "//media",
-]
-
-deps = [
- "//media/base/ipc",
-]
-
-# See media_types.typemap for enum mappings.
-type_mappings = [
- "media.mojom.EncryptionPattern=::media::EncryptionPattern",
- "media.mojom.EncryptionScheme=::media::EncryptionScheme",
-]
diff --git a/media/mojo/mojom/encryption_scheme_mojom_traits.cc b/media/mojo/mojom/encryption_scheme_mojom_traits.cc
deleted file mode 100644
index a379269..0000000
--- a/media/mojo/mojom/encryption_scheme_mojom_traits.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/mojo/mojom/encryption_scheme_mojom_traits.h"
-
-namespace mojo {
-
-// static
-bool StructTraits<media::mojom::EncryptionPatternDataView,
- media::EncryptionPattern>::
- Read(media::mojom::EncryptionPatternDataView input,
- media::EncryptionPattern* output) {
- *output = media::EncryptionPattern(input.crypt_byte_block(),
- input.skip_byte_block());
- return true;
-}
-
-// static
-bool StructTraits<
- media::mojom::EncryptionSchemeDataView,
- media::EncryptionScheme>::Read(media::mojom::EncryptionSchemeDataView input,
- media::EncryptionScheme* output) {
- media::EncryptionScheme::CipherMode mode;
- if (!input.ReadMode(&mode))
- return false;
-
- media::EncryptionPattern pattern;
- if (!input.ReadPattern(&pattern))
- return false;
-
- *output = media::EncryptionScheme(mode, pattern);
-
- return true;
-}
-
-} // namespace mojo
\ No newline at end of file
diff --git a/media/mojo/mojom/encryption_scheme_mojom_traits.h b/media/mojo/mojom/encryption_scheme_mojom_traits.h
deleted file mode 100644
index c5166e5..0000000
--- a/media/mojo/mojom/encryption_scheme_mojom_traits.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef MEDIA_MOJO_MOJOM_ENCRYPTION_SCHEME_MOJOM_TRAITS_H_
-#define MEDIA_MOJO_MOJOM_ENCRYPTION_SCHEME_MOJOM_TRAITS_H_
-
-#include "media/base/encryption_pattern.h"
-#include "media/base/encryption_scheme.h"
-#include "media/base/ipc/media_param_traits.h"
-#include "media/mojo/mojom/media_types.mojom.h"
-
-namespace mojo {
-
-template <>
-struct StructTraits<media::mojom::EncryptionPatternDataView,
- media::EncryptionPattern> {
- static uint32_t crypt_byte_block(const media::EncryptionPattern& input) {
- return input.crypt_byte_block();
- }
-
- static uint32_t skip_byte_block(const media::EncryptionPattern& input) {
- return input.skip_byte_block();
- }
-
- static bool Read(media::mojom::EncryptionPatternDataView input,
- media::EncryptionPattern* output);
-};
-
-template <>
-struct StructTraits<media::mojom::EncryptionSchemeDataView,
- media::EncryptionScheme> {
- static media::EncryptionScheme::CipherMode mode(
- const media::EncryptionScheme& input) {
- return input.mode();
- }
-
- static media::EncryptionPattern pattern(
- const media::EncryptionScheme& input) {
- return input.pattern();
- }
-
- static bool Read(media::mojom::EncryptionSchemeDataView input,
- media::EncryptionScheme* output);
-};
-
-} // namespace mojo
-
-#endif // MEDIA_MOJO_MOJOM_ENCRYPTION_SCHEME_MOJOM_TRAITS_H_
diff --git a/media/mojo/mojom/encryption_scheme_mojom_traits_unittest.cc b/media/mojo/mojom/encryption_scheme_mojom_traits_unittest.cc
deleted file mode 100644
index 99cce07..0000000
--- a/media/mojo/mojom/encryption_scheme_mojom_traits_unittest.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/mojo/mojom/encryption_scheme_mojom_traits.h"
-
-#include <utility>
-
-#include "media/base/encryption_scheme.h"
-#include "media/base/media_util.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace media {
-
-TEST(EncryptionSchemeStructTraitsTest,
- ConvertEncryptionSchemeAesCbcWithPattern) {
- EncryptionScheme input(EncryptionScheme::CIPHER_MODE_AES_CBC,
- EncryptionPattern(1, 9));
- std::vector<uint8_t> data = media::mojom::EncryptionScheme::Serialize(&input);
-
- EncryptionScheme output;
- EXPECT_TRUE(
- media::mojom::EncryptionScheme::Deserialize(std::move(data), &output));
- EXPECT_TRUE(output.Matches(input));
-
- // Verify a couple of negative cases.
- EXPECT_FALSE(output.Matches(Unencrypted()));
- EXPECT_FALSE(output.Matches(AesCtrEncryptionScheme()));
-}
-
-} // namespace media
diff --git a/media/mojo/mojom/key_system_support.mojom b/media/mojo/mojom/key_system_support.mojom
index 99a807d..06ede1b 100644
--- a/media/mojo/mojom/key_system_support.mojom
+++ b/media/mojo/mojom/key_system_support.mojom
@@ -14,12 +14,12 @@
// Software secure codecs and encryption schemes supported by the CDM.
array<VideoCodec> video_codecs;
bool supports_vp9_profile2;
- array<EncryptionMode> encryption_schemes;
+ array<EncryptionScheme> encryption_schemes;
// Hardware secure codecs and encryption schemes supported by the CDM,
// directly or indirectly through CdmProxy.
array<VideoCodec> hw_secure_video_codecs;
- array<EncryptionMode> hw_secure_encryption_schemes;
+ array<EncryptionScheme> hw_secure_encryption_schemes;
// Session types supported in software secure mode if no
// |hw_secure_video_codecs| is supported, or in both modes otherwise.
diff --git a/media/mojo/mojom/media_types.mojom b/media/mojo/mojom/media_types.mojom
index 1068f46..93fb25c 100644
--- a/media/mojo/mojom/media_types.mojom
+++ b/media/mojo/mojom/media_types.mojom
@@ -80,10 +80,6 @@
[Native]
enum WatchTimeKey;
-// See media/base/decrypt_config.h for descriptions.
-[Native]
-enum EncryptionMode;
-
// See media/base/container_names.h for descriptions.
[Native]
enum MediaContainerName;
@@ -99,15 +95,9 @@
uint32 skip_byte_block;
};
-// This defines a mojo transport format for media::EncryptionScheme.
// See media/base/encryption_scheme.h for description.
-struct EncryptionScheme {
- [Native]
- enum CipherMode;
-
- CipherMode mode;
- EncryptionPattern pattern;
-};
+[Native]
+enum EncryptionScheme;
// This defines a mojo transport format for media::VideoColorSpace.
// See media/base/video_color_space.h for description.
@@ -183,7 +173,7 @@
// This defines a mojo transport format for media::DecryptConfig.
// See media/base/decrypt_config.h for descriptions.
struct DecryptConfig {
- EncryptionMode encryption_mode;
+ EncryptionScheme encryption_scheme;
string key_id;
string iv;
array<SubsampleEntry> subsamples;
diff --git a/media/mojo/mojom/media_types.typemap b/media/mojo/mojom/media_types.typemap
index 02aaa323..a24f592 100644
--- a/media/mojo/mojom/media_types.typemap
+++ b/media/mojo/mojom/media_types.typemap
@@ -49,8 +49,7 @@
"media.mojom.ChannelLayout=::media::ChannelLayout",
"media.mojom.ColorSpace=::media::ColorSpace",
"media.mojom.DecodeStatus=::media::DecodeStatus",
- "media.mojom.EncryptionMode=::media::EncryptionMode",
- "media.mojom.EncryptionScheme.CipherMode=::media::EncryptionScheme::CipherMode",
+ "media.mojom.EncryptionScheme=::media::EncryptionScheme",
"media.mojom.MediaContainerName=::media::container_names::MediaContainerName",
"media.mojom.MediaLogEvent=::media::MediaLogEvent",
"media.mojom.OutputDeviceStatus=::media::OutputDeviceStatus",
@@ -64,6 +63,5 @@
"media.mojom.VideoTransformation=::media::VideoTransformation",
"media.mojom.WaitingReason=::media::WaitingReason",
"media.mojom.WatchTimeKey=::media::WatchTimeKey",
- "media.mojom.EncryptionPattern=::media::EncryptionPattern",
"media.mojom.MediaStatusState=::media::MediaStatus::State",
]
diff --git a/media/mojo/mojom/typemaps.gni b/media/mojo/mojom/typemaps.gni
index 8dc9420..987ebfc 100644
--- a/media/mojo/mojom/typemaps.gni
+++ b/media/mojo/mojom/typemaps.gni
@@ -11,7 +11,7 @@
"//media/mojo/mojom/content_decryption_module.typemap",
"//media/mojo/mojom/decryptor.typemap",
"//media/mojo/mojom/demuxer_stream.typemap",
- "//media/mojo/mojom/encryption_scheme.typemap",
+ "//media/mojo/mojom/encryption_pattern.typemap",
"//media/mojo/mojom/hdr_metadata.typemap",
"//media/mojo/mojom/media_drm_storage.typemap",
"//media/mojo/mojom/media_types.typemap",
diff --git a/media/mojo/mojom/video_decoder_config_mojom_traits.h b/media/mojo/mojom/video_decoder_config_mojom_traits.h
index 05fffca..0d3f4e1 100644
--- a/media/mojo/mojom/video_decoder_config_mojom_traits.h
+++ b/media/mojo/mojom/video_decoder_config_mojom_traits.h
@@ -7,7 +7,6 @@
#include "media/base/ipc/media_param_traits.h"
#include "media/base/video_decoder_config.h"
-#include "media/mojo/mojom/encryption_scheme_mojom_traits.h"
#include "media/mojo/mojom/hdr_metadata_mojom_traits.h"
#include "media/mojo/mojom/media_types.mojom.h"
#include "media/mojo/mojom/video_color_space_mojom_traits.h"
@@ -50,7 +49,7 @@
return input.extra_data();
}
- static const media::EncryptionScheme& encryption_scheme(
+ static media::EncryptionScheme encryption_scheme(
const media::VideoDecoderConfig& input) {
return input.encryption_scheme();
}
diff --git a/media/mojo/mojom/video_decoder_config_mojom_traits_unittest.cc b/media/mojo/mojom/video_decoder_config_mojom_traits_unittest.cc
index 002306a8e..2be014f 100644
--- a/media/mojo/mojom/video_decoder_config_mojom_traits_unittest.cc
+++ b/media/mojo/mojom/video_decoder_config_mojom_traits_unittest.cc
@@ -28,7 +28,7 @@
VideoDecoderConfig input(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- kNaturalSize, kExtraDataVector, Unencrypted());
+ kNaturalSize, kExtraDataVector, EncryptionScheme::kUnencrypted);
std::vector<uint8_t> data =
media::mojom::VideoDecoderConfig::Serialize(&input);
VideoDecoderConfig output;
@@ -42,7 +42,7 @@
VideoDecoderConfig input(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- kNaturalSize, EmptyExtraData(), Unencrypted());
+ kNaturalSize, EmptyExtraData(), EncryptionScheme::kUnencrypted);
std::vector<uint8_t> data =
media::mojom::VideoDecoderConfig::Serialize(&input);
VideoDecoderConfig output;
@@ -55,7 +55,7 @@
VideoDecoderConfig input(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- kNaturalSize, EmptyExtraData(), AesCtrEncryptionScheme());
+ kNaturalSize, EmptyExtraData(), EncryptionScheme::kCenc);
std::vector<uint8_t> data =
media::mojom::VideoDecoderConfig::Serialize(&input);
VideoDecoderConfig output;
@@ -73,7 +73,7 @@
VideoColorSpace::MatrixID::BT2020_CL,
gfx::ColorSpace::RangeID::LIMITED),
kNoTransformation, kCodedSize, kVisibleRect, kNaturalSize,
- EmptyExtraData(), Unencrypted());
+ EmptyExtraData(), EncryptionScheme::kUnencrypted);
std::vector<uint8_t> data =
media::mojom::VideoDecoderConfig::Serialize(&input);
VideoDecoderConfig output;
@@ -87,7 +87,7 @@
VideoDecoderConfig input(
kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
- kNaturalSize, EmptyExtraData(), Unencrypted());
+ kNaturalSize, EmptyExtraData(), EncryptionScheme::kUnencrypted);
HDRMetadata hdr_metadata;
hdr_metadata.max_frame_average_light_level = 123;
hdr_metadata.max_content_light_level = 456;
@@ -126,10 +126,10 @@
// Next try an non-empty invalid config. Natural size must not be zero.
const gfx::Size kInvalidNaturalSize(0, 0);
- input.Initialize(kCodecVP8, VP8PROFILE_ANY,
- VideoDecoderConfig::AlphaMode::kIsOpaque, VideoColorSpace(),
- kNoTransformation, kCodedSize, kVisibleRect,
- kInvalidNaturalSize, EmptyExtraData(), Unencrypted());
+ input.Initialize(
+ kCodecVP8, VP8PROFILE_ANY, VideoDecoderConfig::AlphaMode::kIsOpaque,
+ VideoColorSpace(), kNoTransformation, kCodedSize, kVisibleRect,
+ kInvalidNaturalSize, EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_FALSE(input.IsValidConfig());
// Deserialize should again fail due to invalid config.
diff --git a/media/mojo/mojom/watch_time_recorder.mojom b/media/mojo/mojom/watch_time_recorder.mojom
index 8374b82..ff6737ee 100644
--- a/media/mojo/mojom/watch_time_recorder.mojom
+++ b/media/mojo/mojom/watch_time_recorder.mojom
@@ -30,8 +30,8 @@
VideoCodecProfile video_codec_profile;
string audio_decoder_name;
string video_decoder_name;
- EncryptionMode audio_encryption_scheme;
- EncryptionMode video_encryption_scheme;
+ EncryptionScheme audio_encryption_scheme;
+ EncryptionScheme video_encryption_scheme;
gfx.mojom.Size natural_size; // Size of video frame; (0, 0) if audio only.
};
diff --git a/media/mojo/services/watch_time_recorder_unittest.cc b/media/mojo/services/watch_time_recorder_unittest.cc
index 0fcdea77..1d60279 100644
--- a/media/mojo/services/watch_time_recorder_unittest.cc
+++ b/media/mojo/services/watch_time_recorder_unittest.cc
@@ -170,7 +170,7 @@
mojom::SecondaryPlaybackPropertiesPtr CreateSecondaryProperties() {
return mojom::SecondaryPlaybackProperties::New(
kCodecAAC, kCodecH264, H264PROFILE_MAIN, "", "",
- EncryptionMode::kUnencrypted, EncryptionMode::kUnencrypted,
+ EncryptionScheme::kUnencrypted, EncryptionScheme::kUnencrypted,
gfx::Size(800, 600));
}
@@ -590,7 +590,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties =
mojom::SecondaryPlaybackProperties::New(
kCodecAAC, kCodecH264, H264PROFILE_MAIN, "", "",
- EncryptionMode::kCenc, EncryptionMode::kCbcs, gfx::Size(800, 600));
+ EncryptionScheme::kCenc, EncryptionScheme::kCbcs,
+ gfx::Size(800, 600));
Initialize(properties.Clone());
wtr_->UpdateSecondaryProperties(secondary_properties.Clone());
@@ -651,7 +652,7 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties =
mojom::SecondaryPlaybackProperties::New(
kCodecOpus, kCodecVP9, VP9PROFILE_PROFILE0, "", "",
- EncryptionMode::kUnencrypted, EncryptionMode::kUnencrypted,
+ EncryptionScheme::kUnencrypted, EncryptionScheme::kUnencrypted,
gfx::Size(800, 600));
Initialize(properties.Clone());
wtr_->UpdateSecondaryProperties(secondary_properties.Clone());
@@ -952,8 +953,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties1 =
mojom::SecondaryPlaybackProperties::New(
kUnknownAudioCodec, kUnknownVideoCodec, VIDEO_CODEC_PROFILE_UNKNOWN,
- "", "", EncryptionMode::kUnencrypted, EncryptionMode::kUnencrypted,
- gfx::Size(800, 600));
+ "", "", EncryptionScheme::kUnencrypted,
+ EncryptionScheme::kUnencrypted, gfx::Size(800, 600));
Initialize(properties.Clone());
wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
@@ -963,8 +964,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties2 =
mojom::SecondaryPlaybackProperties::New(
kCodecAAC, kCodecH264, H264PROFILE_MAIN, "FFmpegAudioDecoder",
- "FFmpegVideoDecoder", EncryptionMode::kUnencrypted,
- EncryptionMode::kUnencrypted, gfx::Size(800, 600));
+ "FFmpegVideoDecoder", EncryptionScheme::kUnencrypted,
+ EncryptionScheme::kUnencrypted, gfx::Size(800, 600));
wtr_->UpdateSecondaryProperties(secondary_properties2.Clone());
wtr_.reset();
@@ -1015,8 +1016,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties1 =
mojom::SecondaryPlaybackProperties::New(
kCodecOpus, kCodecVP9, VP9PROFILE_PROFILE0, "MojoAudioDecoder",
- "MojoVideoDecoder", EncryptionMode::kUnencrypted,
- EncryptionMode::kUnencrypted, gfx::Size(400, 300));
+ "MojoVideoDecoder", EncryptionScheme::kUnencrypted,
+ EncryptionScheme::kUnencrypted, gfx::Size(400, 300));
Initialize(properties.Clone());
wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
@@ -1035,8 +1036,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties2 =
mojom::SecondaryPlaybackProperties::New(
kCodecAAC, kCodecH264, H264PROFILE_MAIN, "FFmpegAudioDecoder",
- "FFmpegVideoDecoder", EncryptionMode::kCenc, EncryptionMode::kCenc,
- gfx::Size(800, 600));
+ "FFmpegVideoDecoder", EncryptionScheme::kCenc,
+ EncryptionScheme::kCenc, gfx::Size(800, 600));
wtr_->UpdateSecondaryProperties(secondary_properties2.Clone());
constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(25);
@@ -1140,8 +1141,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties1 =
mojom::SecondaryPlaybackProperties::New(
kCodecOpus, kCodecVP9, VP9PROFILE_PROFILE0, "MojoAudioDecoder",
- "MojoVideoDecoder", EncryptionMode::kUnencrypted,
- EncryptionMode::kUnencrypted, gfx::Size(400, 300));
+ "MojoVideoDecoder", EncryptionScheme::kUnencrypted,
+ EncryptionScheme::kUnencrypted, gfx::Size(400, 300));
Initialize(properties.Clone());
wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
@@ -1160,8 +1161,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties2 =
mojom::SecondaryPlaybackProperties::New(
kCodecAAC, kCodecH264, H264PROFILE_MAIN, "FFmpegAudioDecoder",
- "FFmpegVideoDecoder", EncryptionMode::kUnencrypted,
- EncryptionMode::kUnencrypted, gfx::Size(800, 600));
+ "FFmpegVideoDecoder", EncryptionScheme::kUnencrypted,
+ EncryptionScheme::kUnencrypted, gfx::Size(800, 600));
wtr_->UpdateSecondaryProperties(secondary_properties2.Clone());
// Don't record any watch time to the new record, it should report zero watch
@@ -1247,7 +1248,7 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties1 =
mojom::SecondaryPlaybackProperties::New(
kCodecOpus, kCodecVP9, VP9PROFILE_PROFILE0, "MojoAudioDecoder",
- "MojoVideoDecoder", EncryptionMode::kCbcs, EncryptionMode::kCbcs,
+ "MojoVideoDecoder", EncryptionScheme::kCbcs, EncryptionScheme::kCbcs,
gfx::Size(400, 300));
Initialize(properties.Clone());
wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
@@ -1271,8 +1272,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties2 =
mojom::SecondaryPlaybackProperties::New(
kCodecAAC, kCodecH264, H264PROFILE_MAIN, "FFmpegAudioDecoder",
- "FFmpegVideoDecoder", EncryptionMode::kUnencrypted,
- EncryptionMode::kUnencrypted, gfx::Size(800, 600));
+ "FFmpegVideoDecoder", EncryptionScheme::kUnencrypted,
+ EncryptionScheme::kUnencrypted, gfx::Size(800, 600));
wtr_->UpdateSecondaryProperties(secondary_properties2.Clone());
constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(25);
@@ -1366,7 +1367,7 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties1 =
mojom::SecondaryPlaybackProperties::New(
kCodecOpus, kCodecVP9, VP9PROFILE_PROFILE0, "MojoAudioDecoder",
- "MojoVideoDecoder", EncryptionMode::kCbcs, EncryptionMode::kCbcs,
+ "MojoVideoDecoder", EncryptionScheme::kCbcs, EncryptionScheme::kCbcs,
gfx::Size(400, 300));
Initialize(properties.Clone());
wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
@@ -1384,8 +1385,8 @@
mojom::SecondaryPlaybackPropertiesPtr secondary_properties2 =
mojom::SecondaryPlaybackProperties::New(
kCodecAAC, kCodecH264, H264PROFILE_MAIN, "FFmpegAudioDecoder",
- "FFmpegVideoDecoder", EncryptionMode::kUnencrypted,
- EncryptionMode::kUnencrypted, gfx::Size(800, 600));
+ "FFmpegVideoDecoder", EncryptionScheme::kUnencrypted,
+ EncryptionScheme::kUnencrypted, gfx::Size(800, 600));
wtr_->UpdateSecondaryProperties(secondary_properties2.Clone());
constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(25);
diff --git a/media/remoting/courier_renderer_unittest.cc b/media/remoting/courier_renderer_unittest.cc
index de6ed68..9f637bbb4 100644
--- a/media/remoting/courier_renderer_unittest.cc
+++ b/media/remoting/courier_renderer_unittest.cc
@@ -558,9 +558,9 @@
}
TEST_F(CourierRendererTest, OnAudioConfigChange) {
- const AudioDecoderConfig kNewAudioConfig(kCodecVorbis, kSampleFormatPlanarF32,
- CHANNEL_LAYOUT_STEREO, 44100,
- EmptyExtraData(), Unencrypted());
+ const AudioDecoderConfig kNewAudioConfig(
+ kCodecVorbis, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO, 44100,
+ EmptyExtraData(), EncryptionScheme::kUnencrypted);
InitializeRenderer();
// Make sure initial audio config does not match the one we intend to send.
ASSERT_FALSE(render_client_->audio_decoder_config().Matches(kNewAudioConfig));
diff --git a/media/remoting/fake_media_resource.cc b/media/remoting/fake_media_resource.cc
index 7381d167..e77cf87 100644
--- a/media/remoting/fake_media_resource.cc
+++ b/media/remoting/fake_media_resource.cc
@@ -22,15 +22,17 @@
type_ = is_audio ? DemuxerStream::AUDIO : DemuxerStream::VIDEO;
if (is_audio) {
audio_config_.Initialize(kCodecAAC, kSampleFormatS16, CHANNEL_LAYOUT_STEREO,
- 38400, std::vector<uint8_t>(), Unencrypted(),
- base::TimeDelta(), 0);
+ 38400, std::vector<uint8_t>(),
+ EncryptionScheme::kUnencrypted, base::TimeDelta(),
+ 0);
} else {
gfx::Size size(640, 480);
gfx::Rect rect(0, 0, 640, 480);
video_config_.Initialize(kCodecH264, H264PROFILE_BASELINE,
VideoDecoderConfig::AlphaMode::kIsOpaque,
VideoColorSpace::REC601(), kNoTransformation, size,
- rect, size, std::vector<uint8_t>(), Unencrypted());
+ rect, size, std::vector<uint8_t>(),
+ EncryptionScheme::kUnencrypted);
}
ON_CALL(*this, Read(_))
.WillByDefault(Invoke(this, &FakeDemuxerStream::FakeRead));
diff --git a/media/remoting/proto_enum_utils.cc b/media/remoting/proto_enum_utils.cc
index 807a48cf..a2313f6 100644
--- a/media/remoting/proto_enum_utils.cc
+++ b/media/remoting/proto_enum_utils.cc
@@ -11,26 +11,28 @@
case OriginType::x: \
return OtherType::x
-base::Optional<EncryptionScheme::CipherMode> ToMediaEncryptionSchemeCipherMode(
+base::Optional<EncryptionScheme> ToMediaEncryptionScheme(
pb::EncryptionScheme::CipherMode value) {
- using OriginType = pb::EncryptionScheme;
- using OtherType = EncryptionScheme;
switch (value) {
- CASE_RETURN_OTHER(CIPHER_MODE_UNENCRYPTED);
- CASE_RETURN_OTHER(CIPHER_MODE_AES_CTR);
- CASE_RETURN_OTHER(CIPHER_MODE_AES_CBC);
+ case pb::EncryptionScheme::CIPHER_MODE_UNENCRYPTED:
+ return EncryptionScheme::kUnencrypted;
+ case pb::EncryptionScheme::CIPHER_MODE_AES_CTR:
+ return EncryptionScheme::kCenc;
+ case pb::EncryptionScheme::CIPHER_MODE_AES_CBC:
+ return EncryptionScheme::kCbcs;
}
return base::nullopt; // Not a 'default' to ensure compile-time checks.
}
base::Optional<pb::EncryptionScheme::CipherMode>
-ToProtoEncryptionSchemeCipherMode(EncryptionScheme::CipherMode value) {
- using OriginType = EncryptionScheme;
- using OtherType = pb::EncryptionScheme;
+ToProtoEncryptionSchemeCipherMode(EncryptionScheme value) {
switch (value) {
- CASE_RETURN_OTHER(CIPHER_MODE_UNENCRYPTED);
- CASE_RETURN_OTHER(CIPHER_MODE_AES_CTR);
- CASE_RETURN_OTHER(CIPHER_MODE_AES_CBC);
+ case EncryptionScheme::kUnencrypted:
+ return pb::EncryptionScheme::CIPHER_MODE_UNENCRYPTED;
+ case EncryptionScheme::kCenc:
+ return pb::EncryptionScheme::CIPHER_MODE_AES_CTR;
+ case EncryptionScheme::kCbcs:
+ return pb::EncryptionScheme::CIPHER_MODE_AES_CBC;
}
return base::nullopt; // Not a 'default' to ensure compile-time checks.
}
@@ -561,9 +563,10 @@
return base::nullopt; // Not a 'default' to ensure compile-time checks.
}
-base::Optional<EncryptionMode> ToMediaEncryptionMode(pb::EncryptionMode value) {
+base::Optional<EncryptionScheme> ToMediaEncryptionScheme(
+ pb::EncryptionMode value) {
using OriginType = pb::EncryptionMode;
- using OtherType = EncryptionMode;
+ using OtherType = EncryptionScheme;
switch (value) {
CASE_RETURN_OTHER(kUnencrypted);
CASE_RETURN_OTHER(kCenc);
@@ -572,8 +575,9 @@
return base::nullopt; // Not a 'default' to ensure compile-time checks.
}
-base::Optional<pb::EncryptionMode> ToProtoEncryptionMode(EncryptionMode value) {
- using OriginType = EncryptionMode;
+base::Optional<pb::EncryptionMode> ToProtoEncryptionMode(
+ EncryptionScheme value) {
+ using OriginType = EncryptionScheme;
using OtherType = pb::EncryptionMode;
switch (value) {
CASE_RETURN_OTHER(kUnencrypted);
diff --git a/media/remoting/proto_enum_utils.h b/media/remoting/proto_enum_utils.h
index 113cf9f..6a92c4b 100644
--- a/media/remoting/proto_enum_utils.h
+++ b/media/remoting/proto_enum_utils.h
@@ -32,10 +32,10 @@
// Each returns a base::Optional value. If it is not set, that indicates the
// conversion failed.
-base::Optional<EncryptionScheme::CipherMode> ToMediaEncryptionSchemeCipherMode(
+base::Optional<EncryptionScheme> ToMediaEncryptionScheme(
pb::EncryptionScheme::CipherMode value);
base::Optional<pb::EncryptionScheme::CipherMode>
-ToProtoEncryptionSchemeCipherMode(EncryptionScheme::CipherMode value);
+ToProtoEncryptionSchemeCipherMode(EncryptionScheme value);
base::Optional<AudioCodec> ToMediaAudioCodec(
pb::AudioDecoderConfig::Codec value);
@@ -96,8 +96,10 @@
base::Optional<pb::DemuxerStreamReadUntilCallback::Status>
ToProtoDemuxerStreamStatus(DemuxerStream::Status value);
-base::Optional<EncryptionMode> ToMediaEncryptionMode(pb::EncryptionMode value);
-base::Optional<pb::EncryptionMode> ToProtoEncryptionMode(EncryptionMode value);
+base::Optional<EncryptionScheme> ToMediaEncryptionScheme(
+ pb::EncryptionMode value);
+base::Optional<pb::EncryptionMode> ToProtoEncryptionMode(
+ EncryptionScheme value);
} // namespace remoting
} // namespace media
diff --git a/media/remoting/proto_utils.cc b/media/remoting/proto_utils.cc
index 6d34554c..50374662 100644
--- a/media/remoting/proto_utils.cc
+++ b/media/remoting/proto_utils.cc
@@ -135,7 +135,7 @@
}
config_message->set_mode(
- ToProtoEncryptionMode(decrypt_config.encryption_mode()).value());
+ ToProtoEncryptionMode(decrypt_config.encryption_scheme()).value());
if (decrypt_config.HasPattern()) {
config_message->set_crypt_byte_block(
decrypt_config.encryption_pattern()->crypt_byte_block());
@@ -235,20 +235,23 @@
return buffer;
}
-void ConvertEncryptionSchemeToProto(const EncryptionScheme& encryption_scheme,
+void ConvertEncryptionSchemeToProto(EncryptionScheme encryption_scheme,
pb::EncryptionScheme* message) {
DCHECK(message);
+
+ // The remote side only cares about the cipher mode. Setting EncryptionPattern
+ // to (0, 0) is fine.
+ // TODO(crbug.com/1018923): Upgrade proto to remove EncryptionPattern from
+ // Audio/VideoDecoderConfig.
message->set_mode(
- ToProtoEncryptionSchemeCipherMode(encryption_scheme.mode()).value());
- message->set_encrypt_blocks(encryption_scheme.pattern().crypt_byte_block());
- message->set_skip_blocks(encryption_scheme.pattern().skip_byte_block());
+ ToProtoEncryptionSchemeCipherMode(encryption_scheme).value());
+ message->set_encrypt_blocks(0);
+ message->set_skip_blocks(0);
}
EncryptionScheme ConvertProtoToEncryptionScheme(
const pb::EncryptionScheme& message) {
- return EncryptionScheme(
- ToMediaEncryptionSchemeCipherMode(message.mode()).value(),
- EncryptionPattern(message.encrypt_blocks(), message.skip_blocks()));
+ return ToMediaEncryptionScheme(message.mode()).value();
}
void ConvertAudioDecoderConfigToProto(const AudioDecoderConfig& audio_config,
@@ -359,7 +362,6 @@
const pb::VideoDecoderConfig& video_message,
VideoDecoderConfig* video_config) {
DCHECK(video_config);
- EncryptionScheme encryption_scheme;
// TODO(hubbe): Update pb to use VideoColorSpace
VideoColorSpace color_space;
diff --git a/media/remoting/proto_utils_unittest.cc b/media/remoting/proto_utils_unittest.cc
index b20c4bb..4e1748a 100644
--- a/media/remoting/proto_utils_unittest.cc
+++ b/media/remoting/proto_utils_unittest.cc
@@ -114,8 +114,7 @@
TEST_F(ProtoUtilsTest, AudioDecoderConfigConversionTest) {
const std::string extra_data = "ACEG";
- const EncryptionScheme encryption_scheme(
- EncryptionScheme::CIPHER_MODE_AES_CTR, EncryptionPattern(20, 40));
+ const EncryptionScheme encryption_scheme = EncryptionScheme::kCenc;
AudioDecoderConfig audio_config(
kCodecAAC, kSampleFormatF32, CHANNEL_LAYOUT_MONO, 48000,
std::vector<uint8_t>(extra_data.begin(), extra_data.end()),
diff --git a/media/remoting/renderer_controller_unittest.cc b/media/remoting/renderer_controller_unittest.cc
index 9507195..3caf8a17 100644
--- a/media/remoting/renderer_controller_unittest.cc
+++ b/media/remoting/renderer_controller_unittest.cc
@@ -288,7 +288,7 @@
TEST_F(RendererControllerTest, WithAACAudioCodec) {
const AudioDecoderConfig audio_config = AudioDecoderConfig(
AudioCodec::kCodecAAC, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO,
- 44100, EmptyExtraData(), Unencrypted());
+ 44100, EmptyExtraData(), EncryptionScheme::kUnencrypted);
PipelineMetadata pipeline_metadata = DefaultMetadata(VideoCodec::kCodecVP8);
pipeline_metadata.audio_decoder_config = audio_config;
InitializeControllerAndBecomeDominant(pipeline_metadata,
@@ -316,7 +316,7 @@
TEST_F(RendererControllerTest, WithOpusAudioCodec) {
const AudioDecoderConfig audio_config = AudioDecoderConfig(
AudioCodec::kCodecOpus, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO,
- 44100, EmptyExtraData(), Unencrypted());
+ 44100, EmptyExtraData(), EncryptionScheme::kUnencrypted);
PipelineMetadata pipeline_metadata = DefaultMetadata(VideoCodec::kCodecVP8);
pipeline_metadata.audio_decoder_config = audio_config;
InitializeControllerAndBecomeDominant(pipeline_metadata,
diff --git a/media/renderers/audio_renderer_impl_unittest.cc b/media/renderers/audio_renderer_impl_unittest.cc
index 6ed5f91..c9ec128 100644
--- a/media/renderers/audio_renderer_impl_unittest.cc
+++ b/media/renderers/audio_renderer_impl_unittest.cc
@@ -106,7 +106,7 @@
ended_(false) {
AudioDecoderConfig audio_config(kCodec, kSampleFormat, kChannelLayout,
kInputSamplesPerSecond, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
demuxer_stream_.set_audio_decoder_config(audio_config);
ConfigureDemuxerStream(true);
@@ -218,9 +218,9 @@
hardware_params_.Reset(AudioParameters::AUDIO_BITSTREAM_EAC3,
kChannelLayout, kOutputSamplesPerSecond, 512);
sink_ = new FakeAudioRendererSink(hardware_params_);
- AudioDecoderConfig audio_config(kCodecAC3, kSampleFormatEac3,
- kChannelLayout, kInputSamplesPerSecond,
- EmptyExtraData(), Unencrypted());
+ AudioDecoderConfig audio_config(
+ kCodecAC3, kSampleFormatEac3, kChannelLayout, kInputSamplesPerSecond,
+ EmptyExtraData(), EncryptionScheme::kUnencrypted);
demuxer_stream_.set_audio_decoder_config(audio_config);
ConfigureDemuxerStream(true);
@@ -565,7 +565,7 @@
EXPECT_CALL(new_stream, SupportsConfigChanges()).WillOnce(Return(false));
AudioDecoderConfig audio_config(kCodec, kSampleFormat, kChannelLayout,
kInputSamplesPerSecond, EmptyExtraData(),
- Unencrypted());
+ EncryptionScheme::kUnencrypted);
new_stream.set_audio_decoder_config(audio_config);
// The renderer is now in the flushed state and can be reinitialized.
@@ -586,7 +586,7 @@
// that RendererClient to be signaled with the new config.
const AudioDecoderConfig kValidAudioConfig(
kCodecVorbis, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO, 44100,
- EmptyExtraData(), Unencrypted());
+ EmptyExtraData(), EncryptionScheme::kUnencrypted);
EXPECT_TRUE(kValidAudioConfig.IsValidConfig());
EXPECT_CALL(*this, OnAudioConfigChange(DecoderConfigEq(kValidAudioConfig)));
force_config_change(kValidAudioConfig);
@@ -850,7 +850,7 @@
AudioDecoderConfig audio_config(
kCodecOpus, kSampleFormat, CHANNEL_LAYOUT_DISCRETE,
- kInputSamplesPerSecond, EmptyExtraData(), Unencrypted());
+ kInputSamplesPerSecond, EmptyExtraData(), EncryptionScheme::kUnencrypted);
audio_config.SetChannelsForDiscrete(audio_channels);
demuxer_stream_.set_audio_decoder_config(audio_config);
ConfigureDemuxerStream(true);
diff --git a/media/video/video_decode_accelerator.h b/media/video/video_decode_accelerator.h
index b0a5448..262600a 100644
--- a/media/video/video_decode_accelerator.h
+++ b/media/video/video_decode_accelerator.h
@@ -137,13 +137,15 @@
~Config();
std::string AsHumanReadableString() const;
- bool is_encrypted() const { return encryption_scheme.is_encrypted(); }
+ bool is_encrypted() const {
+ return encryption_scheme != EncryptionScheme::kUnencrypted;
+ }
// The video codec and profile.
VideoCodecProfile profile = VIDEO_CODEC_PROFILE_UNKNOWN;
// Whether the stream is encrypted, and, if so, the scheme used.
- EncryptionScheme encryption_scheme;
+ EncryptionScheme encryption_scheme = EncryptionScheme::kUnencrypted;
// The CDM that the VDA should use to decode encrypted streams. Must be
// set to a valid ID if |is_encrypted|.
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc
index 55ec5e8..59f7558 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc
@@ -154,7 +154,8 @@
GuessVideoCodecProfile(format),
media::VideoDecoderConfig::AlphaMode::kIsOpaque, media::VideoColorSpace(),
media::kNoTransformation, kDefaultSize, gfx::Rect(kDefaultSize),
- kDefaultSize, media::EmptyExtraData(), media::Unencrypted());
+ kDefaultSize, media::EmptyExtraData(),
+ media::EncryptionScheme::kUnencrypted);
if (!gpu_factories->IsDecoderConfigSupported(kImplementation, config))
return nullptr;