Index: media/mojo/services/media_type_converters.cc |
diff --git a/media/mojo/services/media_type_converters.cc b/media/mojo/services/media_type_converters.cc |
index 75b577fcb6844de70e61b3109f766459438e0c2f..f9d86e1ad8fbd5958394265546fc964a10a0c6b3 100644 |
--- a/media/mojo/services/media_type_converters.cc |
+++ b/media/mojo/services/media_type_converters.cc |
@@ -17,6 +17,7 @@ |
#include "media/base/decrypt_config.h" |
#include "media/base/decryptor.h" |
#include "media/base/demuxer_stream.h" |
+#include "media/base/encryption_scheme.h" |
#include "media/base/media_keys.h" |
#include "media/base/video_decoder_config.h" |
#include "media/base/video_frame.h" |
@@ -219,6 +220,20 @@ ASSERT_ENUM_EQ(VideoCodecProfile, , , VP9PROFILE_ANY); |
ASSERT_ENUM_EQ(VideoCodecProfile, , , VP9PROFILE_MAX); |
ASSERT_ENUM_EQ(VideoCodecProfile, , , VIDEO_CODEC_PROFILE_MAX); |
+// CipherMode |
+ASSERT_ENUM_EQ_RAW(EncryptionScheme::CipherMode, |
+ EncryptionScheme::CipherMode::kCipherModeUnencrypted, |
+ CipherMode::Unencrypted); |
+ASSERT_ENUM_EQ_RAW(EncryptionScheme::CipherMode, |
+ EncryptionScheme::CipherMode::kCipherModeAesCtr, |
+ CipherMode::AesCtr); |
+ASSERT_ENUM_EQ_RAW(EncryptionScheme::CipherMode, |
+ EncryptionScheme::CipherMode::kCipherModeAesCbc, |
+ CipherMode::AesCbc); |
+ASSERT_ENUM_EQ_RAW(EncryptionScheme::CipherMode, |
+ EncryptionScheme::CipherMode::kCipherModeMax, |
+ CipherMode::Max); |
+ |
// Decryptor Status |
ASSERT_ENUM_EQ_RAW(Decryptor::Status, |
Decryptor::kSuccess, |
@@ -341,6 +356,62 @@ void CopyPlaneData(const std::vector<uint8_t>& input, |
} // namespace |
+template <> |
+struct TypeConverter<media::interfaces::PatternSpecPtr, |
+ media::EncryptionScheme::Pattern> { |
+ static media::interfaces::PatternSpecPtr Convert( |
+ const media::EncryptionScheme::Pattern& input); |
+}; |
+template <> |
+struct TypeConverter<media::EncryptionScheme::Pattern, |
+ media::interfaces::PatternSpecPtr> { |
+ static media::EncryptionScheme::Pattern Convert( |
+ const media::interfaces::PatternSpecPtr& input); |
+}; |
+ |
+// static |
+media::interfaces::PatternSpecPtr |
+TypeConverter<media::interfaces::PatternSpecPtr, |
+ media::EncryptionScheme::Pattern>:: |
+ Convert(const media::EncryptionScheme::Pattern& input) { |
+ media::interfaces::PatternSpecPtr mojo_pattern( |
+ media::interfaces::Pattern::New()); |
+ mojo_pattern->encrypt_blocks = input.encrypt_blocks(); |
+ mojo_pattern->skip_blocks = input.skip_blocks(); |
+ return mojo_pattern; |
+} |
+ |
+// static |
+media::EncryptionScheme::Pattern |
+TypeConverter<media::EncryptionScheme::Pattern, |
+ media::interfaces::PatternSpecPtr>:: |
+ Convert(const media::interfaces::PatternSpecPtr& input) { |
+ return media::EncryptionScheme::Pattern(input->encrypt_blocks, |
+ input->skip_blocks); |
+} |
+ |
+// static |
+media::interfaces::EncryptionSchemePtr TypeConverter< |
+ media::interfaces::EncryptionSchemePtr, |
+ media::EncryptionScheme>::Convert(const media::EncryptionScheme& input) { |
+ media::interfaces::EncryptionSchemePtr mojo_encryption_scheme( |
+ media::interfaces::EncryptionScheme::New()); |
+ mojo_encryption_scheme->mode = |
+ static_cast<media::interfaces::CipherMode>(input.mode()); |
+ mojo_encryption_scheme->pattern = |
+ media::interfaces::Pattern::From(input.pattern()); |
+ return mojo_encryption_scheme; |
+} |
+ |
+// static |
+media::EncryptionScheme |
+TypeConverter<media::EncryptionScheme, media::interfaces::EncryptionSchemePtr>:: |
+ Convert(const media::interfaces::EncryptionSchemePtr& input) { |
+ return media::EncryptionScheme( |
+ static_cast<media::EncryptionScheme::CipherMode>(input->mode), |
+ input->pattern.To<media::EncryptionScheme::Pattern>()); |
+} |
+ |
// static |
media::interfaces::SubsampleEntryPtr TypeConverter< |
media::interfaces::SubsampleEntryPtr, |
@@ -483,7 +554,8 @@ media::interfaces::AudioDecoderConfigPtr TypeConverter< |
} |
config->seek_preroll_usec = input.seek_preroll().InMicroseconds(); |
config->codec_delay = input.codec_delay(); |
- config->is_encrypted = input.is_encrypted(); |
+ config->encryption_scheme = |
+ media::interfaces::EncryptionScheme::From(input.encryption_scheme()); |
return config; |
} |
@@ -497,7 +569,7 @@ TypeConverter<media::AudioDecoderConfig, |
static_cast<media::SampleFormat>(input->sample_format), |
static_cast<media::ChannelLayout>(input->channel_layout), |
input->samples_per_second, input->extra_data.storage(), |
- input->is_encrypted, |
+ input->encryption_scheme.To<media::EncryptionScheme>(), |
base::TimeDelta::FromMicroseconds(input->seek_preroll_usec), |
input->codec_delay); |
return config; |
@@ -520,7 +592,8 @@ media::interfaces::VideoDecoderConfigPtr TypeConverter< |
config->visible_rect = Rect::From(input.visible_rect()); |
config->natural_size = Size::From(input.natural_size()); |
config->extra_data = mojo::Array<uint8_t>::From(input.extra_data()); |
- config->is_encrypted = input.is_encrypted(); |
+ config->encryption_scheme = |
+ media::interfaces::EncryptionScheme::From(input.encryption_scheme()); |
return config; |
} |
@@ -530,14 +603,14 @@ TypeConverter<media::VideoDecoderConfig, |
media::interfaces::VideoDecoderConfigPtr>:: |
Convert(const media::interfaces::VideoDecoderConfigPtr& input) { |
media::VideoDecoderConfig config; |
- config.Initialize(static_cast<media::VideoCodec>(input->codec), |
- static_cast<media::VideoCodecProfile>(input->profile), |
- static_cast<media::VideoPixelFormat>(input->format), |
- static_cast<media::ColorSpace>(input->color_space), |
- input->coded_size.To<gfx::Size>(), |
- input->visible_rect.To<gfx::Rect>(), |
- input->natural_size.To<gfx::Size>(), |
- input->extra_data.storage(), input->is_encrypted); |
+ config.Initialize( |
+ static_cast<media::VideoCodec>(input->codec), |
+ static_cast<media::VideoCodecProfile>(input->profile), |
+ static_cast<media::VideoPixelFormat>(input->format), |
+ static_cast<media::ColorSpace>(input->color_space), |
+ input->coded_size.To<gfx::Size>(), input->visible_rect.To<gfx::Rect>(), |
+ input->natural_size.To<gfx::Size>(), input->extra_data.storage(), |
+ input->encryption_scheme.To<media::EncryptionScheme>()); |
return config; |
} |