Index: media/base/encryption_scheme.cc |
diff --git a/media/base/encryption_scheme.cc b/media/base/encryption_scheme.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bae11c8530b831e13050e07aef07b5123c4518dc |
--- /dev/null |
+++ b/media/base/encryption_scheme.cc |
@@ -0,0 +1,50 @@ |
+// 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 "media/base/encryption_scheme.h" |
+ |
+namespace media { |
+ |
+EncryptionScheme::PatternSpec::PatternSpec() |
+ : encrypt_blocks_(0), skip_blocks_(0) {} |
+ |
+EncryptionScheme::PatternSpec::PatternSpec(uint32_t encrypt_blocks, |
+ uint32_t skip_blocks) |
+ : encrypt_blocks_(encrypt_blocks), skip_blocks_(skip_blocks) {} |
+ |
+EncryptionScheme::PatternSpec::~PatternSpec() {} |
+ |
+bool EncryptionScheme::PatternSpec::Matches(const PatternSpec& other) const { |
+ return encrypt_blocks_ == other.encrypt_blocks() && |
+ skip_blocks_ == other.skip_blocks(); |
+} |
+ |
+bool EncryptionScheme::PatternSpec::IsInEffect() const { |
+ return encrypt_blocks_ != 0 && skip_blocks_ != 0; |
+} |
+ |
+EncryptionScheme::EncryptionScheme() |
+ : mode_(kCipherModeUnencrypted), pattern_() {} |
+ |
+EncryptionScheme::EncryptionScheme(CipherMode mode) : mode_(mode), pattern_() {} |
+ |
+EncryptionScheme::EncryptionScheme(CipherMode mode, const PatternSpec& pattern) |
+ : mode_(mode), pattern_(pattern) {} |
+ |
+EncryptionScheme::~EncryptionScheme() {} |
+ |
+// static |
+EncryptionScheme EncryptionScheme::Unencrypted() { |
+ return EncryptionScheme(kCipherModeUnencrypted); |
+} |
+ |
+bool EncryptionScheme::Matches(const EncryptionScheme& other) const { |
+ return mode_ == other.mode_ && pattern_.Matches(other.pattern_); |
+} |
+ |
+bool EncryptionScheme::is_encrypted() const { |
+ return mode_ != kCipherModeUnencrypted; |
+} |
+ |
+} // namespace media |