1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef MEDIA_WEBM_WEBM_CONTENT_ENCODINGS_H_
6 #define MEDIA_WEBM_WEBM_CONTENT_ENCODINGS_H_
10 #include "base/basictypes.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "media/base/media_export.h"
16 class MEDIA_EXPORT ContentEncoding {
18 // The following enum definitions are based on the ContentEncoding element
19 // specified in the Matroska spec.
21 static const int kOrderInvalid = -1;
25 kScopeAllFrameContents = 1,
26 kScopeTrackPrivateData = 2,
27 kScopeNextContentEncodingData = 4,
39 kEncAlgoNotEncrypted = 0,
48 kCipherModeInvalid = 0,
55 int64 order() const { return order_; }
56 void set_order(int64 order) { order_ = order; }
58 Scope scope() const { return scope_; }
59 void set_scope(Scope scope) { scope_ = scope; }
61 Type type() const { return type_; }
62 void set_type(Type type) { type_ = type; }
64 EncryptionAlgo encryption_algo() const { return encryption_algo_; }
65 void set_encryption_algo(EncryptionAlgo encryption_algo) {
66 encryption_algo_ = encryption_algo;
69 const std::string& encryption_key_id() const { return encryption_key_id_; }
70 void SetEncryptionKeyId(const uint8* encryption_key_id, int size);
72 CipherMode cipher_mode() const { return cipher_mode_; }
73 void set_cipher_mode(CipherMode mode) { cipher_mode_ = mode; }
79 EncryptionAlgo encryption_algo_;
80 std::string encryption_key_id_;
81 CipherMode cipher_mode_;
83 DISALLOW_COPY_AND_ASSIGN(ContentEncoding);
88 #endif // MEDIA_WEBM_WEBM_CONTENT_ENCODINGS_H_