| // Copyright 2018 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_pattern.h" |
| |
| namespace cobalt { |
| namespace media { |
| |
| EncryptionPattern::EncryptionPattern() = default; |
| |
| EncryptionPattern::EncryptionPattern(uint32_t crypt_byte_block, |
| uint32_t skip_byte_block) |
| : crypt_byte_block_(crypt_byte_block), skip_byte_block_(skip_byte_block) {} |
| |
| EncryptionPattern::EncryptionPattern(const EncryptionPattern& rhs) = default; |
| |
| EncryptionPattern& EncryptionPattern::operator=(const EncryptionPattern& rhs) = |
| default; |
| |
| EncryptionPattern::~EncryptionPattern() = default; |
| |
| bool EncryptionPattern::Matches(const EncryptionPattern& other) const { |
| return crypt_byte_block_ == other.crypt_byte_block() && |
| skip_byte_block_ == other.skip_byte_block(); |
| } |
| |
| bool EncryptionPattern::IsInEffect() const { |
| // ISO/IEC 23001-7(2016), section 10.3, discussing 'cens' pattern encryption |
| // scheme, states "Tracks other than video are protected using whole-block |
| // full-sample encryption as specified in 9.7 and hence skip_byte_block |
| // SHALL be 0." So pattern is in effect as long as |crypt_byte_block_| is set. |
| return crypt_byte_block_ != 0; |
| } |
| |
| bool EncryptionPattern::operator==(const EncryptionPattern& other) const { |
| return crypt_byte_block_ == other.crypt_byte_block_ && |
| skip_byte_block_ == other.skip_byte_block_; |
| } |
| |
| bool EncryptionPattern::operator!=(const EncryptionPattern& other) const { |
| return !operator==(other); |
| } |
| |
| } // namespace media |
| } // namespace cobalt |