]> granicus.if.org Git - libmatroska/commitdiff
use a macro to define the semantic tables as the v2 library uses a slightly different...
authorSteve Lhomme <slhomme@matroska.org>
Wed, 7 Apr 2010 16:09:02 +0000 (16:09 +0000)
committerSteve Lhomme <slhomme@matroska.org>
Wed, 7 Apr 2010 16:09:02 +0000 (16:09 +0000)
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libmatroska@85 a6f86f6d-0131-4f8e-9e7b-e335508773d5

21 files changed:
src/KaxAttached.cpp
src/KaxAttachments.cpp
src/KaxBlock.cpp
src/KaxBlockData.cpp
src/KaxChapters.cpp
src/KaxCluster.cpp
src/KaxClusterData.cpp
src/KaxContentEncoding.cpp
src/KaxCues.cpp
src/KaxCuesData.cpp
src/KaxInfo.cpp
src/KaxInfoData.cpp
src/KaxSeekHead.cpp
src/KaxSegment.cpp
src/KaxTag.cpp
src/KaxTagMulti.cpp
src/KaxTags.cpp
src/KaxTrackAudio.cpp
src/KaxTrackEntryData.cpp
src/KaxTrackVideo.cpp
src/KaxTracks.cpp

index f2450a2a6a230d7ee0bf8a85892e9c6d6653249b..48c3ac1dfdc4b99e4b95e8782ade8117abb7930b 100644 (file)
@@ -42,21 +42,16 @@ using namespace LIBEBML_NAMESPACE;
 \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
index bf398812286d1ea126e1f88c8007ffefeb1a9f2e..6e1de34e901e01378145eb03784954f50f531af2 100644 (file)
@@ -42,10 +42,9 @@ using namespace LIBEBML_NAMESPACE;
 // 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
index c8b29ecb312316a9154156262d9e091b918d52b5..d98217460b7b8dd05b4a2d6a3b3635145d1f9ef6 100644 (file)
 \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
index 7fe307d88d591a8d902ab045f43a411950b6784c..15b4c0904db9dae09cf3a89e1942fb8faa733007 100644 (file)
@@ -43,16 +43,16 @@ START_LIBMATROSKA_NAMESPACE
 \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
index 6241da51d7295193cfbc83155618539d6e379a25..e559f781c4dc2cdadb1a54ace877bdf35f2c58d7 100644 (file)
 // 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
index 1147a1f6ee4eddcd5789776fdf091e2e268b3054..f292b28ab385f1eb5a38b7853d8d575045dab94a 100644 (file)
 // 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
index c90dcd720993a19f2c7686b8178323c2c001467d..2d6e281a4ab76ff1e7279991f317e73eb9c60fc3 100644 (file)
 \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
index f193eaf7a981ea99984a416314ab88c3fe12896c..e76e4fcbf4fbd47529d27bb54a069e42a52e3f92 100644 (file)
 \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
index 5d88b6b931c0696437d8572a6764205c56b7dc82..7fdf9bdb81b55ef27c5eead12b1cfb007d2aa464 100644 (file)
 // 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
index 5828db3da99ae8be94e406c03e46a293e81086e2..a2f1e3d5c31b3bf0759d9d30f7ee739fa8783c2b 100644 (file)
 \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
index dcc31d7bb0ee26be2ac5cd387d3f26c37f03d3c7..93ed1c4c8071e876b4ae02717205ab4222815630 100644 (file)
 // 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
index 0a5610fe1420a936db7978fe1305fc4d630bcc60..19a03ff5608ad6050f47ed088bc396ff9de80c4c 100644 (file)
 \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
index 17d78904a962a79f447c30e5e4cecdde020eecd5..9035b522f92bcaf04554c8692a4fc69332fcca1f 100644 (file)
@@ -43,16 +43,14 @@ using namespace LIBEBML_NAMESPACE;
 // 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
index f2527f8a465daf08ab88c0765d17756969b85d73..bbd020ac5f30e2ea2d144f791a1d60f1e61c85cd 100644 (file)
 \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
index f9d56c1ffd2bf5658af39c3538693de5fad87627..adc532fce1b9eb4d39de212a03083635146bf331 100644 (file)
@@ -43,99 +43,92 @@ using namespace LIBEBML_NAMESPACE;
 // 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
index 50345751db02522dd99f11891081cf3a8c8a2713..44e34d2b808d24e95874bb99afd852cf0f9f9940 100644 (file)
@@ -41,116 +41,99 @@ using namespace LIBEBML_NAMESPACE;
 \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
index 58682dd4be0334e51694105653ac189a6af844c3..78ec09e2e2929b8642c1682477d1271c731aa618 100644 (file)
@@ -43,10 +43,9 @@ using namespace LIBEBML_NAMESPACE;
 // 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
index 152a06fa5860d23a2bcab23ef7e4201fa5afa3ca..e967cc29eb6f807127ac82168326d08a2bb14ecb 100644 (file)
 \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
index 2846974523e633842b2a00eff7bc47b46dbe0b0a..eadfe675b9e0dad5dc917923aa7085f7a90bde66 100644 (file)
 \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
index e8660ef05145f0c5906449390ee75e2edd6fa25c..d5220531ae9a7ade4e5416660c88cb6ebe648132 100644 (file)
 \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
index 9287f1f9ab518b41053d728b6a8a1d4117b2e73e..0ca2b3292fb2957ae43b28ce4eb3171a7f5e8b04 100644 (file)
 \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