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 3a8ab394aad3df9a26049ae39891e26664606f3e..254d9264e7b581dbc4d992ec384ec1b303b60edb 100644 |
--- a/chromecast/media/cma/base/decoder_config_adapter.cc |
+++ b/chromecast/media/cma/base/decoder_config_adapter.cc |
@@ -85,7 +85,7 @@ VideoCodec ToVideoCodec(const ::media::VideoCodec video_codec) { |
// Converts ::media::VideoCodecProfile to chromecast::media::VideoProfile. |
VideoProfile ToVideoProfile(const ::media::VideoCodecProfile codec_profile) { |
- switch(codec_profile) { |
+ switch (codec_profile) { |
case ::media::H264PROFILE_BASELINE: |
return kH264Baseline; |
case ::media::H264PROFILE_MAIN: |
@@ -183,6 +183,62 @@ VideoProfile ToVideoProfile(const ::media::VideoCodecProfile codec_profile) { |
} |
} |
+::media::EncryptionScheme::CipherMode ToMediaCipherMode( |
+ EncryptionScheme::CipherMode mode) { |
+ switch (mode) { |
+ case EncryptionScheme::kCipherModeUnencrypted: |
+ return ::media::EncryptionScheme::kCipherModeUnencrypted; |
+ case EncryptionScheme::kCipherModeAesCtr: |
+ return ::media::EncryptionScheme::kCipherModeAesCtr; |
+ case EncryptionScheme::kCipherModeAesCbc: |
+ return ::media::EncryptionScheme::kCipherModeAesCbc; |
+ default: |
+ NOTREACHED(); |
+ return ::media::EncryptionScheme::kCipherModeUnencrypted; |
+ } |
+} |
+ |
+EncryptionScheme::CipherMode ToCipherMode( |
+ ::media::EncryptionScheme::CipherMode mode) { |
+ switch (mode) { |
+ case ::media::EncryptionScheme::kCipherModeUnencrypted: |
+ return EncryptionScheme::kCipherModeUnencrypted; |
+ case ::media::EncryptionScheme::kCipherModeAesCtr: |
+ return EncryptionScheme::kCipherModeAesCtr; |
+ case ::media::EncryptionScheme::kCipherModeAesCbc: |
+ return EncryptionScheme::kCipherModeAesCbc; |
+ default: |
+ NOTREACHED(); |
+ return EncryptionScheme::kCipherModeUnencrypted; |
+ } |
+} |
+ |
+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); |
+} |
+ |
+EncryptionScheme ToEncryptionScheme( |
+ const ::media::EncryptionScheme& scheme) { |
+ return EncryptionScheme( |
+ ToCipherMode(scheme.mode()), |
+ ToPatternSpec(scheme.pattern())); |
+} |
+ |
+::media::EncryptionScheme ToMediaEncryptionScheme( |
+ const EncryptionScheme& scheme) { |
+ return ::media::EncryptionScheme( |
+ ToMediaCipherMode(scheme.mode), |
+ ToMediaPatternSpec(scheme.pattern)); |
+} |
+ |
} // namespace |
// static |
@@ -201,7 +257,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; |
} |
@@ -212,7 +269,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 |
@@ -228,7 +286,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; |
} |