Index: chromecast/media/cma/base/decoder_config_adapter.cc |
diff --git a/chromecast/media/cma/base/decoder_config_adapter.cc b/chromecast/media/cma/base/decoder_config_adapter.cc |
index fa8ac20e742dcfa1eb17c8eca6309b054e3eaaa1..17125c134ba18b65e1d332fe61f6cae0a57f6471 100644 |
--- a/chromecast/media/cma/base/decoder_config_adapter.cc |
+++ b/chromecast/media/cma/base/decoder_config_adapter.cc |
@@ -175,6 +175,58 @@ VideoProfile ToVideoProfile(const ::media::VideoCodecProfile codec_profile) { |
} |
} |
+::media::CipherMode ToMediaCipherMode(CipherMode mode) { |
+ switch(mode) { |
+ case kCipherModeAesCtr: |
+ return ::media::kCipherModeAesCtr; |
+ case kCipherModeAesCbc: |
+ return ::media::kCipherModeAesCbc; |
+ default: |
+ return ::media::kCipherModeUnknown; |
+ } |
+} |
+ |
+CipherMode ToCipherMode(::media::CipherMode mode) { |
+ switch(mode) { |
+ case ::media::kCipherModeAesCtr: |
+ return kCipherModeAesCtr; |
+ case ::media::kCipherModeAesCbc: |
+ return kCipherModeAesCbc; |
+ default: |
+ return kCipherModeUnknown; |
+ } |
+} |
+ |
+EncryptionScheme::PatternSpec ToPatternSpec( |
+ const ::media::EncryptionScheme::PatternSpec& pattern) { |
+ return EncryptionScheme::PatternSpec( |
+ pattern.encrypt_blocks(), pattern.skip_blocks()); |
+} |
+ |
+::media::EncryptionScheme::PatternSpec ToMediaPatternSpec( |
+ const EncryptionScheme::PatternSpec& pattern) { |
+ return ::media::EncryptionScheme::PatternSpec( |
+ pattern.encrypt_blocks, pattern.skip_blocks); |
+} |
+ |
+// static |
+EncryptionScheme ToEncryptionScheme( |
+ const ::media::EncryptionScheme& scheme) { |
+ return EncryptionScheme( |
+ scheme.is_encrypted(), |
+ ToCipherMode(scheme.mode()), |
+ ToPatternSpec(scheme.pattern())); |
+} |
+ |
+// static |
+::media::EncryptionScheme ToMediaEncryptionScheme( |
+ const EncryptionScheme& scheme) { |
+ return new ::media::EncryptionScheme( |
+ scheme.is_encrypted, |
+ ToMediaCipherMode(scheme.mode), |
+ ToMediaPatternSpec(scheme.pattern)); |
+} |
+ |
} // namespace |
// static |
@@ -193,7 +245,8 @@ AudioConfig DecoderConfigAdapter::ToCastAudioConfig( |
::media::ChannelLayoutToChannelCount(config.channel_layout()), |
audio_config.samples_per_second = config.samples_per_second(); |
audio_config.extra_data = config.extra_data(); |
- audio_config.is_encrypted = config.is_encrypted(); |
+ audio_config.encryption_scheme = ToEncryptionScheme( |
+ config.encryption_scheme()); |
return audio_config; |
} |
@@ -204,7 +257,8 @@ AudioConfig DecoderConfigAdapter::ToCastAudioConfig( |
ToMediaAudioCodec(config.codec), |
ToMediaSampleFormat(config.sample_format), |
ToMediaChannelLayout(config.channel_number), config.samples_per_second, |
- config.extra_data, config.is_encrypted); |
+ config.extra_data, |
+ ToMediaEncryptionScheme(config.encryption_scheme)); |
} |
// static |
@@ -220,7 +274,8 @@ VideoConfig DecoderConfigAdapter::ToCastVideoConfig( |
video_config.codec = ToVideoCodec(config.codec()); |
video_config.profile = ToVideoProfile(config.profile()); |
video_config.extra_data = config.extra_data(); |
- video_config.is_encrypted = config.is_encrypted(); |
+ video_config.encryption_scheme = ToEncryptionScheme( |
+ config.encryption_scheme()); |
return video_config; |
} |