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_WEBM_WEBM_CONSTANTS_H_
6#define MEDIA_WEBM_WEBM_CONSTANTS_H_
7
8#include "base/basictypes.h"
9#include "media/base/media_export.h"
10
11namespace media {
12
13// WebM element IDs.
14// This is a subset of the IDs in the Matroska spec.
15// http://www.matroska.org/technical/specs/index.html
16const int kWebMIdAESSettingsCipherMode = 0x47E8;
17const int kWebMIdAlphaMode = 0x53C0;
18const int kWebMIdAspectRatioType = 0x54B3;
19const int kWebMIdAttachedFile = 0x61A7;
20const int kWebMIdAttachmentLink = 0x7446;
21const int kWebMIdAttachments = 0x1941A469;
22const int kWebMIdAudio = 0xE1;
23const int kWebMIdBitDepth = 0x6264;
24const int kWebMIdBlock = 0xA1;
25const int kWebMIdBlockAddID = 0xEE;
26const int kWebMIdBlockAdditions = 0x75A1;
27const int kWebMIdBlockAdditional = 0xA5;
28const int kWebMIdBlockDuration = 0x9B;
29const int kWebMIdBlockGroup = 0xA0;
30const int kWebMIdBlockMore = 0xA6;
31const int kWebMIdChannels = 0x9F;
32const int kWebMIdChapCountry = 0x437E;
33const int kWebMIdChapLanguage = 0x437C;
34const int kWebMIdChapProcess = 0x6944;
35const int kWebMIdChapProcessCodecID = 0x6955;
36const int kWebMIdChapProcessCommand = 0x6911;
37const int kWebMIdChapProcessData = 0x6933;
38const int kWebMIdChapProcessPrivate = 0x450D;
39const int kWebMIdChapProcessTime = 0x6922;
40const int kWebMIdChapString = 0x85;
41const int kWebMIdChapterAtom = 0xB6;
42const int kWebMIdChapterDisplay = 0x80;
43const int kWebMIdChapterFlagEnabled = 0x4598;
44const int kWebMIdChapterFlagHidden = 0x98;
45const int kWebMIdChapterPhysicalEquiv = 0x63C3;
46const int kWebMIdChapters = 0x1043A770;
47const int kWebMIdChapterSegmentEditionUID = 0x6EBC;
48const int kWebMIdChapterSegmentUID = 0x6E67;
49const int kWebMIdChapterTimeEnd = 0x92;
50const int kWebMIdChapterTimeStart = 0x91;
51const int kWebMIdChapterTrack = 0x8F;
52const int kWebMIdChapterTrackNumber = 0x89;
53const int kWebMIdChapterTranslate = 0x6924;
54const int kWebMIdChapterTranslateCodec = 0x69BF;
55const int kWebMIdChapterTranslateEditionUID = 0x69FC;
56const int kWebMIdChapterTranslateID = 0x69A5;
57const int kWebMIdChapterUID = 0x73C4;
58const int kWebMIdCluster = 0x1F43B675;
59const int kWebMIdCodecDecodeAll = 0xAA;
60const int kWebMIdCodecID = 0x86;
61const int kWebMIdCodecName = 0x258688;
62const int kWebMIdCodecPrivate = 0x63A2;
63const int kWebMIdCodecState = 0xA4;
64const int kWebMIdColorSpace = 0x2EB524;
65const int kWebMIdContentCompAlgo = 0x4254;
66const int kWebMIdContentCompression = 0x5034;
67const int kWebMIdContentCompSettings = 0x4255;
68const int kWebMIdContentEncAESSettings = 0x47E7;
69const int kWebMIdContentEncAlgo = 0x47E1;
70const int kWebMIdContentEncKeyID = 0x47E2;
71const int kWebMIdContentEncoding = 0x6240;
72const int kWebMIdContentEncodingOrder = 0x5031;
73const int kWebMIdContentEncodings = 0x6D80;
74const int kWebMIdContentEncodingScope = 0x5032;
75const int kWebMIdContentEncodingType = 0x5033;
76const int kWebMIdContentEncryption = 0x5035;
77const int kWebMIdContentSigAlgo = 0x47E5;
78const int kWebMIdContentSigHashAlgo = 0x47E6;
79const int kWebMIdContentSigKeyID = 0x47E4;
80const int kWebMIdContentSignature = 0x47E3;
81const int kWebMIdCRC32 = 0xBF;
82const int kWebMIdCueBlockNumber = 0x5378;
83const int kWebMIdCueClusterPosition = 0xF1;
84const int kWebMIdCueCodecState = 0xEA;
85const int kWebMIdCuePoint = 0xBB;
86const int kWebMIdCueReference = 0xDB;
87const int kWebMIdCueRefTime = 0x96;
88const int kWebMIdCues = 0x1C53BB6B;
89const int kWebMIdCueTime = 0xB3;
90const int kWebMIdCueTrack = 0xF7;
91const int kWebMIdCueTrackPositions = 0xB7;
92const int kWebMIdDateUTC = 0x4461;
93const int kWebMIdDefaultDuration = 0x23E383;
94const int kWebMIdDisplayHeight = 0x54BA;
95const int kWebMIdDisplayUnit = 0x54B2;
96const int kWebMIdDisplayWidth = 0x54B0;
97const int kWebMIdDocType = 0x4282;
98const int kWebMIdDocTypeReadVersion = 0x4285;
99const int kWebMIdDocTypeVersion = 0x4287;
100const int kWebMIdDuration = 0x4489;
101const int kWebMIdEBMLHeader = 0x1A45DFA3;
102const int kWebMIdEBMLMaxIDLength = 0x42F2;
103const int kWebMIdEBMLMaxSizeLength = 0x42F3;
104const int kWebMIdEBMLReadVersion = 0x42F7;
105const int kWebMIdEBMLVersion = 0x4286;
106const int kWebMIdEditionEntry = 0x45B9;
107const int kWebMIdEditionFlagDefault = 0x45DB;
108const int kWebMIdEditionFlagHidden = 0x45BD;
109const int kWebMIdEditionFlagOrdered = 0x45DD;
110const int kWebMIdEditionUID = 0x45BC;
111const int kWebMIdFileData = 0x465C;
112const int kWebMIdFileDescription = 0x467E;
113const int kWebMIdFileMimeType = 0x4660;
114const int kWebMIdFileName = 0x466E;
115const int kWebMIdFileUID = 0x46AE;
116const int kWebMIdFlagDefault = 0x88;
117const int kWebMIdFlagEnabled = 0xB9;
118const int kWebMIdFlagForced = 0x55AA;
119const int kWebMIdFlagInterlaced = 0x9A;
120const int kWebMIdFlagLacing = 0x9C;
121const int kWebMIdInfo = 0x1549A966;
122const int kWebMIdJoinBlocks = 0xE9;
123const int kWebMIdLaceNumber = 0xCC;
124const int kWebMIdLanguage = 0x22B59C;
125const int kWebMIdMaxBlockAdditionId = 0x55EE;
126const int kWebMIdMaxCache = 0x6DF8;
127const int kWebMIdMinCache = 0x6DE7;
128const int kWebMIdMuxingApp = 0x4D80;
129const int kWebMIdName = 0x536E;
130const int kWebMIdNextFilename = 0x3E83BB;
131const int kWebMIdNextUID = 0x3EB923;
132const int kWebMIdOutputSamplingFrequency = 0x78B5;
133const int kWebMIdPixelCropBottom = 0x54AA;
134const int kWebMIdPixelCropLeft = 0x54CC;
135const int kWebMIdPixelCropRight = 0x54DD;
136const int kWebMIdPixelCropTop = 0x54BB;
137const int kWebMIdPixelHeight = 0xBA;
138const int kWebMIdPixelWidth = 0xB0;
139const int kWebMIdPosition = 0xA7;
140const int kWebMIdPrevFilename = 0x3C83AB;
141const int kWebMIdPrevSize = 0xAB;
142const int kWebMIdPrevUID = 0x3CB923;
143const int kWebMIdReferenceBlock = 0xFB;
144const int kWebMIdReferencePriority = 0xFA;
145const int kWebMIdSamplingFrequency = 0xB5;
146const int kWebMIdSeek = 0x4DBB;
147const int kWebMIdSeekHead = 0x114D9B74;
148const int kWebMIdSeekID = 0x53AB;
149const int kWebMIdSeekPosition = 0x53AC;
150const int kWebMIdSegment = 0x18538067;
151const int kWebMIdSegmentFamily = 0x4444;
152const int kWebMIdSegmentFilename = 0x7384;
153const int kWebMIdSegmentUID = 0x73A4;
154const int kWebMIdSilentTrackNumber = 0x58D7;
155const int kWebMIdSilentTracks = 0x5854;
156const int kWebMIdSimpleBlock = 0xA3;
157const int kWebMIdSimpleTag = 0x67C8;
158const int kWebMIdSlices = 0x8E;
159const int kWebMIdStereoMode = 0x53B8;
160const int kWebMIdTag = 0x7373;
161const int kWebMIdTagAttachmentUID = 0x63C6;
162const int kWebMIdTagBinary = 0x4485;
163const int kWebMIdTagChapterUID = 0x63C4;
164const int kWebMIdTagDefault = 0x4484;
165const int kWebMIdTagEditionUID = 0x63C9;
166const int kWebMIdTagLanguage = 0x447A;
167const int kWebMIdTagName = 0x45A3;
168const int kWebMIdTags = 0x1254C367;
169const int kWebMIdTagString = 0x4487;
170const int kWebMIdTagTrackUID = 0x63C5;
171const int kWebMIdTargets = 0x63C0;
172const int kWebMIdTargetType = 0x63CA;
173const int kWebMIdTargetTypeValue = 0x68CA;
174const int kWebMIdTimecode = 0xE7;
175const int kWebMIdTimecodeScale = 0x2AD7B1;
176const int kWebMIdTimeSlice = 0xE8;
177const int kWebMIdTitle = 0x7BA9;
178const int kWebMIdTrackCombinePlanes = 0xE3;
179const int kWebMIdTrackEntry = 0xAE;
180const int kWebMIdTrackJoinUID = 0xED;
181const int kWebMIdTrackNumber = 0xD7;
182const int kWebMIdTrackOperation = 0xE2;
183const int kWebMIdTrackOverlay = 0x6FAB;
184const int kWebMIdTrackPlane = 0xE4;
185const int kWebMIdTrackPlaneType = 0xE6;
186const int kWebMIdTrackPlaneUID = 0xE5;
187const int kWebMIdTracks = 0x1654AE6B;
188const int kWebMIdTrackTimecodeScale = 0x23314F;
189const int kWebMIdTrackTranslate = 0x6624;
190const int kWebMIdTrackTranslateCodec = 0x66BF;
191const int kWebMIdTrackTranslateEditionUID = 0x66FC;
192const int kWebMIdTrackTranslateTrackID = 0x66A5;
193const int kWebMIdTrackType = 0x83;
194const int kWebMIdTrackUID = 0x73C5;
195const int kWebMIdVideo = 0xE0;
196const int kWebMIdVoid = 0xEC;
197const int kWebMIdWritingApp = 0x5741;
198
199const int64 kWebMReservedId = 0x1FFFFFFF;
200const int64 kWebMUnknownSize = GG_LONGLONG(0x00FFFFFFFFFFFFFF);
201
202const uint8 kWebMFlagKeyframe = 0x80;
203
204// Current encrypted WebM request for comments specification is here
205// http://wiki.webmproject.org/encryption/webm-encryption-rfc
206const uint8 kWebMFlagEncryptedFrame = 0x1;
207const int kWebMIvSize = 8;
208const int kWebMSignalByteSize = 1;
209
210// Current specification for WebVTT embedded in WebM
211// http://wiki.webmproject.org/webm-metadata/temporal-metadata/webvtt-in-webm
212
213const int kWebMTrackTypeVideo = 1;
214const int kWebMTrackTypeAudio = 2;
215const int kWebMTrackTypeSubtitlesOrCaptions = 0x11;
216const int kWebMTrackTypeDescriptionsOrMetadata = 0x21;
217
218MEDIA_EXPORT extern const char kWebMCodecSubtitles[];
219MEDIA_EXPORT extern const char kWebMCodecCaptions[];
220MEDIA_EXPORT extern const char kWebMCodecDescriptions[];
221MEDIA_EXPORT extern const char kWebMCodecMetadata[];
222
223}  // namespace media
224
225#endif  // MEDIA_WEBM_WEBM_CONSTANTS_H_
226