| 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;
|
| }
|
|
|
|
|