// Copyright (c) 2010 The WebM project authors. All Rights Reserved.
//
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file in the root of the source
// tree. An additional intellectual property rights grant can be found
// in the file PATENTS.  All contributing project authors may
// be found in the AUTHORS file in the root of the source tree.


#ifndef MKV_DEFS_HPP
#define MKV_DEFS_HPP 1

// Commenting out values not available in webm, but available in matroska

enum mkv {
  EBML = 0x1A45DFA3,
  EBMLVersion = 0x4286,
  EBMLReadVersion = 0x42F7,
  EBMLMaxIDLength = 0x42F2,
  EBMLMaxSizeLength = 0x42F3,
  DocType = 0x4282,
  DocTypeVersion = 0x4287,
  DocTypeReadVersion = 0x4285,
//  CRC_32 = 0xBF,
  Void = 0xEC,
  SignatureSlot = 0x1B538667,
  SignatureAlgo = 0x7E8A,
  SignatureHash = 0x7E9A,
  SignaturePublicKey = 0x7EA5,
  Signature = 0x7EB5,
  SignatureElements = 0x7E5B,
  SignatureElementList = 0x7E7B,
  SignedElement = 0x6532,
  // segment
  Segment = 0x18538067,
  // Meta Seek Information
  SeekHead = 0x114D9B74,
  Seek = 0x4DBB,
  SeekID = 0x53AB,
  SeekPosition = 0x53AC,
  // Segment Information
  Info = 0x1549A966,
//  SegmentUID = 0x73A4,
//  SegmentFilename = 0x7384,
//  PrevUID = 0x3CB923,
//  PrevFilename = 0x3C83AB,
//  NextUID = 0x3EB923,
//  NextFilename = 0x3E83BB,
//  SegmentFamily = 0x4444,
//  ChapterTranslate = 0x6924,
//  ChapterTranslateEditionUID = 0x69FC,
//  ChapterTranslateCodec = 0x69BF,
//  ChapterTranslateID = 0x69A5,
  TimecodeScale = 0x2AD7B1,
  Segment_Duration = 0x4489,
  DateUTC = 0x4461,
//  Title = 0x7BA9,
  MuxingApp = 0x4D80,
  WritingApp = 0x5741,
  // Cluster
  Cluster = 0x1F43B675,
  Timecode = 0xE7,
//  SilentTracks = 0x5854,
//  SilentTrackNumber = 0x58D7,
//  Position = 0xA7,
  PrevSize = 0xAB,
  BlockGroup = 0xA0,
  Block = 0xA1,
//  BlockVirtual = 0xA2,
//  BlockAdditions = 0x75A1,
//  BlockMore = 0xA6,
//  BlockAddID = 0xEE,
//  BlockAdditional = 0xA5,
  BlockDuration = 0x9B,
//  ReferencePriority = 0xFA,
  ReferenceBlock = 0xFB,
//  ReferenceVirtual = 0xFD,
//  CodecState = 0xA4,
//  Slices = 0x8E,
//  TimeSlice = 0xE8,
  LaceNumber = 0xCC,
//  FrameNumber = 0xCD,
//  BlockAdditionID = 0xCB,
//  MkvDelay = 0xCE,
//  Cluster_Duration = 0xCF,
  SimpleBlock = 0xA3,
//  EncryptedBlock = 0xAF,
  // Track
  Tracks = 0x1654AE6B,
  TrackEntry = 0xAE,
  TrackNumber = 0xD7,
  TrackUID = 0x73C5,
  TrackType = 0x83,
  FlagEnabled = 0xB9,
  FlagDefault = 0x88,
  FlagForced = 0x55AA,
  FlagLacing = 0x9C,
//  MinCache = 0x6DE7,
//  MaxCache = 0x6DF8,
  DefaultDuration = 0x23E383,
//  TrackTimecodeScale = 0x23314F,
//  TrackOffset = 0x537F,
//  MaxBlockAdditionID = 0x55EE,
  Name = 0x536E,
  Language = 0x22B59C,
  CodecID = 0x86,
  CodecPrivate = 0x63A2,
  CodecName = 0x258688,
//  AttachmentLink = 0x7446,
//  CodecSettings = 0x3A9697,
//  CodecInfoURL = 0x3B4040,
//  CodecDownloadURL = 0x26B240,
//  CodecDecodeAll = 0xAA,
//  TrackOverlay = 0x6FAB,
//  TrackTranslate = 0x6624,
//  TrackTranslateEditionUID = 0x66FC,
//  TrackTranslateCodec = 0x66BF,
//  TrackTranslateTrackID = 0x66A5,
  // video
  Video = 0xE0,
  FlagInterlaced = 0x9A,
  StereoMode = 0x53B8,
  PixelWidth = 0xB0,
  PixelHeight = 0xBA,
  PixelCropBottom = 0x54AA,
  PixelCropTop = 0x54BB,
  PixelCropLeft = 0x54CC,
  PixelCropRight = 0x54DD,
  DisplayWidth = 0x54B0,
  DisplayHeight = 0x54BA,
  DisplayUnit = 0x54B2,
  AspectRatioType = 0x54B3,
//  ColourSpace = 0x2EB524,
//  GammaValue = 0x2FB523,
  FrameRate = 0x2383E3,
  // end video
  // audio
  Audio = 0xE1,
  SamplingFrequency = 0xB5,
  OutputSamplingFrequency = 0x78B5,
  Channels = 0x9F,
//  ChannelPositions = 0x7D7B,
  BitDepth = 0x6264,
  // end audio
  // content encoding
//  ContentEncodings = 0x6d80,
//  ContentEncoding = 0x6240,
//  ContentEncodingOrder = 0x5031,
//  ContentEncodingScope = 0x5032,
//  ContentEncodingType = 0x5033,
//  ContentCompression = 0x5034,
//  ContentCompAlgo = 0x4254,
//  ContentCompSettings = 0x4255,
//  ContentEncryption = 0x5035,
//  ContentEncAlgo = 0x47e1,
//  ContentEncKeyID = 0x47e2,
//  ContentSignature = 0x47e3,
//  ContentSigKeyID = 0x47e4,
//  ContentSigAlgo = 0x47e5,
//  ContentSigHashAlgo = 0x47e6,
  // end content encoding
  // Cueing Data
  Cues = 0x1C53BB6B,
  CuePoint = 0xBB,
  CueTime = 0xB3,
  CueTrackPositions = 0xB7,
  CueTrack = 0xF7,
  CueClusterPosition = 0xF1,
  CueBlockNumber = 0x5378,
//  CueCodecState = 0xEA,
//  CueReference = 0xDB,
//  CueRefTime = 0x96,
//  CueRefCluster = 0x97,
//  CueRefNumber = 0x535F,
//  CueRefCodecState = 0xEB,
  // Attachment
//  Attachments = 0x1941A469,
//  AttachedFile = 0x61A7,
//  FileDescription = 0x467E,
//  FileName = 0x466E,
//  FileMimeType = 0x4660,
//  FileData = 0x465C,
//  FileUID = 0x46AE,
//  FileReferral = 0x4675,
  // Chapters
//  Chapters = 0x1043A770,
//  EditionEntry = 0x45B9,
//  EditionUID = 0x45BC,
//  EditionFlagHidden = 0x45BD,
//  EditionFlagDefault = 0x45DB,
//  EditionFlagOrdered = 0x45DD,
//  ChapterAtom = 0xB6,
//  ChapterUID = 0x73C4,
//  ChapterTimeStart = 0x91,
//  ChapterTimeEnd = 0x92,
//  ChapterFlagHidden = 0x98,
//  ChapterFlagEnabled = 0x4598,
//  ChapterSegmentUID = 0x6E67,
//  ChapterSegmentEditionUID = 0x6EBC,
//  ChapterPhysicalEquiv = 0x63C3,
//  ChapterTrack = 0x8F,
//  ChapterTrackNumber = 0x89,
//  ChapterDisplay = 0x80,
//  ChapString = 0x85,
//  ChapLanguage = 0x437C,
//  ChapCountry = 0x437E,
//  ChapProcess = 0x6944,
//  ChapProcessCodecID = 0x6955,
//  ChapProcessPrivate = 0x450D,
//  ChapProcessCommand = 0x6911,
//  ChapProcessTime = 0x6922,
//  ChapProcessData = 0x6933,
  // Tagging
//  Tags = 0x1254C367,
//  Tag = 0x7373,
//  Targets = 0x63C0,
//  TargetTypeValue = 0x68CA,
//  TargetType = 0x63CA,
//  Tagging_TrackUID = 0x63C5,
//  Tagging_EditionUID = 0x63C9,
//  Tagging_ChapterUID = 0x63C4,
//  AttachmentUID = 0x63C6,
//  SimpleTag = 0x67C8,
//  TagName = 0x45A3,
//  TagLanguage = 0x447A,
//  TagDefault = 0x4484,
//  TagString = 0x4487,
//  TagBinary = 0x4485,
};
#endif
