summaryrefslogtreecommitdiffstats
path: root/chromecast
diff options
context:
space:
mode:
authoralexmos <alexmos@chromium.org>2016-03-11 13:18:02 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-11 21:18:50 +0000
commitc0fa874e9858c85895a8266ae53c53efa280e85a (patch)
tree7f26b44cee3b721e885d82ac7c2f03b1e5a27dd9 /chromecast
parent2ceccae6337cab6b6d5be02413c2b56ebaebca1b (diff)
downloadchromium_src-c0fa874e9858c85895a8266ae53c53efa280e85a.zip
chromium_src-c0fa874e9858c85895a8266ae53c53efa280e85a.tar.gz
chromium_src-c0fa874e9858c85895a8266ae53c53efa280e85a.tar.bz2
Revert of media config: expand is_encrypted to a struct. (patchset #23 id:440001 of https://codereview.chromium.org/1490613005/ )
Reason for revert: Appears to be breaking compile on Win x64 GN (dbg): https://build.chromium.org/p/chromium.win/builders/Win%20x64%20GN%20%28dbg%29/builds/19428 Output: media_type_converters.obj : error LNK2019: unresolved external symbol "public: __cdecl media::EncryptionScheme::Pattern::Pattern(unsigned int,unsigned int)" (??0Pattern@EncryptionScheme@media@@QEAA@II@Z) referenced in function "public: static class media::EncryptionScheme::Pattern __cdecl mojo::TypeConverter<class media::EncryptionScheme::Pattern,class mojo::InlinedStructPtr<class media::interfaces::Pattern> >::Convert(class mojo::InlinedStructPtr<class media::interfaces::Pattern> const &)" (?Convert@?$TypeConverter@VPattern@EncryptionScheme@media@@V?$InlinedStructPtr@VPattern@interfaces@media@@@mojo@@@mojo@@SA?AVPattern@EncryptionScheme@media@@AEBV?$InlinedStructPtr@VPattern@interfaces@media@@@2@@Z) media_type_converters.obj : error LNK2019: unresolved external symbol "public: __cdecl media::EncryptionScheme::Pattern::~Pattern(void)" (??1Pattern@EncryptionScheme@media@@QEAA@XZ) referenced in function "public: static class media::EncryptionScheme __cdecl mojo::TypeConverter<class media::EncryptionScheme,class mojo::StructPtr<class media::interfaces::EncryptionScheme> >::Convert(class mojo::StructPtr<class media::interfaces::EncryptionScheme> const &)" (?Convert@?$TypeConverter@VEncryptionScheme@media@@V?$StructPtr@VEncryptionScheme@interfaces@media@@@mojo@@@mojo@@SA?AVEncryptionScheme@media@@AEBV?$StructPtr@VEncryptionScheme@interfaces@media@@@2@@Z) ./media_library.dll : fatal error LNK1120: 2 unresolved externals Original issue's description: > media config: expand is_encrypted to a struct. > > Provide more complete encryption metadata, rather than > just a bool. EncryptionScheme also allows specification > of the mode and the pattern, as will be allowed by > CENC (ISO's Common Encryption standard), 3rd Edition. > > BUG=568326 > > Committed: https://crrev.com/c9d2206c62f65e29b141e08df2b2dcb88f54162f > Cr-Commit-Position: refs/heads/master@{#380710} TBR=dalecurtis@chromium.org,ddorwin@chromium.org,halliwell@chromium.org,lcwu@chromium.org,raymes@chromium.org,xhwang@chromium.org,yucliu@chromium.org,dougsteed@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=568326 Review URL: https://codereview.chromium.org/1786733004 Cr-Commit-Position: refs/heads/master@{#380732}
Diffstat (limited to 'chromecast')
-rw-r--r--chromecast/common/media/cma_param_traits.cc71
-rw-r--r--chromecast/common/media/cma_param_traits.h10
-rw-r--r--chromecast/common/media/cma_param_traits_macros.h2
-rw-r--r--chromecast/media/audio/cast_audio_output_stream.cc1
-rw-r--r--chromecast/media/audio/cast_audio_output_stream_unittest.cc2
-rw-r--r--chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc5
-rw-r--r--chromecast/media/cma/base/decoder_config_adapter.cc67
-rw-r--r--chromecast/media/cma/base/demuxer_stream_for_test.cc2
-rw-r--r--chromecast/media/cma/ipc_streamer/BUILD.gn2
-rw-r--r--chromecast/media/cma/ipc_streamer/audio_decoder_config_marshaller.cc9
-rw-r--r--chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.cc54
-rw-r--r--chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.h27
-rw-r--r--chromecast/media/cma/ipc_streamer/video_decoder_config_marshaller.cc9
-rw-r--r--chromecast/media/cma/pipeline/audio_decoder_software_wrapper.cc4
-rw-r--r--chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc4
-rw-r--r--chromecast/media/cma/test/mock_frame_provider.cc4
-rw-r--r--chromecast/media/media.gyp2
-rw-r--r--chromecast/public/media/decoder_config.h83
18 files changed, 40 insertions, 318 deletions
diff --git a/chromecast/common/media/cma_param_traits.cc b/chromecast/common/media/cma_param_traits.cc
index f0ddc49..f27043d 100644
--- a/chromecast/common/media/cma_param_traits.cc
+++ b/chromecast/common/media/cma_param_traits.cc
@@ -12,7 +12,6 @@
#include "content/public/common/common_param_traits.h"
#include "ipc/ipc_message_macros.h"
#include "media/base/audio_decoder_config.h"
-#include "media/base/encryption_scheme.h"
#include "media/base/video_decoder_config.h"
#include "ui/gfx/ipc/gfx_param_traits.h"
@@ -30,16 +29,6 @@ IPC_ENUM_TRAITS_MAX_VALUE(media::VideoPixelFormat, media::PIXEL_FORMAT_MAX)
namespace IPC {
-template <>
-struct ParamTraits<media::EncryptionScheme::Pattern> {
- typedef media::EncryptionScheme::Pattern param_type;
- static void Write(base::Pickle* m, const param_type& p);
- static bool Read(const base::Pickle* m, base::PickleIterator* iter,
- param_type* r);
- static void Log(const param_type& p, std::string* l);
-};
-
-
void ParamTraits<media::AudioDecoderConfig>::Write(
base::Pickle* m,
const media::AudioDecoderConfig& p) {
@@ -47,7 +36,7 @@ void ParamTraits<media::AudioDecoderConfig>::Write(
WriteParam(m, p.sample_format());
WriteParam(m, p.channel_layout());
WriteParam(m, p.samples_per_second());
- WriteParam(m, p.encryption_scheme());
+ WriteParam(m, p.is_encrypted());
WriteParam(m, p.extra_data());
}
@@ -59,17 +48,15 @@ bool ParamTraits<media::AudioDecoderConfig>::Read(
media::SampleFormat sample_format;
media::ChannelLayout channel_layout;
int samples_per_second;
- media::EncryptionScheme encryption_scheme;
+ bool is_encrypted;
std::vector<uint8_t> extra_data;
if (!ReadParam(m, iter, &codec) || !ReadParam(m, iter, &sample_format) ||
!ReadParam(m, iter, &channel_layout) ||
!ReadParam(m, iter, &samples_per_second) ||
- !ReadParam(m, iter, &encryption_scheme) ||
- !ReadParam(m, iter, &extra_data))
+ !ReadParam(m, iter, &is_encrypted) || !ReadParam(m, iter, &extra_data))
return false;
*r = media::AudioDecoderConfig(codec, sample_format, channel_layout,
- samples_per_second, extra_data,
- encryption_scheme);
+ samples_per_second, extra_data, is_encrypted);
return true;
}
@@ -88,7 +75,7 @@ void ParamTraits<media::VideoDecoderConfig>::Write(
WriteParam(m, p.coded_size());
WriteParam(m, p.visible_rect());
WriteParam(m, p.natural_size());
- WriteParam(m, p.encryption_scheme());
+ WriteParam(m, p.is_encrypted());
WriteParam(m, p.extra_data());
}
@@ -103,18 +90,17 @@ bool ParamTraits<media::VideoDecoderConfig>::Read(
gfx::Size coded_size;
gfx::Rect visible_rect;
gfx::Size natural_size;
- media::EncryptionScheme encryption_scheme;
+ bool is_encrypted;
std::vector<uint8_t> extra_data;
if (!ReadParam(m, iter, &codec) || !ReadParam(m, iter, &profile) ||
!ReadParam(m, iter, &format) || !ReadParam(m, iter, &color_space) ||
!ReadParam(m, iter, &coded_size) || !ReadParam(m, iter, &visible_rect) ||
!ReadParam(m, iter, &natural_size) ||
- !ReadParam(m, iter, &encryption_scheme) ||
- !ReadParam(m, iter, &extra_data))
+ !ReadParam(m, iter, &is_encrypted) || !ReadParam(m, iter, &extra_data))
return false;
*r = media::VideoDecoderConfig(codec, profile, format, color_space,
coded_size, visible_rect, natural_size,
- extra_data, encryption_scheme);
+ extra_data, is_encrypted);
return true;
}
@@ -123,45 +109,4 @@ void ParamTraits<media::VideoDecoderConfig>::Log(
l->append(base::StringPrintf("<VideoDecoderConfig>"));
}
-void ParamTraits<media::EncryptionScheme>::Write(
- base::Pickle* m, const param_type& p) {
- WriteParam(m, p.mode());
- WriteParam(m, p.pattern());
-}
-
-bool ParamTraits<media::EncryptionScheme>::Read(
- const base::Pickle* m, base::PickleIterator* iter, param_type* r) {
- media::EncryptionScheme::CipherMode mode;
- media::EncryptionScheme::Pattern pattern;
- if (!ReadParam(m, iter, &mode) || !ReadParam(m, iter, &pattern))
- return false;
- *r = media::EncryptionScheme(mode, pattern);
- return true;
-}
-
-void ParamTraits<media::EncryptionScheme>::Log(
- const param_type& p, std::string* l) {
- l->append(base::StringPrintf("<EncryptionScheme>"));
-}
-
-void ParamTraits<media::EncryptionScheme::Pattern>::Write(
- base::Pickle* m, const param_type& p) {
- WriteParam(m, p.encrypt_blocks());
- WriteParam(m, p.skip_blocks());
-}
-
-bool ParamTraits<media::EncryptionScheme::Pattern>::Read(
- const base::Pickle* m, base::PickleIterator* iter, param_type* r) {
- uint32_t encrypt_blocks, skip_blocks;
- if (!ReadParam(m, iter, &encrypt_blocks) || !ReadParam(m, iter, &skip_blocks))
- return false;
- *r = media::EncryptionScheme::Pattern(encrypt_blocks, skip_blocks);
- return true;
-}
-
-void ParamTraits<media::EncryptionScheme::Pattern>::Log(
- const param_type& p, std::string* l) {
- l->append(base::StringPrintf("<Pattern>"));
-}
-
} // namespace IPC
diff --git a/chromecast/common/media/cma_param_traits.h b/chromecast/common/media/cma_param_traits.h
index 879bbf1..c8609a5 100644
--- a/chromecast/common/media/cma_param_traits.h
+++ b/chromecast/common/media/cma_param_traits.h
@@ -10,7 +10,6 @@
namespace media {
class AudioDecoderConfig;
class VideoDecoderConfig;
-class EncryptionScheme;
}
namespace IPC {
@@ -35,15 +34,6 @@ struct ParamTraits<media::VideoDecoderConfig> {
static void Log(const param_type& p, std::string* l);
};
-template <>
-struct ParamTraits<media::EncryptionScheme> {
- typedef media::EncryptionScheme param_type;
- static void Write(base::Pickle* m, const param_type& p);
- static bool Read(const base::Pickle* m, base::PickleIterator* iter,
- param_type* r);
- static void Log(const param_type& p, std::string* l);
-};
-
} // namespace IPC
#endif // CHROMECAST_COMMON_MEDIA_CMA_PARAM_TRAITS_H_
diff --git a/chromecast/common/media/cma_param_traits_macros.h b/chromecast/common/media/cma_param_traits_macros.h
index 2aae996..a25e53f 100644
--- a/chromecast/common/media/cma_param_traits_macros.h
+++ b/chromecast/common/media/cma_param_traits_macros.h
@@ -44,8 +44,6 @@ IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::VideoCodec,
media::VideoCodec::kUnknownVideoCodec,
media::VideoCodec::kVideoCodecMax)
IPC_ENUM_TRAITS_MAX_VALUE(media::ColorSpace, media::COLOR_SPACE_MAX)
-IPC_ENUM_TRAITS_MAX_VALUE(media::EncryptionScheme::CipherMode,
- media::EncryptionScheme::CIPHER_MODE_MAX);
IPC_STRUCT_TRAITS_BEGIN(media::PipelineStatistics)
IPC_STRUCT_TRAITS_MEMBER(audio_bytes_decoded)
diff --git a/chromecast/media/audio/cast_audio_output_stream.cc b/chromecast/media/audio/cast_audio_output_stream.cc
index fc91d50..ec415d7 100644
--- a/chromecast/media/audio/cast_audio_output_stream.cc
+++ b/chromecast/media/audio/cast_audio_output_stream.cc
@@ -47,6 +47,7 @@ MediaPipelineBackend::AudioDecoder* InitializeBackend(
audio_config.bytes_per_channel = audio_params.bits_per_sample() / 8;
audio_config.channel_number = audio_params.channels();
audio_config.samples_per_second = audio_params.sample_rate();
+ audio_config.is_encrypted = false;
if (!decoder->SetConfig(audio_config))
return nullptr;
diff --git a/chromecast/media/audio/cast_audio_output_stream_unittest.cc b/chromecast/media/audio/cast_audio_output_stream_unittest.cc
index 8402a6a..a8ad0f0 100644
--- a/chromecast/media/audio/cast_audio_output_stream_unittest.cc
+++ b/chromecast/media/audio/cast_audio_output_stream_unittest.cc
@@ -385,7 +385,7 @@ TEST_F(CastAudioOutputStreamTest, Format) {
const AudioConfig& audio_config = audio_decoder->config();
EXPECT_EQ(kCodecPCM, audio_config.codec);
EXPECT_EQ(kSampleFormatS16, audio_config.sample_format);
- EXPECT_FALSE(audio_config.encryption_scheme.is_encrypted());
+ EXPECT_FALSE(audio_config.is_encrypted);
CloseStream(stream);
}
diff --git a/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc b/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc
index 18de287..7fd2d1d 100644
--- a/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc
+++ b/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc
@@ -35,7 +35,6 @@
#include "media/base/audio_decoder_config.h"
#include "media/base/audio_timestamp_helper.h"
#include "media/base/decoder_buffer.h"
-#include "media/base/encryption_scheme.h"
#include "media/base/video_decoder_config.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -69,7 +68,7 @@ VideoConfig DefaultVideoConfig() {
default_config.codec = kCodecH264;
default_config.profile = kH264Main;
default_config.additional_config = nullptr;
- default_config.encryption_scheme = Unencrypted();
+ default_config.is_encrypted = false;
return default_config;
}
@@ -565,7 +564,7 @@ scoped_ptr<BufferFeeder> BufferFeeder::LoadVideo(MediaPipelineBackend* backend,
video_config.codec = kCodecH264;
video_config.profile = kH264Main;
video_config.additional_config = nullptr;
- video_config.encryption_scheme = Unencrypted();
+ video_config.is_encrypted = false;
} else {
base::FilePath file_path = GetTestDataFilePath(filename);
DemuxResult demux_result = FFmpegDemuxForTest(file_path, false /* audio */);
diff --git a/chromecast/media/cma/base/decoder_config_adapter.cc b/chromecast/media/cma/base/decoder_config_adapter.cc
index 24e8b41..3a8ab39 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,62 +183,6 @@ VideoProfile ToVideoProfile(const ::media::VideoCodecProfile codec_profile) {
}
}
-::media::EncryptionScheme::CipherMode ToMediaCipherMode(
- EncryptionScheme::CipherMode mode) {
- switch (mode) {
- case EncryptionScheme::CIPHER_MODE_UNENCRYPTED:
- return ::media::EncryptionScheme::CIPHER_MODE_UNENCRYPTED;
- case EncryptionScheme::CIPHER_MODE_AES_CTR:
- return ::media::EncryptionScheme::CIPHER_MODE_AES_CTR;
- case EncryptionScheme::CIPHER_MODE_AES_CBC:
- return ::media::EncryptionScheme::CIPHER_MODE_AES_CBC;
- default:
- NOTREACHED();
- return ::media::EncryptionScheme::CIPHER_MODE_UNENCRYPTED;
- }
-}
-
-EncryptionScheme::CipherMode ToCipherMode(
- ::media::EncryptionScheme::CipherMode mode) {
- switch (mode) {
- case ::media::EncryptionScheme::CIPHER_MODE_UNENCRYPTED:
- return EncryptionScheme::CIPHER_MODE_UNENCRYPTED;
- case ::media::EncryptionScheme::CIPHER_MODE_AES_CTR:
- return EncryptionScheme::CIPHER_MODE_AES_CTR;
- case ::media::EncryptionScheme::CIPHER_MODE_AES_CBC:
- return EncryptionScheme::CIPHER_MODE_AES_CBC;
- default:
- NOTREACHED();
- return EncryptionScheme::CIPHER_MODE_UNENCRYPTED;
- }
-}
-
-EncryptionScheme::Pattern ToPatternSpec(
- const ::media::EncryptionScheme::Pattern& pattern) {
- return EncryptionScheme::Pattern(
- pattern.encrypt_blocks(), pattern.skip_blocks());
-}
-
-::media::EncryptionScheme::Pattern ToMediaPatternSpec(
- const EncryptionScheme::Pattern& pattern) {
- return ::media::EncryptionScheme::Pattern(
- 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
@@ -257,8 +201,7 @@ 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.encryption_scheme = ToEncryptionScheme(
- config.encryption_scheme());
+ audio_config.is_encrypted = config.is_encrypted();
return audio_config;
}
@@ -269,8 +212,7 @@ AudioConfig DecoderConfigAdapter::ToCastAudioConfig(
ToMediaAudioCodec(config.codec),
ToMediaSampleFormat(config.sample_format),
ToMediaChannelLayout(config.channel_number), config.samples_per_second,
- config.extra_data,
- ToMediaEncryptionScheme(config.encryption_scheme));
+ config.extra_data, config.is_encrypted);
}
// static
@@ -286,8 +228,7 @@ VideoConfig DecoderConfigAdapter::ToCastVideoConfig(
video_config.codec = ToVideoCodec(config.codec());
video_config.profile = ToVideoProfile(config.profile());
video_config.extra_data = config.extra_data();
- video_config.encryption_scheme = ToEncryptionScheme(
- config.encryption_scheme());
+ video_config.is_encrypted = config.is_encrypted();
return video_config;
}
diff --git a/chromecast/media/cma/base/demuxer_stream_for_test.cc b/chromecast/media/cma/base/demuxer_stream_for_test.cc
index 32ee27b..9942545 100644
--- a/chromecast/media/cma/base/demuxer_stream_for_test.cc
+++ b/chromecast/media/cma/base/demuxer_stream_for_test.cc
@@ -63,7 +63,7 @@ void DemuxerStreamForTest::Read(const ReadCB& read_cb) {
visible_rect,
natural_size,
::media::EmptyExtraData(),
- ::media::Unencrypted());
+ false);
}
::media::DemuxerStream::Type DemuxerStreamForTest::type() const {
diff --git a/chromecast/media/cma/ipc_streamer/BUILD.gn b/chromecast/media/cma/ipc_streamer/BUILD.gn
index 7d25f45..a3429d6 100644
--- a/chromecast/media/cma/ipc_streamer/BUILD.gn
+++ b/chromecast/media/cma/ipc_streamer/BUILD.gn
@@ -14,8 +14,6 @@ source_set("ipc_streamer") {
"decoder_buffer_base_marshaller.h",
"decrypt_config_marshaller.cc",
"decrypt_config_marshaller.h",
- "encryption_scheme_marshaller.cc",
- "encryption_scheme_marshaller.h",
"video_decoder_config_marshaller.cc",
"video_decoder_config_marshaller.h",
]
diff --git a/chromecast/media/cma/ipc_streamer/audio_decoder_config_marshaller.cc b/chromecast/media/cma/ipc_streamer/audio_decoder_config_marshaller.cc
index 031571a..2798c6b 100644
--- a/chromecast/media/cma/ipc_streamer/audio_decoder_config_marshaller.cc
+++ b/chromecast/media/cma/ipc_streamer/audio_decoder_config_marshaller.cc
@@ -11,7 +11,6 @@
#include "base/logging.h"
#include "chromecast/media/cma/ipc/media_message.h"
-#include "chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.h"
#include "media/base/audio_decoder_config.h"
namespace chromecast {
@@ -28,7 +27,7 @@ void AudioDecoderConfigMarshaller::Write(
CHECK(msg->WritePod(config.channel_layout()));
CHECK(msg->WritePod(config.samples_per_second()));
CHECK(msg->WritePod(config.sample_format()));
- EncryptionSchemeMarshaller::Write(config.encryption_scheme(), msg);
+ CHECK(msg->WritePod(config.is_encrypted()));
CHECK(msg->WritePod(config.extra_data().size()));
if (!config.extra_data().empty())
CHECK(msg->WriteBuffer(&config.extra_data()[0],
@@ -42,15 +41,15 @@ void AudioDecoderConfigMarshaller::Write(
::media::SampleFormat sample_format;
::media::ChannelLayout channel_layout;
int samples_per_second;
+ bool is_encrypted;
size_t extra_data_size;
std::vector<uint8_t> extra_data;
- ::media::EncryptionScheme encryption_scheme;
CHECK(msg->ReadPod(&codec));
CHECK(msg->ReadPod(&channel_layout));
CHECK(msg->ReadPod(&samples_per_second));
CHECK(msg->ReadPod(&sample_format));
- encryption_scheme = EncryptionSchemeMarshaller::Read(msg);
+ CHECK(msg->ReadPod(&is_encrypted));
CHECK(msg->ReadPod(&extra_data_size));
CHECK_GE(codec, ::media::kUnknownAudioCodec);
@@ -68,7 +67,7 @@ void AudioDecoderConfigMarshaller::Write(
return ::media::AudioDecoderConfig(
codec, sample_format,
channel_layout, samples_per_second,
- extra_data, encryption_scheme);
+ extra_data, is_encrypted);
}
} // namespace media
diff --git a/chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.cc b/chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.cc
deleted file mode 100644
index a88cfc5..0000000
--- a/chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.h"
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "chromecast/media/cma/ipc/media_message.h"
-
-namespace chromecast {
-namespace media {
-
-namespace {
-
-class PatternSpecMarshaller {
- public:
- static void Write(const ::media::EncryptionScheme::Pattern& pattern,
- MediaMessage* msg) {
- CHECK(msg->WritePod(pattern.encrypt_blocks()));
- CHECK(msg->WritePod(pattern.skip_blocks()));
- }
-
- static ::media::EncryptionScheme::Pattern Read(MediaMessage* msg) {
- uint32_t encrypt_blocks;
- uint32_t skip_blocks;
- CHECK(msg->ReadPod(&encrypt_blocks));
- CHECK(msg->ReadPod(&skip_blocks));
- return ::media::EncryptionScheme::Pattern(encrypt_blocks, skip_blocks);
- }
-};
-
-} // namespace
-
-// static
-void EncryptionSchemeMarshaller::Write(
- const ::media::EncryptionScheme& encryption_scheme,
- MediaMessage* msg) {
- CHECK(msg->WritePod(encryption_scheme.mode()));
- PatternSpecMarshaller::Write(encryption_scheme.pattern(), msg);
-}
-
-// static
-::media::EncryptionScheme EncryptionSchemeMarshaller::Read(MediaMessage* msg) {
- ::media::EncryptionScheme::CipherMode mode;
- ::media::EncryptionScheme::Pattern pattern;
- CHECK(msg->ReadPod(&mode));
- pattern = PatternSpecMarshaller::Read(msg);
- return ::media::EncryptionScheme(mode, pattern);
-}
-
-} // namespace media
-} // namespace chromecast
diff --git a/chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.h b/chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.h
deleted file mode 100644
index 0b3371b..0000000
--- a/chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROMECAST_MEDIA_CMA_IPC_STREAMER_ENCRYPTION_SCHEME_MARSHALLER_H_
-#define CHROMECAST_MEDIA_CMA_IPC_STREAMER_ENCRYPTION_SCHEME_MARSHALLER_H_
-
-#include "media/base/encryption_scheme.h"
-
-namespace chromecast {
-namespace media {
-class MediaMessage;
-
-class EncryptionSchemeMarshaller {
- public:
- // Writes the serialized structure of |encryption_scheme| into |msg|.
- static void Write(
- const ::media::EncryptionScheme& encryption_scheme, MediaMessage* msg);
-
- // Returns an EncryptionScheme from its serialized structure.
- static ::media::EncryptionScheme Read(MediaMessage* msg);
-};
-
-} // namespace media
-} // namespace chromecast
-
-#endif // CHROMECAST_MEDIA_CMA_IPC_STREAMER_ENCRYPTION_SCHEME_MARSHALLER_H_
diff --git a/chromecast/media/cma/ipc_streamer/video_decoder_config_marshaller.cc b/chromecast/media/cma/ipc_streamer/video_decoder_config_marshaller.cc
index a471eb6..b2e9aaa 100644
--- a/chromecast/media/cma/ipc_streamer/video_decoder_config_marshaller.cc
+++ b/chromecast/media/cma/ipc_streamer/video_decoder_config_marshaller.cc
@@ -11,7 +11,6 @@
#include "base/logging.h"
#include "chromecast/media/cma/ipc/media_message.h"
-#include "chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.h"
#include "media/base/video_decoder_config.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
@@ -68,7 +67,7 @@ void VideoDecoderConfigMarshaller::Write(
SizeMarshaller::Write(config.coded_size(), msg);
RectMarshaller::Write(config.visible_rect(), msg);
SizeMarshaller::Write(config.natural_size(), msg);
- EncryptionSchemeMarshaller::Write(config.encryption_scheme(), msg);
+ CHECK(msg->WritePod(config.is_encrypted()));
CHECK(msg->WritePod(config.extra_data().size()));
if (!config.extra_data().empty())
CHECK(msg->WriteBuffer(&config.extra_data()[0],
@@ -85,8 +84,8 @@ void VideoDecoderConfigMarshaller::Write(
gfx::Size coded_size;
gfx::Rect visible_rect;
gfx::Size natural_size;
+ bool is_encrypted;
size_t extra_data_size;
- ::media::EncryptionScheme encryption_scheme;
std::vector<uint8_t> extra_data;
CHECK(msg->ReadPod(&codec));
@@ -96,7 +95,7 @@ void VideoDecoderConfigMarshaller::Write(
coded_size = SizeMarshaller::Read(msg);
visible_rect = RectMarshaller::Read(msg);
natural_size = SizeMarshaller::Read(msg);
- encryption_scheme = EncryptionSchemeMarshaller::Read(msg);
+ CHECK(msg->ReadPod(&is_encrypted));
CHECK(msg->ReadPod(&extra_data_size));
CHECK_GE(codec, ::media::kUnknownVideoCodec);
@@ -116,7 +115,7 @@ void VideoDecoderConfigMarshaller::Write(
return ::media::VideoDecoderConfig(
codec, profile, format, color_space,
coded_size, visible_rect, natural_size,
- extra_data, encryption_scheme);
+ extra_data, is_encrypted);
}
} // namespace media
diff --git a/chromecast/media/cma/pipeline/audio_decoder_software_wrapper.cc b/chromecast/media/cma/pipeline/audio_decoder_software_wrapper.cc
index a1cdf95..4b15bcc 100644
--- a/chromecast/media/cma/pipeline/audio_decoder_software_wrapper.cc
+++ b/chromecast/media/cma/pipeline/audio_decoder_software_wrapper.cc
@@ -59,7 +59,7 @@ bool AudioDecoderSoftwareWrapper::SetConfig(const AudioConfig& config) {
return true;
}
- if (config.is_encrypted() || !CreateSoftwareDecoder(config))
+ if (config.is_encrypted || !CreateSoftwareDecoder(config))
return false;
output_config_.codec = media::kCodecPCM;
@@ -67,7 +67,7 @@ bool AudioDecoderSoftwareWrapper::SetConfig(const AudioConfig& config) {
output_config_.channel_number = 2;
output_config_.bytes_per_channel = 2;
output_config_.samples_per_second = config.samples_per_second;
- output_config_.encryption_scheme = Unencrypted();
+ output_config_.is_encrypted = false;
return backend_decoder_->SetConfig(output_config_);
}
diff --git a/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc b/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
index eba1961..bd747dd 100644
--- a/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
+++ b/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
@@ -66,7 +66,7 @@ class AudioVideoPipelineImplTest
::media::AudioDecoderConfig audio_config(
::media::kCodecMP3, ::media::kSampleFormatS16,
::media::CHANNEL_LAYOUT_STEREO, 44100, ::media::EmptyExtraData(),
- ::media::Unencrypted());
+ false);
AvPipelineClient client;
client.eos_cb = base::Bind(&AudioVideoPipelineImplTest::OnEos,
base::Unretained(this), STREAM_AUDIO);
@@ -80,7 +80,7 @@ class AudioVideoPipelineImplTest
::media::kCodecH264, ::media::H264PROFILE_MAIN,
::media::PIXEL_FORMAT_I420, ::media::COLOR_SPACE_UNSPECIFIED,
gfx::Size(640, 480), gfx::Rect(0, 0, 640, 480), gfx::Size(640, 480),
- ::media::EmptyExtraData(), ::media::Unencrypted()));
+ ::media::EmptyExtraData(), false));
VideoPipelineClient client;
client.av_pipeline_client.eos_cb =
base::Bind(&AudioVideoPipelineImplTest::OnEos, base::Unretained(this),
diff --git a/chromecast/media/cma/test/mock_frame_provider.cc b/chromecast/media/cma/test/mock_frame_provider.cc
index 16d6393..fdab889 100644
--- a/chromecast/media/cma/test/mock_frame_provider.cc
+++ b/chromecast/media/cma/test/mock_frame_provider.cc
@@ -82,7 +82,7 @@ void MockFrameProvider::DoRead(const ReadCB& read_cb) {
::media::kCodecH264, ::media::VIDEO_CODEC_PROFILE_UNKNOWN,
::media::PIXEL_FORMAT_YV12, ::media::COLOR_SPACE_UNSPECIFIED,
coded_size, visible_rect, natural_size, ::media::EmptyExtraData(),
- ::media::Unencrypted());
+ false);
audio_config = ::media::AudioDecoderConfig(
::media::kCodecAAC,
@@ -90,7 +90,7 @@ void MockFrameProvider::DoRead(const ReadCB& read_cb) {
::media::CHANNEL_LAYOUT_STEREO,
44100,
::media::EmptyExtraData(),
- ::media::Unencrypted());
+ false);
}
read_cb.Run(buffer, audio_config, video_config);
diff --git a/chromecast/media/media.gyp b/chromecast/media/media.gyp
index 077ea0c..6cabfc7 100644
--- a/chromecast/media/media.gyp
+++ b/chromecast/media/media.gyp
@@ -229,8 +229,6 @@
'cma/ipc_streamer/decoder_buffer_base_marshaller.h',
'cma/ipc_streamer/decrypt_config_marshaller.cc',
'cma/ipc_streamer/decrypt_config_marshaller.h',
- 'cma/ipc_streamer/encryption_scheme_marshaller.cc',
- 'cma/ipc_streamer/encryption_scheme_marshaller.h',
'cma/ipc_streamer/video_decoder_config_marshaller.cc',
'cma/ipc_streamer/video_decoder_config_marshaller.h',
],
diff --git a/chromecast/public/media/decoder_config.h b/chromecast/public/media/decoder_config.h
index b82c5c1..261b3f1 100644
--- a/chromecast/public/media/decoder_config.h
+++ b/chromecast/public/media/decoder_config.h
@@ -93,78 +93,13 @@ enum VideoProfile {
kVideoProfileMax = kDolbyVisionNonCompatible_BL_EL_MD,
};
-// Specification of whether and how the stream is encrypted (in whole or part).
-struct EncryptionScheme {
- // Algorithm and mode that was used to encrypt the stream.
- enum CipherMode {
- CIPHER_MODE_UNENCRYPTED,
- CIPHER_MODE_AES_CTR,
- CIPHER_MODE_AES_CBC
- };
-
- // CENC 3rd Edition adds pattern encryption, through two new protection
- // schemes: 'cens' (with AES-CTR) and 'cbcs' (with AES-CBC).
- // The pattern applies independently to each 'encrypted' part of the frame (as
- // defined by the relevant subsample entries), and reduces further the
- // actual encryption applied through a repeating pattern of (encrypt:skip)
- // 16 byte blocks. For example, in a (1:9) pattern, the first block is
- // encrypted, and the next nine are skipped. This pattern is applied
- // repeatedly until the end of the last 16-byte block in the subsample.
- // Any remaining bytes are left clear.
- // If either of encrypt_blocks or skip_blocks is 0, pattern encryption is
- // disabled.
- struct Pattern {
- Pattern() {}
- Pattern(uint32_t encrypt_blocks, uint32_t skip_blocks);
- ~Pattern() {}
- bool IsInEffect() const;
-
- uint32_t encrypt_blocks = 0;
- uint32_t skip_blocks = 0;
- };
-
- EncryptionScheme() {}
- EncryptionScheme(CipherMode mode, const Pattern& pattern);
- ~EncryptionScheme() {}
- bool is_encrypted() const { return mode != CIPHER_MODE_UNENCRYPTED; }
-
- CipherMode mode = CIPHER_MODE_UNENCRYPTED;
- Pattern pattern;
-};
-
-inline EncryptionScheme::Pattern::Pattern(uint32_t encrypt_blocks,
- uint32_t skip_blocks)
- : encrypt_blocks(encrypt_blocks), skip_blocks(skip_blocks) {
-}
-
-inline bool EncryptionScheme::Pattern::IsInEffect() const {
- return encrypt_blocks != 0 && skip_blocks != 0;
-}
-
-inline EncryptionScheme::EncryptionScheme(CipherMode mode,
- const Pattern& pattern)
- : mode(mode), pattern(pattern) {
-}
-
-inline EncryptionScheme Unencrypted() {
- return EncryptionScheme();
-}
-
-inline EncryptionScheme AesCtrEncryptionScheme() {
- return EncryptionScheme(EncryptionScheme::CIPHER_MODE_AES_CTR,
- EncryptionScheme::Pattern());
-}
-
-
-// TODO(erickung): Remove constructor once CMA backend implementation doesn't
+// TODO(erickung): Remove constructor once CMA backend implementation does't
// create a new object to reset the configuration and use IsValidConfig() to
// determine if the configuration is still valid or not.
struct AudioConfig {
AudioConfig();
~AudioConfig();
- bool is_encrypted() const { return encryption_scheme.is_encrypted(); }
-
// Stream id.
StreamId id;
// Audio codec.
@@ -179,8 +114,8 @@ struct AudioConfig {
int samples_per_second;
// Extra data buffer for certain codec initialization.
std::vector<uint8_t> extra_data;
- // Encryption scheme (if any) used for the content.
- EncryptionScheme encryption_scheme;
+ // content is encrypted or not.
+ bool is_encrypted;
};
inline AudioConfig::AudioConfig()
@@ -189,7 +124,8 @@ inline AudioConfig::AudioConfig()
sample_format(kUnknownSampleFormat),
bytes_per_channel(0),
channel_number(0),
- samples_per_second(0) {
+ samples_per_second(0),
+ is_encrypted(false) {
}
inline AudioConfig::~AudioConfig() {
@@ -202,8 +138,6 @@ struct VideoConfig {
VideoConfig();
~VideoConfig();
- bool is_encrypted() const { return encryption_scheme.is_encrypted(); }
-
// Stream Id.
StreamId id;
// Video codec.
@@ -216,15 +150,16 @@ struct VideoConfig {
VideoConfig* additional_config;
// Extra data buffer for certain codec initialization.
std::vector<uint8_t> extra_data;
- // Encryption scheme (if any) used for the content.
- EncryptionScheme encryption_scheme;
+ // content is encrypted or not.
+ bool is_encrypted;
};
inline VideoConfig::VideoConfig()
: id(kPrimary),
codec(kVideoCodecUnknown),
profile(kVideoProfileUnknown),
- additional_config(nullptr) {
+ additional_config(nullptr),
+ is_encrypted(false) {
}
inline VideoConfig::~VideoConfig() {