Shaka Packager SDK
Loading...
Searching...
No Matches
webm_content_encodings.h
1// Copyright 2014 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.
4
5#ifndef PACKAGER_MEDIA_FORMATS_WEBM_WEBM_CONTENT_ENCODINGS_H_
6#define PACKAGER_MEDIA_FORMATS_WEBM_WEBM_CONTENT_ENCODINGS_H_
7
8#include <cstdint>
9#include <memory>
10#include <string>
11
12namespace shaka {
13namespace media {
14
16 public:
19
20 static const int kOrderInvalid = -1;
21
22 enum Scope {
23 kScopeInvalid = 0,
24 kScopeAllFrameContents = 1,
25 kScopeTrackPrivateData = 2,
26 kScopeNextContentEncodingData = 4,
27 kScopeMax = 7,
28 };
29
30 enum Type {
31 kTypeInvalid = -1,
32 kTypeCompression = 0,
33 kTypeEncryption = 1,
34 };
35
36 enum EncryptionAlgo {
37 kEncAlgoInvalid = -1,
38 kEncAlgoNotEncrypted = 0,
39 kEncAlgoDes = 1,
40 kEncAlgo3des = 2,
41 kEncAlgoTwofish = 3,
42 kEncAlgoBlowfish = 4,
43 kEncAlgoAes = 5,
44 };
45
46 enum CipherMode {
47 kCipherModeInvalid = 0,
48 kCipherModeCtr = 1,
49 };
50
51 ContentEncoding();
52 ~ContentEncoding();
53
54 int64_t order() const { return order_; }
55 void set_order(int64_t order) { order_ = order; }
56
57 Scope scope() const { return scope_; }
58 void set_scope(Scope scope) { scope_ = scope; }
59
60 Type type() const { return type_; }
61 void set_type(Type type) { type_ = type; }
62
63 EncryptionAlgo encryption_algo() const { return encryption_algo_; }
64 void set_encryption_algo(EncryptionAlgo encryption_algo) {
65 encryption_algo_ = encryption_algo;
66 }
67
68 const std::string& encryption_key_id() const { return encryption_key_id_; }
69 void SetEncryptionKeyId(const uint8_t* encryption_key_id, int size);
70
71 CipherMode cipher_mode() const { return cipher_mode_; }
72 void set_cipher_mode(CipherMode mode) { cipher_mode_ = mode; }
73
74 private:
75 ContentEncoding(const ContentEncoding&) = delete;
76 ContentEncoding& operator=(const ContentEncoding&) = delete;
77
78 int64_t order_;
79 Scope scope_;
80 Type type_;
81 EncryptionAlgo encryption_algo_;
82 std::string encryption_key_id_;
83 CipherMode cipher_mode_;
84};
85
86} // namespace media
87} // namespace shaka
88
89#endif // PACKAGER_MEDIA_FORMATS_WEBM_WEBM_CONTENT_ENCODINGS_H_
All the methods that are virtual are virtual for mocking.