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

Unified Diff: media/mojo/services/media_type_converters.cc

Issue 1490613005: media config: expand is_encrypted to a struct. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: missed a couple comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698