Shaka Packager SDK
fourccs.h
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.
4 
5 #ifndef PACKAGER_MEDIA_BASE_FOURCCS_H_
6 #define PACKAGER_MEDIA_BASE_FOURCCS_H_
7 
8 #include <cstdint>
9 #include <string>
10 
11 namespace shaka {
12 namespace media {
13 
14 enum FourCC : uint32_t {
15  FOURCC_NULL = 0,
16 
17  FOURCC_ID32 = 0x49443332,
18  FOURCC_Head = 0x48656164,
19  FOURCC_Opus = 0x4f707573,
20  FOURCC_PRIV = 0x50524956,
21 
22  FOURCC_aacd = 0x61616364,
23  FOURCC_ac_3 = 0x61632d33, // "ac-3"
24  FOURCC_ac_4 = 0x61632d34, // "ac-4"
25  FOURCC_ac3d = 0x61633364,
26  FOURCC_alac = 0x616c6163,
27  FOURCC_apad = 0x61706164,
28  FOURCC_av01 = 0x61763031,
29  FOURCC_av1C = 0x61763143,
30  FOURCC_avc1 = 0x61766331,
31  FOURCC_avc3 = 0x61766333,
32  FOURCC_avcC = 0x61766343,
33  FOURCC_bloc = 0x626C6F63,
34  FOURCC_cbc1 = 0x63626331,
35  // This is a fake protection scheme fourcc code to indicate Apple Sample AES.
36  FOURCC_cbca = 0x63626361,
37  FOURCC_cbcs = 0x63626373,
38  FOURCC_cenc = 0x63656e63,
39  FOURCC_cens = 0x63656e73,
40  FOURCC_colr = 0x636f6c72,
41  FOURCC_co64 = 0x636f3634,
42  FOURCC_cmfc = 0x636d6663,
43  FOURCC_cmfs = 0x636d6673,
44  FOURCC_ctim = 0x6374696d,
45  FOURCC_ctts = 0x63747473,
46  FOURCC_dOps = 0x644f7073,
47  FOURCC_dac3 = 0x64616333,
48  FOURCC_dac4 = 0x64616334,
49  FOURCC_dash = 0x64617368,
50  FOURCC_dav1 = 0x64617631,
51  FOURCC_db1p = 0x64623170,
52  FOURCC_db2g = 0x64623267,
53  FOURCC_db4g = 0x64623467,
54  FOURCC_db4h = 0x64623468,
55  FOURCC_dby1 = 0x64627931,
56  FOURCC_ddts = 0x64647473,
57  FOURCC_dec3 = 0x64656333,
58  FOURCC_dfLa = 0x64664c61,
59  FOURCC_dinf = 0x64696e66,
60  FOURCC_dref = 0x64726566,
61  FOURCC_dtsc = 0x64747363,
62  FOURCC_dtse = 0x64747365,
63  FOURCC_dtsh = 0x64747368,
64  FOURCC_dtsl = 0x6474736c,
65  FOURCC_dtsm = 0x6474732d, // "dts-"
66  FOURCC_dtsp = 0x6474732b, // "dts+"
67  FOURCC_dtsx = 0x64747378, // "dtsx"
68  FOURCC_dvcC = 0x64766343,
69  FOURCC_dvh1 = 0x64766831,
70  FOURCC_dvhe = 0x64766865,
71  FOURCC_dvvC = 0x64767643,
72  FOURCC_ec_3 = 0x65632d33, // "ec-3"
73  FOURCC_ec3d = 0x65633364,
74  FOURCC_edts = 0x65647473,
75  FOURCC_elst = 0x656c7374,
76  FOURCC_enca = 0x656e6361,
77  FOURCC_encv = 0x656e6376,
78  FOURCC_esds = 0x65736473,
79  FOURCC_fLaC = 0x664c6143,
80  FOURCC_free = 0x66726565,
81  FOURCC_frma = 0x66726d61,
82  FOURCC_ftyp = 0x66747970,
83  FOURCC_hdlr = 0x68646c72,
84  FOURCC_hev1 = 0x68657631,
85  FOURCC_hint = 0x68696e74,
86  FOURCC_hvc1 = 0x68766331,
87  FOURCC_hvcC = 0x68766343,
88  FOURCC_hvcE = 0x68766345,
89  FOURCC_iamf = 0x69616d66,
90  FOURCC_iacb = 0x69616362,
91  FOURCC_iden = 0x6964656e,
92  FOURCC_ipcm = 0x6970636d,
93  FOURCC_iso6 = 0x69736f36,
94  FOURCC_iso8 = 0x69736f38,
95  FOURCC_isom = 0x69736f6d,
96  FOURCC_iods = 0x696f6473,
97  FOURCC_mdat = 0x6d646174,
98  FOURCC_mdhd = 0x6d646864,
99  FOURCC_mdia = 0x6d646961,
100  FOURCC_meco = 0x6d65636f,
101  FOURCC_mehd = 0x6d656864,
102  FOURCC_meta = 0x6d657461,
103  FOURCC_mfhd = 0x6d666864,
104  FOURCC_mfra = 0x6d667261,
105  FOURCC_mha1 = 0x6d686131,
106  FOURCC_mhaC = 0x6d686143,
107  FOURCC_mhm1 = 0x6d686d31,
108  FOURCC_minf = 0x6d696e66,
109  FOURCC_moof = 0x6d6f6f66,
110  FOURCC_moov = 0x6d6f6f76,
111  FOURCC_mp3a = 0x6d703361,
112  FOURCC_mp41 = 0x6d703431,
113  FOURCC_mp4a = 0x6d703461,
114  FOURCC_mp4v = 0x6d703476,
115  FOURCC_mvex = 0x6d766578,
116  FOURCC_mvhd = 0x6d766864,
117  FOURCC_nclc = 0x6e636c63,
118  FOURCC_nclx = 0x6e636c78,
119  FOURCC_nmhd = 0x6e6d6864,
120  FOURCC_pasp = 0x70617370,
121  FOURCC_payl = 0x7061796c,
122  FOURCC_pdin = 0x7064696e,
123  FOURCC_prft = 0x70726674,
124  FOURCC_pssh = 0x70737368,
125  FOURCC_roll = 0x726f6c6c,
126  FOURCC_saio = 0x7361696f,
127  FOURCC_saiz = 0x7361697a,
128  FOURCC_sbgp = 0x73626770,
129  FOURCC_schi = 0x73636869,
130  FOURCC_schm = 0x7363686d,
131  FOURCC_sdtp = 0x73647470,
132  FOURCC_seig = 0x73656967,
133  FOURCC_senc = 0x73656e63,
134  FOURCC_sgpd = 0x73677064,
135  FOURCC_sidx = 0x73696478,
136  FOURCC_sinf = 0x73696e66,
137  FOURCC_skip = 0x736b6970,
138  FOURCC_smhd = 0x736d6864,
139  FOURCC_soun = 0x736f756e,
140  FOURCC_ssix = 0x73736978,
141  FOURCC_stbl = 0x7374626c,
142  FOURCC_stco = 0x7374636f,
143  FOURCC_sthd = 0x73746864,
144  FOURCC_stpp = 0x73747070,
145  FOURCC_stsc = 0x73747363,
146  FOURCC_stsd = 0x73747364,
147  FOURCC_stss = 0x73747373,
148  FOURCC_stsz = 0x7374737a,
149  FOURCC_sttg = 0x73747467,
150  FOURCC_stts = 0x73747473,
151  FOURCC_styp = 0x73747970,
152  FOURCC_stz2 = 0x73747a32,
153  FOURCC_subt = 0x73756274,
154  FOURCC_tenc = 0x74656e63,
155  FOURCC_text = 0x74657874,
156  FOURCC_tfdt = 0x74666474,
157  FOURCC_tfhd = 0x74666864,
158  FOURCC_tkhd = 0x746b6864,
159  FOURCC_traf = 0x74726166,
160  FOURCC_trak = 0x7472616b,
161  FOURCC_trex = 0x74726578,
162  FOURCC_trun = 0x7472756e,
163  FOURCC_udta = 0x75647461,
164  FOURCC_udts = 0x75647473, // "udts"
165  FOURCC_url = 0x75726c20, // "url "
166  FOURCC_urn = 0x75726e20, // "urn "
167  FOURCC_uuid = 0x75756964,
168  FOURCC_vide = 0x76696465,
169  FOURCC_vlab = 0x766c6162,
170  FOURCC_vmhd = 0x766d6864,
171  FOURCC_vp08 = 0x76703038,
172  FOURCC_vp09 = 0x76703039,
173  FOURCC_vpcC = 0x76706343,
174  FOURCC_vsid = 0x76736964,
175  FOURCC_vttC = 0x76747443,
176  FOURCC_vtta = 0x76747461,
177  FOURCC_vttc = 0x76747463,
178  FOURCC_vtte = 0x76747465,
179  FOURCC_wide = 0x77696465,
180  FOURCC_wvtt = 0x77767474,
181  FOURCC_zaac = 0x7A616163,
182  FOURCC_zac3 = 0x7A616333,
183  FOURCC_zach = 0x7A616368,
184  FOURCC_zacp = 0x7A616370,
185  FOURCC_zavc = 0x7A617663,
186  FOURCC_zec3 = 0x7A656333,
187 };
188 
189 const FourCC kAppleSampleAesProtectionScheme = FOURCC_cbca;
190 
191 const inline std::string FourCCToString(FourCC fourcc) {
192  char buf[5];
193  buf[0] = (fourcc >> 24) & 0xff;
194  buf[1] = (fourcc >> 16) & 0xff;
195  buf[2] = (fourcc >> 8) & 0xff;
196  buf[3] = (fourcc) & 0xff;
197  buf[4] = 0;
198  return std::string(buf);
199 }
200 
201 } // namespace media
202 } // namespace shaka
203 
204 #endif // PACKAGER_MEDIA_BASE_FOURCCS_H_
All the methods that are virtual are virtual for mocking.
Definition: crypto_flags.cc:66