DASH Media Packaging SDK
 All Classes Namespaces Functions Variables Typedefs Enumerator
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 MEDIA_FORMATS_MP4_FOURCCS_H_
6 #define MEDIA_FORMATS_MP4_FOURCCS_H_
7 
8 #include <string>
9 
10 namespace edash_packager {
11 namespace media {
12 namespace mp4 {
13 
14 // TODO(rkuroiwa): Make these case sensitive. e.g. FOURCC_avc1.
15 enum FourCC {
16  FOURCC_NULL = 0,
17  FOURCC_ID32 = 0x49443332,
18  FOURCC_PRIV = 0x50524956,
19  FOURCC_AVC1 = 0x61766331,
20  FOURCC_AVCC = 0x61766343,
21  FOURCC_BLOC = 0x626C6F63,
22  FOURCC_CENC = 0x63656e63,
23  FOURCC_CO64 = 0x636f3634,
24  FOURCC_CTTS = 0x63747473,
25  FOURCC_DASH = 0x64617368,
26  FOURCC_DDTS = 0x64647473,
27  FOURCC_DINF = 0x64696e66,
28  FOURCC_DREF = 0x64726566,
29  FOURCC_DTSC = 0x64747363,
30  FOURCC_DTSE = 0x64747365,
31  FOURCC_DTSH = 0x64747368,
32  FOURCC_DTSL = 0x6474736c,
33  FOURCC_DTSM = 0x6474732d,
34  FOURCC_DTSP = 0x6474732b,
35  FOURCC_EAC3 = 0x65632d33,
36  FOURCC_EDTS = 0x65647473,
37  FOURCC_ELST = 0x656c7374,
38  FOURCC_ENCA = 0x656e6361,
39  FOURCC_ENCV = 0x656e6376,
40  FOURCC_ESDS = 0x65736473,
41  FOURCC_FREE = 0x66726565,
42  FOURCC_FRMA = 0x66726d61,
43  FOURCC_FTYP = 0x66747970,
44  FOURCC_HDLR = 0x68646c72,
45  FOURCC_HEV1 = 0x68657631,
46  FOURCC_HINT = 0x68696e74,
47  FOURCC_HVC1 = 0x68766331,
48  FOURCC_HVCC = 0x68766343,
49  FOURCC_ISO6 = 0x69736f36,
50  FOURCC_IODS = 0x696f6473,
51  FOURCC_MDAT = 0x6d646174,
52  FOURCC_MDHD = 0x6d646864,
53  FOURCC_MDIA = 0x6d646961,
54  FOURCC_MECO = 0x6d65636f,
55  FOURCC_MEHD = 0x6d656864,
56  FOURCC_META = 0x6d657461,
57  FOURCC_MFHD = 0x6d666864,
58  FOURCC_MFRA = 0x6d667261,
59  FOURCC_MINF = 0x6d696e66,
60  FOURCC_MOOF = 0x6d6f6f66,
61  FOURCC_MOOV = 0x6d6f6f76,
62  FOURCC_MP41 = 0x6d703431,
63  FOURCC_MP4A = 0x6d703461,
64  FOURCC_MP4V = 0x6d703476,
65  FOURCC_MVEX = 0x6d766578,
66  FOURCC_MVHD = 0x6d766864,
67  FOURCC_PASP = 0x70617370,
68  FOURCC_PDIN = 0x7064696e,
69  FOURCC_PRFT = 0x70726674,
70  FOURCC_PSSH = 0x70737368,
71  FOURCC_SAIO = 0x7361696f,
72  FOURCC_SAIZ = 0x7361697a,
73  FOURCC_SBGP = 0x73626770,
74  FOURCC_SCHI = 0x73636869,
75  FOURCC_SCHM = 0x7363686d,
76  FOURCC_SDTP = 0x73647470,
77  FOURCC_SEIG = 0x73656967,
78  FOURCC_SENC = 0x73656e63,
79  FOURCC_SGPD = 0x73677064,
80  FOURCC_SIDX = 0x73696478,
81  FOURCC_SINF = 0x73696e66,
82  FOURCC_SKIP = 0x736b6970,
83  FOURCC_SMHD = 0x736d6864,
84  FOURCC_SOUN = 0x736f756e,
85  FOURCC_SSIX = 0x73736978,
86  FOURCC_STBL = 0x7374626c,
87  FOURCC_STCO = 0x7374636f,
88  FOURCC_STSC = 0x73747363,
89  FOURCC_STSD = 0x73747364,
90  FOURCC_STSS = 0x73747373,
91  FOURCC_STSZ = 0x7374737a,
92  FOURCC_STTS = 0x73747473,
93  FOURCC_STYP = 0x73747970,
94  FOURCC_STZ2 = 0x73747a32,
95  FOURCC_SUBT = 0x73756274,
96  FOURCC_TENC = 0x74656e63,
97  FOURCC_TEXT = 0x74657874,
98  FOURCC_TFDT = 0x74666474,
99  FOURCC_TFHD = 0x74666864,
100  FOURCC_TKHD = 0x746b6864,
101  FOURCC_TRAF = 0x74726166,
102  FOURCC_TRAK = 0x7472616b,
103  FOURCC_TREX = 0x74726578,
104  FOURCC_TRUN = 0x7472756e,
105  FOURCC_UDTA = 0x75647461,
106  FOURCC_URL = 0x75726c20,
107  FOURCC_URN = 0x75726e20,
108  FOURCC_UUID = 0x75756964,
109  FOURCC_VIDE = 0x76696465,
110  FOURCC_VMHD = 0x766d6864,
111  FOURCC_VP08 = 0x76703038,
112  FOURCC_VP09 = 0x76703039,
113  FOURCC_VP10 = 0x76703130,
114  FOURCC_VPCC = 0x76706343,
115  FOURCC_WIDE = 0x77696465,
116  FOURCC_ctim = 0x6374696d,
117  FOURCC_iden = 0x6964656e,
118  FOURCC_payl = 0x7061796c,
119  FOURCC_sthd = 0x73746864,
120  FOURCC_sttg = 0x73747467,
121  FOURCC_vlab = 0x766c6162,
122  FOURCC_vsid = 0x76736964,
123  FOURCC_vttC = 0x76747443,
124  FOURCC_vtta = 0x76747461,
125  FOURCC_vttc = 0x76747463,
126  FOURCC_vtte = 0x76747465,
127  FOURCC_wvtt = 0x77767474,
128 };
129 
130 const inline std::string FourCCToString(FourCC fourcc) {
131  char buf[5];
132  buf[0] = (fourcc >> 24) & 0xff;
133  buf[1] = (fourcc >> 16) & 0xff;
134  buf[2] = (fourcc >> 8) & 0xff;
135  buf[3] = (fourcc) & 0xff;
136  buf[4] = 0;
137  return std::string(buf);
138 }
139 
140 } // namespace mp4
141 } // namespace media
142 } // namespace edash_packager
143 
144 #endif // MEDIA_FORMATS_MP4_FOURCCS_H_