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