blob: dea08ed5d51ca8f7291299544f11135d8ff5b2be [file] [log] [blame]
// 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::Pattern::Pattern() {}
EncryptionScheme::Pattern::Pattern(uint32_t encrypt_blocks,
uint32_t skip_blocks)
: encrypt_blocks_(encrypt_blocks), skip_blocks_(skip_blocks) {}
EncryptionScheme::Pattern::~Pattern() {}
uint32_t EncryptionScheme::Pattern::encrypt_blocks() const {
return encrypt_blocks_;
}
uint32_t EncryptionScheme::Pattern::skip_blocks() const {
return skip_blocks_;
}
bool EncryptionScheme::Pattern::Matches(const Pattern& other) const {
return encrypt_blocks_ == other.encrypt_blocks() &&
skip_blocks_ == other.skip_blocks();
}
bool EncryptionScheme::Pattern::IsInEffect() const {
return encrypt_blocks_ != 0 && skip_blocks_ != 0;
}
EncryptionScheme::EncryptionScheme() {}
EncryptionScheme::EncryptionScheme(CipherMode mode, const Pattern& pattern)
: mode_(mode), pattern_(pattern) {}
EncryptionScheme::~EncryptionScheme() {}
bool EncryptionScheme::is_encrypted() const {
return mode_ != CIPHER_MODE_UNENCRYPTED;
}
EncryptionScheme::CipherMode EncryptionScheme::mode() const {
return mode_;
}
const EncryptionScheme::Pattern& EncryptionScheme::pattern() const {
return pattern_;
}
bool EncryptionScheme::Matches(const EncryptionScheme& other) const {
return mode_ == other.mode_ && pattern_.Matches(other.pattern_);
}
} // namespace media