\r
START_LIBMATROSKA_NAMESPACE\r
\r
-#if MATROSKA_VERSION == 1\r
-static const EbmlSemantic ContextList_KaxAttached[5] =\r
-#else // MATROSKA_VERSION\r
-static const EbmlSemantic ContextList_KaxAttached[6] =\r
-#endif // MATROSKA_VERSION\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxFileName)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxMimeType)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxFileData)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxFileDescription)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxFileUID)),\r
+DEFINE_START_SEMANTIC(KaxAttached)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxFileName)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxMimeType)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxFileData)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxFileDescription)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxFileUID)\r
#if MATROSKA_VERSION >= 2\r
- EbmlSemantic(false, true, EBML_INFO(KaxFileReferral)),\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxFileReferral)\r
#endif // MATROSKA_VERSION\r
-};\r
+DEFINE_END_SEMANTIC(KaxAttached)\r
\r
DEFINE_MKX_MASTER_CONS(KaxAttached, 0x61A7, 2, KaxAttachments, "AttachedFile");\r
DEFINE_MKX_UNISTRING (KaxFileDescription, 0x467E, 2, KaxAttachments, "FileDescription");\r
// sub elements\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxAttachments[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxAttached)), ///< EBMLVersion\r
-};\r
+DEFINE_START_SEMANTIC(KaxAttachments)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxAttached) ///< EBMLVersion\r
+DEFINE_END_SEMANTIC(KaxAttachments)\r
\r
DEFINE_MKX_MASTER_CONS(KaxAttachments, 0x1941A469, 4, KaxSegment, "Attachments");\r
\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-#if MATROSKA_VERSION == 1\r
-static const EbmlSemantic ContextList_KaxBlockGroup[6] =\r
-#else // MATROSKA_VERSION\r
-static const EbmlSemantic ContextList_KaxBlockGroup[9] =\r
-#endif // MATROSKA_VERSION\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxBlock)),\r
+DEFINE_START_SEMANTIC(KaxBlockGroup)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxBlock)\r
#if MATROSKA_VERSION >= 2\r
- EbmlSemantic(false, true, EBML_INFO(KaxBlockVirtual)),\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxBlockVirtual)\r
#endif // MATROSKA_VERSION\r
- EbmlSemantic(false, true, EBML_INFO(KaxBlockDuration)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxSlices)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxReferencePriority)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxReferenceBlock)),\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxBlockDuration)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxSlices)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxReferencePriority)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxReferenceBlock)\r
#if MATROSKA_VERSION >= 2\r
- EbmlSemantic(false, true, EBML_INFO(KaxReferenceVirtual)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxCodecState)),\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxReferenceVirtual)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCodecState)\r
#endif // MATROSKA_VERSION\r
- EbmlSemantic(false, true, EBML_INFO(KaxBlockAdditions)),\r
-};\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxBlockAdditions)\r
+DEFINE_END_SEMANTIC(KaxBlockGroup)\r
\r
-static const EbmlSemantic ContextList_KaxBlockAdditions[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxBlockMore))\r
-};\r
+DEFINE_START_SEMANTIC(KaxBlockAdditions)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxBlockMore)\r
+DEFINE_END_SEMANTIC(KaxBlockAdditions)\r
\r
-static const EbmlSemantic ContextList_KaxBlockMore[2] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxBlockAddID)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxBlockAdditional))\r
-};\r
+DEFINE_START_SEMANTIC(KaxBlockMore)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxBlockAddID)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxBlockAdditional)\r
+DEFINE_END_SEMANTIC(KaxBlockMore)\r
\r
DEFINE_MKX_MASTER_CONS (KaxBlockGroup, 0xA0, 1, KaxCluster, "BlockGroup");\r
DEFINE_MKX_BINARY_CONS (KaxBlock, 0xA1, 1, KaxBlockGroup, "Block");\r
\r
const EbmlSemantic ContextList_KaxSlices[1] =\r
{\r
- EbmlSemantic(false, false, EBML_INFO(KaxTimeSlice)),\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTimeSlice)\r
};\r
\r
const EbmlSemantic ContextList_KaxTimeSlice[5] =\r
{\r
- EbmlSemantic(false, true, EBML_INFO(KaxSliceLaceNumber)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxSliceFrameNumber)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxSliceBlockAddID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxSliceDelay)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxSliceDuration)),\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxSliceLaceNumber)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxSliceFrameNumber)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxSliceBlockAddID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxSliceDelay)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxSliceDuration)\r
};\r
\r
DEFINE_MKX_UINTEGER_DEF (KaxReferencePriority, 0xFA, 1, KaxBlockGroup, "FlagReferenced", 0);\r
// sub elements\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxChapters[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxEditionEntry)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxChapters)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxEditionEntry)\r
+DEFINE_END_SEMANTIC(KaxChapters)\r
\r
-static const EbmlSemantic ContextList_KaxEditionEntry[5] =\r
-{\r
- EbmlSemantic(false, true , EBML_INFO(KaxEditionUID)),\r
- EbmlSemantic(true , true , EBML_INFO(KaxEditionFlagHidden)),\r
- EbmlSemantic(true , true , EBML_INFO(KaxEditionFlagDefault)),\r
- EbmlSemantic(false, true , EBML_INFO(KaxEditionFlagOrdered)),\r
- EbmlSemantic(true , false, EBML_INFO(KaxChapterAtom)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxEditionEntry)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxEditionUID)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxEditionFlagHidden)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxEditionFlagDefault)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxEditionFlagOrdered)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxChapterAtom)\r
+DEFINE_END_SEMANTIC(KaxEditionEntry)\r
\r
-static const EbmlSemantic ContextList_KaxChapterAtom[12] =\r
-{\r
- EbmlSemantic(false, false, EBML_INFO(KaxChapterAtom)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxChapterUID)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxChapterTimeStart)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxChapterTimeEnd)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxChapterFlagHidden)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxChapterFlagEnabled)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxChapterSegmentUID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxChapterSegmentEditionUID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxChapterPhysicalEquiv)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxChapterTrack)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxChapterDisplay)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxChapterProcess)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxChapterAtom)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxChapterAtom)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterUID)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTimeStart)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxChapterTimeEnd)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterFlagHidden)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterFlagEnabled)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxChapterSegmentUID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxChapterSegmentEditionUID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxChapterPhysicalEquiv)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxChapterTrack)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxChapterDisplay)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxChapterProcess)\r
+DEFINE_END_SEMANTIC(KaxChapterAtom)\r
\r
-static const EbmlSemantic ContextList_KaxChapterTrack[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxChapterTrackNumber)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxChapterTrack)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxChapterTrackNumber)\r
+DEFINE_END_SEMANTIC(KaxChapterTrack)\r
\r
-static const EbmlSemantic ContextList_KaxChapterDisplay[3] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxChapterString)),\r
- EbmlSemantic(true, false, EBML_INFO(KaxChapterLanguage)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxChapterCountry)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxChapterDisplay)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterString)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxChapterLanguage)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxChapterCountry)\r
+DEFINE_END_SEMANTIC(KaxChapterDisplay)\r
\r
-static const EbmlSemantic ContextList_KaxChapterProcess[3] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxChapterProcessCodecID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxChapterProcessPrivate)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxChapterProcessCommand)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxChapterProcess)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessCodecID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxChapterProcessPrivate)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxChapterProcessCommand)\r
+DEFINE_END_SEMANTIC(KaxChapterProcess)\r
\r
-static const EbmlSemantic ContextList_KaxChapterProcessCommand[2] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxChapterProcessTime)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxChapterProcessData)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxChapterProcessCommand)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessTime)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessData)\r
+DEFINE_END_SEMANTIC(KaxChapterProcessCommand)\r
\r
DEFINE_MKX_MASTER (KaxChapters, 0x1043A770, 4, KaxSegment, "Chapters");\r
DEFINE_MKX_MASTER (KaxEditionEntry, 0x45B9, 2, KaxChapters, "EditionEntry");\r
// sub elements\r
START_LIBMATROSKA_NAMESPACE\r
\r
-#if MATROSKA_VERSION == 1\r
-static const EbmlSemantic ContextList_KaxCluster[5] =\r
-#else // MATROSKA_VERSION\r
-static const EbmlSemantic ContextList_KaxCluster[6] =\r
-#endif // MATROSKA_VERSION\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxClusterTimecode)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxClusterSilentTracks)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxClusterPrevSize)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxBlockGroup)),\r
+DEFINE_START_SEMANTIC(KaxCluster)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxClusterTimecode)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxClusterSilentTracks)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxClusterPrevSize)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxBlockGroup)\r
#if MATROSKA_VERSION == 2\r
- EbmlSemantic(false, false, EBML_INFO(KaxSimpleBlock)),\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxSimpleBlock)\r
#endif\r
- EbmlSemantic(false, true, EBML_INFO(KaxClusterPosition)),\r
-};\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxClusterPosition)\r
+DEFINE_END_SEMANTIC(KaxCluster)\r
\r
DEFINE_MKX_MASTER_CONS(KaxCluster, 0x1F43B675, 4, KaxSegment, "Cluster");\r
\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxClusterSilentTracks[1] =\r
-{\r
- EbmlSemantic(false, false, EBML_INFO(KaxClusterSilentTrackNumber)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxClusterSilentTracks)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxClusterSilentTrackNumber)\r
+DEFINE_END_SEMANTIC(KaxClusterSilentTracks)\r
\r
DEFINE_MKX_UINTEGER(KaxClusterTimecode, 0xE7, 1, KaxCluster, "ClusterTimecode");\r
DEFINE_MKX_MASTER (KaxClusterSilentTracks, 0x5854, 2, KaxCluster, "ClusterSilentTracks")\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxContentEncodings[1] = {\r
- EbmlSemantic(true, true, EBML_INFO(KaxContentEncoding)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxContentEncodings)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncoding)\r
+DEFINE_END_SEMANTIC(KaxContentEncodings)\r
\r
-static const EbmlSemantic ContextList_KaxContentEncoding[5] = {\r
- EbmlSemantic(true, true, EBML_INFO(KaxContentEncodingOrder)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxContentEncodingScope)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxContentEncodingType)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentCompression)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentEncryption)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxContentEncoding)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingOrder)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingScope)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingType)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentCompression)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncryption)\r
+DEFINE_END_SEMANTIC(KaxContentEncoding)\r
\r
-static const EbmlSemantic ContextList_KaxContentCompression[2] = {\r
- EbmlSemantic(true, true, EBML_INFO(KaxContentCompAlgo)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentCompSettings)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxContentCompression)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxContentCompAlgo)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentCompSettings)\r
+DEFINE_END_SEMANTIC(KaxContentCompression)\r
\r
-static const EbmlSemantic ContextList_KaxContentEncryption[6] = {\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentEncAlgo)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentEncKeyID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentSignature)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentSigKeyID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentSigAlgo)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentSigHashAlgo)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxContentEncryption)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncAlgo)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncKeyID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentSignature)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigKeyID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigAlgo)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigHashAlgo)\r
+DEFINE_END_SEMANTIC(KaxContentEncryption)\r
\r
DEFINE_MKX_MASTER (KaxContentEncodings, 0x6d80, 2, KaxTrackEntry, "ContentEncodings");\r
DEFINE_MKX_MASTER (KaxContentEncoding, 0x6240, 2, KaxContentEncodings, "ContentEncoding");\r
// sub elements\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxCues[1] = \r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxCuePoint)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxCues) \r
+DEFINE_SEMANTIC_ITEM(true, false, KaxCuePoint)\r
+DEFINE_END_SEMANTIC(KaxCues) \r
\r
DEFINE_MKX_MASTER(KaxCues, 0x1C53BB6B, 4, KaxSegment, "Cues");\r
\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxCuePoint[2] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxCueTime)),\r
- EbmlSemantic(true, false, EBML_INFO(KaxCueTrackPositions)),\r
-};\r
-\r
-#if MATROSKA_VERSION == 1\r
-static const EbmlSemantic ContextList_KaxCueTrackPositions[3] =\r
-#else // MATROSKA_VERSION\r
-static const EbmlSemantic ContextList_KaxCueTrackPositions[5] =\r
-#endif // MATROSKA_VERSION\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxCueTrack)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxCueClusterPosition)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxCueBlockNumber)),\r
+DEFINE_START_SEMANTIC(KaxCuePoint)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxCueTime)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxCueTrackPositions)\r
+DEFINE_END_SEMANTIC(KaxCuePoint)\r
+\r
+DEFINE_START_SEMANTIC(KaxCueTrackPositions)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxCueTrack)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxCueClusterPosition)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCueBlockNumber)\r
#if MATROSKA_VERSION >= 2\r
- EbmlSemantic(false, true, EBML_INFO(KaxCueCodecState)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxCueReference)),\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCueCodecState)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxCueReference)\r
#endif // MATROSKA_VERSION\r
-};\r
+DEFINE_END_SEMANTIC(KaxCueTrackPositions)\r
\r
#if MATROSKA_VERSION >= 2\r
-static const EbmlSemantic ContextList_KaxCueReference[4] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxCueRefTime)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxCueRefCluster)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxCueRefNumber)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxCueRefCodecState)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxCueReference)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxCueRefTime)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxCueRefCluster)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCueRefNumber)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCueRefCodecState)\r
+DEFINE_END_SEMANTIC(KaxCueReference)\r
#endif // MATROSKA_VERSION\r
\r
DEFINE_MKX_MASTER (KaxCuePoint, 0xBB, 1, KaxCues, "CuePoint");\r
// sub elements\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxInfo[14] =\r
-{\r
- EbmlSemantic(false, true, EBML_INFO(KaxSegmentUID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxSegmentFilename)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxPrevUID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxPrevFilename)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxNextUID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxNextFilename)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxSegmentFamily)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxChapterTranslate)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxTimecodeScale)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxDuration)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxDateUTC)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTitle)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxMuxingApp)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxWritingApp)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxInfo)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxSegmentUID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxSegmentFilename)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxPrevUID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxPrevFilename)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxNextUID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxNextFilename)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxSegmentFamily)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxChapterTranslate)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTimecodeScale)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxDuration)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxDateUTC)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTitle)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxMuxingApp)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxWritingApp)\r
+DEFINE_END_SEMANTIC(KaxInfo)\r
\r
DEFINE_MKX_MASTER (KaxInfo, 0x1549A966, 4, KaxSegment, "Info");\r
DEFINE_MKX_UNISTRING(KaxMuxingApp, 0x4D80, 2, KaxInfo, "MuxingApp");\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxChapterTranslate[3] =\r
-{\r
- EbmlSemantic(false, false, EBML_INFO(KaxChapterTranslateEditionUID)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxChapterTranslateCodec)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxChapterTranslateID)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxChapterTranslate)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxChapterTranslateEditionUID)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTranslateCodec)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTranslateID)\r
+DEFINE_END_SEMANTIC(KaxChapterTranslate)\r
\r
DEFINE_MKX_BINARY (KaxSegmentUID, 0x73A4, 2, KaxInfo, "ChapterTranslate");\r
DEFINE_MKX_UNISTRING (KaxSegmentFilename, 0x7384, 2, KaxInfo, "SegmentFilename");\r
// sub elements\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxSeekHead[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxSeek)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxSeek[2] = \r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxSeekID)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxSeekPosition)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxSeekHead)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxSeek)\r
+DEFINE_END_SEMANTIC(KaxSeekHead)\r
+\r
+DEFINE_START_SEMANTIC(KaxSeek) \r
+DEFINE_SEMANTIC_ITEM(true, true, KaxSeekID)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxSeekPosition)\r
+DEFINE_END_SEMANTIC(KaxSeek) \r
\r
DEFINE_MKX_MASTER (KaxSeekHead, 0x114D9B74, 4, KaxSegment, "SeekHeader");\r
DEFINE_MKX_MASTER (KaxSeek, 0x4DBB, 2, KaxSeekHead, "SeekPoint");\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxMatroska[2] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(EbmlHead)),\r
- EbmlSemantic(true, false, EBML_INFO(KaxSegment)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxMatroska)\r
+DEFINE_SEMANTIC_ITEM(true, true, EbmlHead)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxSegment)\r
+DEFINE_END_SEMANTIC(KaxMatroska)\r
\r
-static const EbmlSemantic ContextList_KaxSegment[8] =\r
-{\r
- EbmlSemantic(false, false, EBML_INFO(KaxCluster)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxSeekHead)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxCues)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTracks)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxInfo)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxChapters)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxAttachments)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTags)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxSegment)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxCluster)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxSeekHead)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCues)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTracks)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxInfo)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxChapters)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxAttachments)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTags)\r
+DEFINE_END_SEMANTIC(KaxSegment)\r
\r
DEFINE_MKX_CONTEXT(KaxMatroska);\r
\r
// sub elements\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxTag[14] =\r
-{ \r
- EbmlSemantic(true, true, EBML_INFO(KaxTagTargets)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagGeneral)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagGenres)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagAudioSpecific)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagImageSpecific)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiCommercial)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiDate)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiEntity)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiIdentifier)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiLegal)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiTitle)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiAttachment)),\r
-// EbmlSemantic(false, false, EBML_INFO(KaxTagLength)),\r
-// EbmlSemantic(false, false, EBML_INFO(KaxTagPlaylistDelay)),\r
-// EbmlSemantic(false, false, EBML_INFO(KaxTagUnsynchronisedText)),\r
-// EbmlSemantic(false, false, EBML_INFO(KaxTagUserDefinedURL)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiComment)),\r
- EbmlSemantic(true, false, EBML_INFO(KaxTagSimple)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTag)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagTargets)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagGeneral)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagGenres)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagAudioSpecific)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagImageSpecific)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiCommercial)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiDate)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiEntity)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiIdentifier)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiLegal)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiTitle)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiAttachment)\r
+//DEFINE_SEMANTIC_ITEM(false, false, KaxTagLength)\r
+//DEFINE_SEMANTIC_ITEM(false, false, KaxTagPlaylistDelay)\r
+//DEFINE_SEMANTIC_ITEM(false, false, KaxTagUnsynchronisedText)\r
+//DEFINE_SEMANTIC_ITEM(false, false, KaxTagUserDefinedURL)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiComment)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTagSimple)\r
+DEFINE_END_SEMANTIC(KaxTag)\r
\r
-static const EbmlSemantic ContextList_KaxTagTargets[6] =\r
-{ \r
- EbmlSemantic(false, true, EBML_INFO(KaxTagTargetTypeValue)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagTargetType)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagTrackUID)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagEditionUID)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagChapterUID)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagAttachmentUID)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTagTargets)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagTargetTypeValue)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagTargetType)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagTrackUID)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagEditionUID)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagChapterUID)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagAttachmentUID)\r
+DEFINE_END_SEMANTIC(KaxTagTargets)\r
\r
-static const EbmlSemantic ContextList_KaxTagGeneral[17] =\r
-{ \r
- EbmlSemantic(false, true, EBML_INFO(KaxTagArchivalLocation)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagFile)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagKeywords)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMood)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagRecordLocation)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagSource)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagSourceForm)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagProduct)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagOriginalMediaType)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagPlayCounter)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagPopularimeter)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagSubject)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagBibliography)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagLanguage)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagRating)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagEncoder)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagEncodeSettings)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTagGeneral)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagArchivalLocation)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagFile)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagKeywords)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMood)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagRecordLocation)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagSource)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagSourceForm)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagProduct)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagOriginalMediaType)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagPlayCounter)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagPopularimeter)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagSubject)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagBibliography)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagLanguage)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagRating)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagEncoder)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagEncodeSettings)\r
+DEFINE_END_SEMANTIC(KaxTagGeneral)\r
\r
-static const EbmlSemantic ContextList_KaxTagGenres[3] =\r
-{ \r
- EbmlSemantic(false, false, EBML_INFO(KaxTagAudioGenre)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagVideoGenre)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagSubGenre)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTagGenres)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagAudioGenre)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagVideoGenre)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagSubGenre)\r
+DEFINE_END_SEMANTIC(KaxTagGenres)\r
\r
-static const EbmlSemantic ContextList_KaxTagAudioSpecific[10] =\r
-{ \r
- EbmlSemantic(false, true, EBML_INFO(KaxTagAudioPeak)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagAudioEncryption)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagAudioGain)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagBPM)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagDiscTrack)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagSetPart)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagEqualisation)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagInitialKey)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagOfficialAudioFileURL)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagOfficialAudioSourceURL)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTagAudioSpecific)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagAudioPeak)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagAudioEncryption)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagAudioGain)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagBPM)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagDiscTrack)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagSetPart)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagEqualisation)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagInitialKey)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagOfficialAudioFileURL)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagOfficialAudioSourceURL)\r
+DEFINE_END_SEMANTIC(KaxTagAudioSpecific)\r
\r
-static const EbmlSemantic ContextList_KaxTagImageSpecific[6] =\r
-{\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagCaptureDPI)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagCaptureLightness)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagCapturePaletteSetting)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagCaptureSharpness)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagCropped)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagOriginalDimensions)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTagImageSpecific)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagCaptureDPI)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagCaptureLightness)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagCapturePaletteSetting)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagCaptureSharpness)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagCropped)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagOriginalDimensions)\r
+DEFINE_END_SEMANTIC(KaxTagImageSpecific)\r
\r
-static const EbmlSemantic ContextList_KaxTagSimple[6] =\r
-{ \r
- EbmlSemantic(true, true, EBML_INFO(KaxTagName)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxTagLangue)),\r
- EbmlSemantic(true, true, EBML_INFO(KaxTagDefault)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagString)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagBinary)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagSimple)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTagSimple)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagName)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagLangue)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagDefault)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagString)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagBinary)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagSimple)\r
+DEFINE_END_SEMANTIC(KaxTagSimple)\r
\r
DEFINE_MKX_MASTER (KaxTag, 0x7373, 2, KaxTags, "Tag");\r
DEFINE_MKX_MASTER (KaxTagTargets, 0x63C0, 2, KaxTag, "TagTargets");\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxTagMultiGlobal[1] =\r
-{\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiComment)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiComment[3] =\r
-{\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiCommentName)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiCommentComments)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiCommentLanguage)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiCommercial[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTagCommercial)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagCommercial[5] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxTagMultiCommercialType)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiCommercialAddress)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiCommercialURL)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiCommercialEmail)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiPrice)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiPrice[3] =\r
-{\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiPriceCurrency)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiPriceAmount)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiPricePriceDate)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiDate[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTagDate)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagDate[3] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxTagMultiDateType)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiDateDateBegin)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiDateDateEnd)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiEntity[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTagEntity)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagEntity[5] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxTagMultiEntityType)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiEntityName)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiEntityURL)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiEntityEmail)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiEntityAddress)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiIdentifier[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTagIdentifier)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagIdentifier[3] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxTagMultiIdentifierType)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiIdentifierBinary)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiIdentifierString)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiLegal[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTagLegal)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagLegal[4] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxTagMultiLegalType)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiLegalContent)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiLegalURL)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiLegalAddress)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiTitle[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTagTitle)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagTitle[8] =\r
-{\r
- EbmlSemantic(true, true, EBML_INFO(KaxTagMultiTitleType)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiTitleName)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiTitleSubTitle)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiTitleEdition)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiTitleAddress)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiTitleURL)),\r
- EbmlSemantic(false, false, EBML_INFO(KaxTagMultiTitleEmail)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagMultiTitleLanguage)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagMultiAttachment[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTagAttachment)),\r
-};\r
-\r
-static const EbmlSemantic ContextList_KaxTagAttachment[1] =\r
-{\r
- EbmlSemantic(false, true, EBML_INFO(KaxTagAttachmentID)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTagMultiGlobal)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiComment)\r
+DEFINE_END_SEMANTIC(KaxTagMultiGlobal)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiComment)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiCommentName)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiCommentComments)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiCommentLanguage)\r
+DEFINE_END_SEMANTIC(KaxTagMultiComment)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiCommercial)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTagCommercial)\r
+DEFINE_END_SEMANTIC(KaxTagMultiCommercial)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagCommercial)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagMultiCommercialType)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiCommercialAddress)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiCommercialURL)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiCommercialEmail)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiPrice)\r
+DEFINE_END_SEMANTIC(KaxTagCommercial)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiPrice)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiPriceCurrency)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiPriceAmount)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiPricePriceDate)\r
+DEFINE_END_SEMANTIC(KaxTagMultiPrice)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiDate)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTagDate)\r
+DEFINE_END_SEMANTIC(KaxTagMultiDate)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagDate)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagMultiDateType)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiDateDateBegin)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiDateDateEnd)\r
+DEFINE_END_SEMANTIC(KaxTagDate)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiEntity)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTagEntity)\r
+DEFINE_END_SEMANTIC(KaxTagMultiEntity)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagEntity)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagMultiEntityType)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiEntityName)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiEntityURL)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiEntityEmail)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiEntityAddress)\r
+DEFINE_END_SEMANTIC(KaxTagEntity)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiIdentifier)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTagIdentifier)\r
+DEFINE_END_SEMANTIC(KaxTagMultiIdentifier)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagIdentifier)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagMultiIdentifierType)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiIdentifierBinary)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiIdentifierString)\r
+DEFINE_END_SEMANTIC(KaxTagIdentifier)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiLegal)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTagLegal)\r
+DEFINE_END_SEMANTIC(KaxTagMultiLegal)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagLegal)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagMultiLegalType)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiLegalContent)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiLegalURL)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiLegalAddress)\r
+DEFINE_END_SEMANTIC(KaxTagLegal)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiTitle)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTagTitle)\r
+DEFINE_END_SEMANTIC(KaxTagMultiTitle)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagTitle)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTagMultiTitleType)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiTitleName)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiTitleSubTitle)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiTitleEdition)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiTitleAddress)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiTitleURL)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTagMultiTitleEmail)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagMultiTitleLanguage)\r
+DEFINE_END_SEMANTIC(KaxTagTitle)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagMultiAttachment)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTagAttachment)\r
+DEFINE_END_SEMANTIC(KaxTagMultiAttachment)\r
+\r
+DEFINE_START_SEMANTIC(KaxTagAttachment)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTagAttachmentID)\r
+DEFINE_END_SEMANTIC(KaxTagAttachment)\r
\r
\r
DEFINE_MKX_CONTEXT(KaxTagMultiGlobal);\r
// sub elements\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxTags[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTag)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTags)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTag)\r
+DEFINE_END_SEMANTIC(KaxTags)\r
\r
DEFINE_MKX_MASTER(KaxTags, 0x1254C367, 4, KaxSegment, "Tags");\r
\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-#if MATROSKA_VERSION == 1\r
-static const EbmlSemantic ContextList_KaxTrackAudio[4] =\r
-#else // MATROSKA_VERSION\r
-static const EbmlSemantic ContextList_KaxTrackAudio[5] =\r
-#endif // MATROSKA_VERSION\r
-{\r
- EbmlSemantic(true , true, EBML_INFO(KaxAudioSamplingFreq)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxAudioChannels)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxAudioBitDepth)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxAudioOutputSamplingFreq)),\r
+DEFINE_START_SEMANTIC(KaxTrackAudio)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxAudioSamplingFreq)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxAudioChannels)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxAudioBitDepth)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxAudioOutputSamplingFreq)\r
#if MATROSKA_VERSION >= 2\r
- EbmlSemantic(false, true, EBML_INFO(KaxAudioPosition)),\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxAudioPosition)\r
#endif // MATROSKA_VERSION\r
-};\r
+DEFINE_END_SEMANTIC(KaxTrackAudio)\r
\r
DEFINE_MKX_MASTER (KaxTrackAudio, 0xE1, 1, KaxTrackEntry, "TrackAudio");\r
DEFINE_MKX_FLOAT_DEF (KaxAudioSamplingFreq, 0xB5, 1, KaxTrackAudio, "AudioSamplingFreq", 8000.0);\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxTrackTranslate[3] =\r
-{\r
- EbmlSemantic(false, false,EBML_INFO(KaxTrackTranslateEditionUID)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackTranslateCodec)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackTranslateTrackID)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTrackTranslate)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTrackTranslateEditionUID)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTranslateCodec)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTranslateTrackID)\r
+DEFINE_END_SEMANTIC(KaxTrackTranslate)\r
\r
DEFINE_MKX_UINTEGER (KaxTrackNumber, 0xD7, 1, KaxTracks, "TrackNumber");\r
DEFINE_MKX_UINTEGER (KaxTrackUID, 0x73C5, 2, KaxTracks, "TrackUID");\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-#if MATROSKA_VERSION == 1\r
-static const EbmlSemantic ContextList_KaxTrackVideo[10] =\r
-#else // MATROSKA_VERSION\r
-static const EbmlSemantic ContextList_KaxTrackVideo[15] =\r
-#endif // MATROSKA_VERSION\r
-{\r
- EbmlSemantic(true , true, EBML_INFO(KaxVideoPixelWidth)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxVideoPixelHeight)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoPixelCropBottom)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoPixelCropTop)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoPixelCropLeft)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoPixelCropRight)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoDisplayWidth)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoDisplayHeight)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoColourSpace)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoFrameRate)),\r
+DEFINE_START_SEMANTIC(KaxTrackVideo)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxVideoPixelWidth)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxVideoPixelHeight)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropBottom)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropTop)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropLeft)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropRight)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayWidth)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayHeight)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoColourSpace)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoFrameRate)\r
#if MATROSKA_VERSION >= 2\r
- EbmlSemantic(true , true, EBML_INFO(KaxVideoFlagInterlaced)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoStereoMode)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoDisplayUnit)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoAspectRatio)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxVideoGamma)),\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxVideoFlagInterlaced)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoStereoMode)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayUnit)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoAspectRatio)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxVideoGamma)\r
#endif // MATROSKA_VERSION\r
-};\r
+DEFINE_END_SEMANTIC(KaxTrackVideo)\r
\r
DEFINE_MKX_MASTER (KaxTrackVideo, 0xE0, 1, KaxTrackEntry, "TrackVideo");\r
DEFINE_MKX_UINTEGER (KaxVideoPixelWidth, 0xB0, 1, KaxTrackVideo, "VideoPixelWidth");\r
\r
START_LIBMATROSKA_NAMESPACE\r
\r
-static const EbmlSemantic ContextList_KaxTracks[1] =\r
-{\r
- EbmlSemantic(true, false, EBML_INFO(KaxTrackEntry)),\r
-};\r
+DEFINE_START_SEMANTIC(KaxTracks)\r
+DEFINE_SEMANTIC_ITEM(true, false, KaxTrackEntry)\r
+DEFINE_END_SEMANTIC(KaxTracks)\r
\r
-#if MATROSKA_VERSION == 1\r
-static const EbmlSemantic ContextList_KaxTrackEntry[22] =\r
-#else // MATROSKA_VERSION\r
-static const EbmlSemantic ContextList_KaxTrackEntry[27] =\r
-#endif // MATROSKA_VERSION\r
-{\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackNumber)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackUID)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackType)),\r
+DEFINE_START_SEMANTIC(KaxTrackEntry)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackNumber)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackUID)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackType)\r
#if MATROSKA_VERSION >= 2\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackFlagEnabled)),\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagEnabled)\r
#endif // MATROSKA_VERSION\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackFlagDefault)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackFlagForced)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackFlagLacing)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackMinCache)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTrackMaxCache)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTrackDefaultDuration)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxTrackTimecodeScale)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxMaxBlockAdditionID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTrackName)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTrackLanguage)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxCodecID)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxCodecPrivate)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxCodecName)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTrackAttachmentLink)),\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagDefault)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagForced)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagLacing)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackMinCache)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTrackMaxCache)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTrackDefaultDuration)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTimecodeScale)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxMaxBlockAdditionID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTrackName)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTrackLanguage)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxCodecID)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCodecPrivate)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCodecName)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTrackAttachmentLink)\r
#if MATROSKA_VERSION >= 2\r
- EbmlSemantic(false, true, EBML_INFO(KaxCodecSettings)),\r
- EbmlSemantic(false, false,EBML_INFO(KaxCodecInfoURL)),\r
- EbmlSemantic(false, false,EBML_INFO(KaxCodecDownloadURL)),\r
- EbmlSemantic(true , true, EBML_INFO(KaxCodecDecodeAll)),\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxCodecSettings)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxCodecInfoURL)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxCodecDownloadURL)\r
+DEFINE_SEMANTIC_ITEM(true, true, KaxCodecDecodeAll)\r
#endif // MATROSKA_VERSION\r
- EbmlSemantic(false, false,EBML_INFO(KaxTrackOverlay)),\r
- EbmlSemantic(false, false,EBML_INFO(KaxTrackTranslate)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTrackAudio)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxTrackVideo)),\r
- EbmlSemantic(false, true, EBML_INFO(KaxContentEncodings)),\r
-};\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTrackOverlay)\r
+DEFINE_SEMANTIC_ITEM(false, false, KaxTrackTranslate)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTrackAudio)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxTrackVideo)\r
+DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncodings)\r
+DEFINE_END_SEMANTIC(KaxTrackEntry)\r
\r
DEFINE_MKX_MASTER (KaxTracks, 0x1654AE6B, 4, KaxSegment, "Tracks");\r
DEFINE_MKX_MASTER_CONS(KaxTrackEntry, 0xAE, 1, KaxTracks, "TrackEntry");\r