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 MEDIA_FORMATS_WEBM_WEBM_CONSTANTS_H_ 6#define MEDIA_FORMATS_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 kWebMIdCodecDelay = 0x56AA; 61const int kWebMIdCodecID = 0x86; 62const int kWebMIdCodecName = 0x258688; 63const int kWebMIdCodecPrivate = 0x63A2; 64const int kWebMIdCodecState = 0xA4; 65const int kWebMIdColorSpace = 0x2EB524; 66const int kWebMIdContentCompAlgo = 0x4254; 67const int kWebMIdContentCompression = 0x5034; 68const int kWebMIdContentCompSettings = 0x4255; 69const int kWebMIdContentEncAESSettings = 0x47E7; 70const int kWebMIdContentEncAlgo = 0x47E1; 71const int kWebMIdContentEncKeyID = 0x47E2; 72const int kWebMIdContentEncoding = 0x6240; 73const int kWebMIdContentEncodingOrder = 0x5031; 74const int kWebMIdContentEncodings = 0x6D80; 75const int kWebMIdContentEncodingScope = 0x5032; 76const int kWebMIdContentEncodingType = 0x5033; 77const int kWebMIdContentEncryption = 0x5035; 78const int kWebMIdContentSigAlgo = 0x47E5; 79const int kWebMIdContentSigHashAlgo = 0x47E6; 80const int kWebMIdContentSigKeyID = 0x47E4; 81const int kWebMIdContentSignature = 0x47E3; 82const int kWebMIdCRC32 = 0xBF; 83const int kWebMIdCueBlockNumber = 0x5378; 84const int kWebMIdCueClusterPosition = 0xF1; 85const int kWebMIdCueCodecState = 0xEA; 86const int kWebMIdCuePoint = 0xBB; 87const int kWebMIdCueReference = 0xDB; 88const int kWebMIdCueRefTime = 0x96; 89const int kWebMIdCues = 0x1C53BB6B; 90const int kWebMIdCueTime = 0xB3; 91const int kWebMIdCueTrack = 0xF7; 92const int kWebMIdCueTrackPositions = 0xB7; 93const int kWebMIdDateUTC = 0x4461; 94const int kWebMIdDefaultDuration = 0x23E383; 95const int kWebMIdDiscardPadding = 0x75A2; 96const int kWebMIdDisplayHeight = 0x54BA; 97const int kWebMIdDisplayUnit = 0x54B2; 98const int kWebMIdDisplayWidth = 0x54B0; 99const int kWebMIdDocType = 0x4282; 100const int kWebMIdDocTypeReadVersion = 0x4285; 101const int kWebMIdDocTypeVersion = 0x4287; 102const int kWebMIdDuration = 0x4489; 103const int kWebMIdEBMLHeader = 0x1A45DFA3; 104const int kWebMIdEBMLMaxIDLength = 0x42F2; 105const int kWebMIdEBMLMaxSizeLength = 0x42F3; 106const int kWebMIdEBMLReadVersion = 0x42F7; 107const int kWebMIdEBMLVersion = 0x4286; 108const int kWebMIdEditionEntry = 0x45B9; 109const int kWebMIdEditionFlagDefault = 0x45DB; 110const int kWebMIdEditionFlagHidden = 0x45BD; 111const int kWebMIdEditionFlagOrdered = 0x45DD; 112const int kWebMIdEditionUID = 0x45BC; 113const int kWebMIdFileData = 0x465C; 114const int kWebMIdFileDescription = 0x467E; 115const int kWebMIdFileMimeType = 0x4660; 116const int kWebMIdFileName = 0x466E; 117const int kWebMIdFileUID = 0x46AE; 118const int kWebMIdFlagDefault = 0x88; 119const int kWebMIdFlagEnabled = 0xB9; 120const int kWebMIdFlagForced = 0x55AA; 121const int kWebMIdFlagInterlaced = 0x9A; 122const int kWebMIdFlagLacing = 0x9C; 123const int kWebMIdFrameRate = 0x2383E3; 124const int kWebMIdInfo = 0x1549A966; 125const int kWebMIdJoinBlocks = 0xE9; 126const int kWebMIdLaceNumber = 0xCC; 127const int kWebMIdLanguage = 0x22B59C; 128const int kWebMIdMaxBlockAdditionId = 0x55EE; 129const int kWebMIdMaxCache = 0x6DF8; 130const int kWebMIdMinCache = 0x6DE7; 131const int kWebMIdMuxingApp = 0x4D80; 132const int kWebMIdName = 0x536E; 133const int kWebMIdNextFilename = 0x3E83BB; 134const int kWebMIdNextUID = 0x3EB923; 135const int kWebMIdOutputSamplingFrequency = 0x78B5; 136const int kWebMIdPixelCropBottom = 0x54AA; 137const int kWebMIdPixelCropLeft = 0x54CC; 138const int kWebMIdPixelCropRight = 0x54DD; 139const int kWebMIdPixelCropTop = 0x54BB; 140const int kWebMIdPixelHeight = 0xBA; 141const int kWebMIdPixelWidth = 0xB0; 142const int kWebMIdPosition = 0xA7; 143const int kWebMIdPrevFilename = 0x3C83AB; 144const int kWebMIdPrevSize = 0xAB; 145const int kWebMIdPrevUID = 0x3CB923; 146const int kWebMIdReferenceBlock = 0xFB; 147const int kWebMIdReferencePriority = 0xFA; 148const int kWebMIdSamplingFrequency = 0xB5; 149const int kWebMIdSeek = 0x4DBB; 150const int kWebMIdSeekHead = 0x114D9B74; 151const int kWebMIdSeekID = 0x53AB; 152const int kWebMIdSeekPosition = 0x53AC; 153const int kWebMIdSeekPreRoll = 0x56BB; 154const int kWebMIdSegment = 0x18538067; 155const int kWebMIdSegmentFamily = 0x4444; 156const int kWebMIdSegmentFilename = 0x7384; 157const int kWebMIdSegmentUID = 0x73A4; 158const int kWebMIdSilentTrackNumber = 0x58D7; 159const int kWebMIdSilentTracks = 0x5854; 160const int kWebMIdSimpleBlock = 0xA3; 161const int kWebMIdSimpleTag = 0x67C8; 162const int kWebMIdSlices = 0x8E; 163const int kWebMIdStereoMode = 0x53B8; 164const int kWebMIdTag = 0x7373; 165const int kWebMIdTagAttachmentUID = 0x63C6; 166const int kWebMIdTagBinary = 0x4485; 167const int kWebMIdTagChapterUID = 0x63C4; 168const int kWebMIdTagDefault = 0x4484; 169const int kWebMIdTagEditionUID = 0x63C9; 170const int kWebMIdTagLanguage = 0x447A; 171const int kWebMIdTagName = 0x45A3; 172const int kWebMIdTags = 0x1254C367; 173const int kWebMIdTagString = 0x4487; 174const int kWebMIdTagTrackUID = 0x63C5; 175const int kWebMIdTargets = 0x63C0; 176const int kWebMIdTargetType = 0x63CA; 177const int kWebMIdTargetTypeValue = 0x68CA; 178const int kWebMIdTimecode = 0xE7; 179const int kWebMIdTimecodeScale = 0x2AD7B1; 180const int kWebMIdTimeSlice = 0xE8; 181const int kWebMIdTitle = 0x7BA9; 182const int kWebMIdTrackCombinePlanes = 0xE3; 183const int kWebMIdTrackEntry = 0xAE; 184const int kWebMIdTrackJoinUID = 0xED; 185const int kWebMIdTrackNumber = 0xD7; 186const int kWebMIdTrackOperation = 0xE2; 187const int kWebMIdTrackOverlay = 0x6FAB; 188const int kWebMIdTrackPlane = 0xE4; 189const int kWebMIdTrackPlaneType = 0xE6; 190const int kWebMIdTrackPlaneUID = 0xE5; 191const int kWebMIdTracks = 0x1654AE6B; 192const int kWebMIdTrackTimecodeScale = 0x23314F; 193const int kWebMIdTrackTranslate = 0x6624; 194const int kWebMIdTrackTranslateCodec = 0x66BF; 195const int kWebMIdTrackTranslateEditionUID = 0x66FC; 196const int kWebMIdTrackTranslateTrackID = 0x66A5; 197const int kWebMIdTrackType = 0x83; 198const int kWebMIdTrackUID = 0x73C5; 199const int kWebMIdVideo = 0xE0; 200const int kWebMIdVoid = 0xEC; 201const int kWebMIdWritingApp = 0x5741; 202 203const int64 kWebMReservedId = 0x1FFFFFFF; 204const int64 kWebMUnknownSize = 0x00FFFFFFFFFFFFFFLL; 205 206const uint8 kWebMFlagKeyframe = 0x80; 207 208// Current encrypted WebM request for comments specification is here 209// http://wiki.webmproject.org/encryption/webm-encryption-rfc 210const uint8 kWebMFlagEncryptedFrame = 0x1; 211const int kWebMIvSize = 8; 212const int kWebMSignalByteSize = 1; 213 214// Current specification for WebVTT embedded in WebM 215// http://wiki.webmproject.org/webm-metadata/temporal-metadata/webvtt-in-webm 216 217const int kWebMTrackTypeVideo = 1; 218const int kWebMTrackTypeAudio = 2; 219const int kWebMTrackTypeSubtitlesOrCaptions = 0x11; 220const int kWebMTrackTypeDescriptionsOrMetadata = 0x21; 221 222MEDIA_EXPORT extern const char kWebMCodecSubtitles[]; 223MEDIA_EXPORT extern const char kWebMCodecCaptions[]; 224MEDIA_EXPORT extern const char kWebMCodecDescriptions[]; 225MEDIA_EXPORT extern const char kWebMCodecMetadata[]; 226 227} // namespace media 228 229#endif // MEDIA_FORMATS_WEBM_WEBM_CONSTANTS_H_ 230