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_