]> granicus.if.org Git - libmatroska/commitdiff
add a default constructor to EbmlMaster based classes
authorSteve Lhomme <slhomme@matroska.org>
Mon, 5 Apr 2010 16:39:37 +0000 (16:39 +0000)
committerSteve Lhomme <slhomme@matroska.org>
Mon, 5 Apr 2010 16:39:37 +0000 (16:39 +0000)
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libmatroska@73 a6f86f6d-0131-4f8e-9e7b-e335508773d5

21 files changed:
matroska/KaxDefines.h
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/KaxTag.cpp
src/KaxTagMulti.cpp
src/KaxTags.cpp
src/KaxTrackAudio.cpp
src/KaxTrackEntryData.cpp
src/KaxTrackVideo.cpp
src/KaxTracks.cpp

index 7b5556b3f47a39bd3c6f9f4da633b35c1fa1f27a..672b5929a80721577fb469d21b36fc9279351f74 100644 (file)
@@ -1,61 +1,64 @@
-/****************************************************************************
-** libmatroska : parse Matroska files, see http://www.matroska.org/
-**
-** <file/class description>
-**
-** Copyright (C) 2002-2010 Steve Lhomme.  All rights reserved.
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Lesser General Public
-** License as published by the Free Software Foundation; either
-** version 2.1 of the License, or (at your option) any later version.
-** 
-** This library is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-** Lesser General Public License for more details.
-** 
-** You should have received a copy of the GNU Lesser General Public
-** License along with this library; if not, write to the Free Software
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-**
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**
-** Contact license@matroska.org if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-/*!
-       \file
-       \version \$Id: KaxDefines.h,v 1.8 2010/04/02 23:26:17 robux4 Exp $
-       \author Steve Lhomme     <robux4 @ users.sf.net>
-*/
-#ifndef LIBMATROSKA_DEFINES_H
-#define LIBMATROSKA_DEFINES_H
-
-#include "ebml/EbmlVersion.h"
-#include "ebml/EbmlElement.h"
-
-#if LIBEBML_VERSION >= 0x010000
-#define DEFINE_MKX_MASTER(a,b,c,d,e)    DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_UINTEGER(a,b,c,d,e)  DEFINE_xxx_UINTEGER(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_SINTEGER(a,b,c,d,e)  DEFINE_xxx_SINTEGER(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_STRING(a,b,c,d,e)    DEFINE_xxx_STRING(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_UNISTRING(a,b,c,d,e) DEFINE_xxx_UNISTRING(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_BINARY(a,b,c,d,e)    DEFINE_xxx_BINARY(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_FLOAT(a,b,c,d,e)     DEFINE_xxx_FLOAT(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_DATE(a,b,c,d,e)      DEFINE_xxx_DATE(a,b,c,d,e,*GetKaxGlobal_Context)
-#else
-#define DEFINE_MKX_CONTEXT(a)             DEFINE_xxx_CONTEXT(a,*GetKaxGlobal_Context)
-#define DEFINE_MKX_MASTER(a,b,c,d,e)      DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_MASTER_ORPHAN(a,b,c,d) DEFINE_xxx_MASTER_ORPHAN(a,b,c,d,*GetKaxGlobal_Context)
-#define DEFINE_MKX_UINTEGER(a,b,c,d,e)    DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_SINTEGER(a,b,c,d,e)    DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_STRING(a,b,c,d,e)      DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_UNISTRING(a,b,c,d,e)   DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_BINARY(a,b,c,d,e)      DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_FLOAT(a,b,c,d,e)       DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)
-#define DEFINE_MKX_DATE(a,b,c,d,e)        DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)
-#endif
-
-#endif // LIBMATROSKA_DEFINES_H
+/****************************************************************************\r
+** libmatroska : parse Matroska files, see http://www.matroska.org/\r
+**\r
+** <file/class description>\r
+**\r
+** Copyright (C) 2002-2010 Steve Lhomme.  All rights reserved.\r
+**\r
+** This library is free software; you can redistribute it and/or\r
+** modify it under the terms of the GNU Lesser General Public\r
+** License as published by the Free Software Foundation; either\r
+** version 2.1 of the License, or (at your option) any later version.\r
+** \r
+** This library is distributed in the hope that it will be useful,\r
+** but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+** Lesser General Public License for more details.\r
+** \r
+** You should have received a copy of the GNU Lesser General Public\r
+** License along with this library; if not, write to the Free Software\r
+** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+**\r
+** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**\r
+** Contact license@matroska.org if any conditions of this licensing are\r
+** not clear to you.\r
+**\r
+**********************************************************************/\r
+\r
+/*!\r
+       \file\r
+       \version \$Id: KaxDefines.h,v 1.8 2010/04/02 23:26:17 robux4 Exp $\r
+       \author Steve Lhomme     <robux4 @ users.sf.net>\r
+*/\r
+#ifndef LIBMATROSKA_DEFINES_H\r
+#define LIBMATROSKA_DEFINES_H\r
+\r
+#include "ebml/EbmlVersion.h"\r
+#include "ebml/EbmlElement.h"\r
+\r
+#if LIBEBML_VERSION >= 0x010000\r
+#define DEFINE_MKX_MASTER(a,b,c,d,e)    DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_UINTEGER(a,b,c,d,e)  DEFINE_xxx_UINTEGER(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_SINTEGER(a,b,c,d,e)  DEFINE_xxx_SINTEGER(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_STRING(a,b,c,d,e)    DEFINE_xxx_STRING(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_UNISTRING(a,b,c,d,e) DEFINE_xxx_UNISTRING(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_BINARY(a,b,c,d,e)    DEFINE_xxx_BINARY(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_FLOAT(a,b,c,d,e)     DEFINE_xxx_FLOAT(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_DATE(a,b,c,d,e)      DEFINE_xxx_DATE(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#else\r
+#define DEFINE_MKX_CONTEXT(a)               DEFINE_xxx_CONTEXT(a,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_MASTER_NOBODY(a,b,c,d,e) DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_MASTER(a,b,c,d,e)        DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxGlobal_Context) \\r
+    a::a() :EbmlMaster(Context_##a) {}\r
+\r
+#define DEFINE_MKX_MASTER_ORPHAN(a,b,c,d)   DEFINE_xxx_MASTER_ORPHAN(a,b,c,d,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_UINTEGER(a,b,c,d,e)      DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_SINTEGER(a,b,c,d,e)      DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_STRING(a,b,c,d,e)        DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_UNISTRING(a,b,c,d,e)     DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_BINARY(a,b,c,d,e)        DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_FLOAT(a,b,c,d,e)         DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#define DEFINE_MKX_DATE(a,b,c,d,e)          DEFINE_xxx_CLASS(a,b,c,d,e,*GetKaxGlobal_Context)\r
+#endif\r
+\r
+#endif // LIBMATROSKA_DEFINES_H\r
index ada83c92d6d4036033f5b077c1581a83dd9b8029..5f380cb0f6b4f6bbe30cc6867ecd263fb4b83277 100644 (file)
@@ -58,7 +58,7 @@ static const EbmlSemantic ContextList_KaxAttached[6] =
 #endif // MATROSKA_VERSION\r
 };\r
 \r
-DEFINE_MKX_MASTER   (KaxAttached,        0x61A7, 2, KaxAttachments, "AttachedFile");\r
+DEFINE_MKX_MASTER_NOBODY(KaxAttached,    0x61A7, 2, KaxAttachments, "AttachedFile");\r
 DEFINE_MKX_UNISTRING(KaxFileDescription, 0x467E, 2, KaxAttachments, "FileDescription");\r
 DEFINE_MKX_UNISTRING(KaxFileName,        0x466E, 2, KaxAttachments, "FileName");\r
 DEFINE_MKX_STRING   (KaxMimeType,        0x4660, 2, KaxAttachments, "FileMimeType");\r
@@ -69,7 +69,7 @@ DEFINE_MKX_BINARY   (KaxFileReferral,    0x4675, 2, KaxAttachments, "FileReferra
 #endif\r
 \r
 KaxAttached::KaxAttached()\r
- :EbmlMaster(KaxAttached_Context)\r
+ :EbmlMaster(Context_KaxAttached)\r
 {\r
        SetSizeLength(2); // mandatory min size support (for easier updating) (2^(7*2)-2 = 16Ko)\r
 }\r
index 597522e8faf33f137093ccaf5a1826bf7e9461f7..6b55d848e55c56e8b1c88df456222fa37a31209f 100644 (file)
@@ -47,10 +47,10 @@ static const EbmlSemantic ContextList_KaxAttachments[1] =
        EbmlSemantic(true, false, EBML_INFO(KaxAttached)),        ///< EBMLVersion\r
 };\r
 \r
-DEFINE_MKX_MASTER(KaxAttachments, 0x1941A469, 4, KaxSegment, "Attachments");\r
+DEFINE_MKX_MASTER_NOBODY(KaxAttachments, 0x1941A469, 4, KaxSegment, "Attachments");\r
 \r
 KaxAttachments::KaxAttachments()\r
- :EbmlMaster(KaxAttachments_Context)\r
+ :EbmlMaster(Context_KaxAttachments)\r
 {\r
        SetSizeLength(2); // mandatory min size support (for easier updating) (2^(7*2)-2 = 16Ko)\r
 }\r
index 35f96af344d8344ff1e6b6f146d1820683bcf100..231863a7cdbcf8599ca0231be18a2c93b9c83f4e 100644 (file)
@@ -75,7 +75,7 @@ static const EbmlSemantic ContextList_KaxBlockMore[2] =
        EbmlSemantic(true,  true,  EBML_INFO(KaxBlockAdditional))\r
 };\r
 \r
-DEFINE_MKX_MASTER  (KaxBlockGroup,       0xA0, 1, KaxCluster, "BlockGroup");\r
+DEFINE_MKX_MASTER_NOBODY(KaxBlockGroup,  0xA0, 1, KaxCluster, "BlockGroup");\r
 DEFINE_MKX_BINARY  (KaxBlock,            0xA1, 1, KaxBlockGroup, "Block");\r
 DEFINE_MKX_UINTEGER(KaxBlockDuration,    0x9B, 1, KaxBlockGroup, "BlockDuration");\r
 #if MATROSKA_VERSION >= 2\r
@@ -149,14 +149,6 @@ KaxBlockGroup::KaxBlockGroup()
  ,ParentTrack(NULL)\r
 {}\r
 \r
-KaxBlockAdditions::KaxBlockAdditions()\r
- :EbmlMaster(Context_KaxBlockAdditions)\r
-{}\r
-\r
-KaxBlockMore::KaxBlockMore()\r
- :EbmlMaster(Context_KaxBlockMore)\r
-{}\r
-\r
 /*!\r
        \todo handle flags\r
        \todo hardcoded limit of the number of frames in a lace should be a parameter\r
index 678fa4cc35f48c3d64729e170c05172ab0d7e6f6..23b9ce1ed0765a2acd472e283c7955cf21eee171 100644 (file)
@@ -69,14 +69,6 @@ DEFINE_MKX_UINTEGER(KaxReferenceVirtual,  0xFD, 1, KaxBlockGroup, "ReferenceVirt
 #endif\r
 \r
 \r
-KaxSlices::KaxSlices()\r
- :EbmlMaster(Context_KaxSlices)\r
-{}\r
-\r
-KaxTimeSlice::KaxTimeSlice()\r
- :EbmlMaster(Context_KaxTimeSlice)\r
-{}\r
-\r
 const KaxBlockBlob & KaxReferenceBlock::RefBlock() const\r
 {\r
        assert(RefdBlock != NULL);\r
index b1671180ca416bd214f899177585454b25334f17..d6fbe85a8f88ed66f19a498578e9035b64acaa88 100644 (file)
@@ -122,33 +122,4 @@ DEFINE_MKX_MASTER   (KaxChapterProcessCommand,    0x6911, 2, KaxChapterProcess,
 DEFINE_MKX_UINTEGER (KaxChapterProcessTime,       0x6922, 2, KaxChapterProcessCommand, "ChapterProcessTime");\r
 DEFINE_MKX_BINARY   (KaxChapterProcessData,       0x6933, 2, KaxChapterProcessCommand, "ChapterProcessData");\r
 \r
-\r
-KaxChapters::KaxChapters()\r
- :EbmlMaster(Context_KaxChapters)\r
-{}\r
-\r
-KaxEditionEntry::KaxEditionEntry()\r
-:EbmlMaster(Context_KaxEditionEntry)\r
-{}\r
-\r
-KaxChapterAtom::KaxChapterAtom()\r
-:EbmlMaster(Context_KaxChapterAtom)\r
-{}\r
-\r
-KaxChapterTrack::KaxChapterTrack()\r
-:EbmlMaster(Context_KaxChapterTrack)\r
-{}\r
-\r
-KaxChapterDisplay::KaxChapterDisplay()\r
-:EbmlMaster(Context_KaxChapterDisplay)\r
-{}\r
-\r
-KaxChapterProcess::KaxChapterProcess()\r
-:EbmlMaster(Context_KaxChapterProcess)\r
-{}\r
-\r
-KaxChapterProcessCommand::KaxChapterProcessCommand()\r
-:EbmlMaster(Context_KaxChapterProcessCommand)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index 1be9d56a10538b064a0995e0028569ca1d9cadc8..82b892d4e12f0cdb16fb614a96594ba4a5374565 100644 (file)
@@ -56,10 +56,10 @@ static const EbmlSemantic ContextList_KaxCluster[6] =
        EbmlSemantic(false, true,  EBML_INFO(KaxClusterPosition)),\r
 };\r
 \r
-DEFINE_MKX_MASTER(KaxCluster, 0x1F43B675, 4, KaxSegment, "Cluster");\r
+DEFINE_MKX_MASTER_NOBODY(KaxCluster, 0x1F43B675, 4, KaxSegment, "Cluster");\r
 \r
 KaxCluster::KaxCluster()\r
-       :EbmlMaster(KaxCluster_Context)\r
+       :EbmlMaster(Context_KaxCluster)\r
        ,currentNewBlock(NULL)\r
        ,ParentSegment(NULL)\r
        ,bFirstFrameInside(false)\r
index 13cd774eb06482a7a1cc88ae6ff8a76821745919..c90dcd720993a19f2c7686b8178323c2c001467d 100644 (file)
@@ -49,8 +49,4 @@ DEFINE_MKX_UINTEGER(KaxClusterSilentTrackNumber, 0x58D7, 2, KaxClusterSilentTrac
 DEFINE_MKX_UINTEGER(KaxClusterPosition,            0xA7, 1, KaxCluster, "ClusterPosition");\r
 DEFINE_MKX_UINTEGER(KaxClusterPrevSize,            0xAB, 1, KaxCluster, "ClusterPrevSize");\r
 \r
-KaxClusterSilentTracks::KaxClusterSilentTracks()\r
-:EbmlMaster(Context_KaxClusterSilentTracks)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index da6107fa275efb73919bf4c68cc0ce68a9c25012..b965786732406ff4af6c6d3495c7251d23b872f9 100644 (file)
@@ -80,20 +80,4 @@ DEFINE_MKX_BINARY  (KaxContentSigKeyID,      0x47e4, 2, KaxContentEncryption, "C
 DEFINE_MKX_UINTEGER(KaxContentSigAlgo,       0x47e5, 2, KaxContentEncryption, "ContentSigAlgo");\r
 DEFINE_MKX_UINTEGER(KaxContentSigHashAlgo,   0x47e6, 2, KaxContentEncryption, "ContentSigHashAlgo");\r
 \r
-KaxContentEncodings::KaxContentEncodings():\r
-  EbmlMaster(Context_KaxContentEncodings) {\r
-}\r
-\r
-KaxContentEncoding::KaxContentEncoding():\r
-  EbmlMaster(Context_KaxContentEncoding) {\r
-}\r
-\r
-KaxContentCompression::KaxContentCompression():\r
-  EbmlMaster(Context_KaxContentCompression) {\r
-}\r
-\r
-KaxContentEncryption::KaxContentEncryption():\r
-  EbmlMaster(Context_KaxContentEncryption) {\r
-}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index d2ea0e2874ef8a3a6f918e9ad6221efe1e9ca6a1..5d88b6b931c0696437d8572a6764205c56b7dc82 100644 (file)
@@ -48,10 +48,6 @@ static const EbmlSemantic ContextList_KaxCues[1] =
 \r
 DEFINE_MKX_MASTER(KaxCues, 0x1C53BB6B, 4, KaxSegment, "Cues");\r
 \r
-KaxCues::KaxCues()\r
-       :EbmlMaster(KaxCues_Context)\r
-{}\r
-\r
 KaxCues::~KaxCues()\r
 {\r
        assert(myTempReferences.size() == 0); // otherwise that means you have added references and forgot to set the position\r
index ba3b0a39eadae94437cb5287d1313c4b5083883d..fabb9485db3132ed7deaedd88c41043f9499e9ab 100644 (file)
@@ -88,20 +88,6 @@ DEFINE_MKX_UINTEGER(KaxCueRefNumber,     0x535F, 2, KaxCueRefTime, "CueRefNumber
 DEFINE_MKX_UINTEGER(KaxCueRefCodecState,   0xEB, 1, KaxCueRefTime, "CueRefCodecState");\r
 #endif\r
 \r
-KaxCuePoint::KaxCuePoint() \r
- :EbmlMaster(Context_KaxCuePoint)\r
-{}\r
-\r
-KaxCueTrackPositions::KaxCueTrackPositions()\r
- :EbmlMaster(Context_KaxCueTrackPositions)\r
-{}\r
-\r
-#if MATROSKA_VERSION >= 2\r
-KaxCueReference::KaxCueReference()\r
- :EbmlMaster(Context_KaxCueReference)\r
-{}\r
-#endif // MATROSKA_VERSION\r
-\r
 /*!\r
        \todo handle codec state checking\r
        \todo remove duplicate references (reference to 2 frames that each reference the same frame)\r
index 2c4261de1afc4247b394d245caf6e4a3e76df7b9..dcc31d7bb0ee26be2ac5cd387d3f26c37f03d3c7 100644 (file)
@@ -63,8 +63,4 @@ DEFINE_MKX_MASTER   (KaxInfo,   0x1549A966, 4, KaxSegment, "Info");
 DEFINE_MKX_UNISTRING(KaxMuxingApp,  0x4D80, 2, KaxInfo, "MuxingApp");\r
 DEFINE_MKX_UNISTRING(KaxWritingApp, 0x5741, 2, KaxInfo, "WritingApp");\r
 \r
-KaxInfo::KaxInfo()\r
-       :EbmlMaster(KaxInfo_Context)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index 7f0f0151a01f53f795d671b47c4a96f7c659ac6c..c21a99532e14a08aa8b87b201aa39f6c6048fb99 100644 (file)
@@ -62,8 +62,4 @@ DEFINE_MKX_FLOAT    (KaxDuration,                   0x4489, 2, KaxInfo, "Duratio
 DEFINE_MKX_DATE     (KaxDateUTC,                    0x4461, 2, KaxInfo, "DateUTC");\r
 DEFINE_MKX_UNISTRING(KaxTitle,                      0x7BA9, 2, KaxInfo, "Title");\r
 \r
-KaxChapterTranslate::KaxChapterTranslate()\r
-       :EbmlMaster(Context_KaxChapterTranslate)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index ba157e46ac92417464668f5b3080dc0d11e60af8..17d78904a962a79f447c30e5e4cecdde020eecd5 100644 (file)
@@ -59,14 +59,6 @@ DEFINE_MKX_MASTER  (KaxSeek,         0x4DBB, 2, KaxSeekHead, "SeekPoint");
 DEFINE_MKX_BINARY  (KaxSeekID,       0x53AB, 2, KaxSeek, "SeekID");\r
 DEFINE_MKX_UINTEGER(KaxSeekPosition, 0x53AC, 2, KaxSeek, "SeekPosition");\r
 \r
-KaxSeekHead::KaxSeekHead()\r
-       :EbmlMaster(Context_KaxSeekHead)\r
-{}\r
-\r
-KaxSeek::KaxSeek()\r
-       :EbmlMaster(Context_KaxSeek)\r
-{}\r
-\r
 /*!\r
        \todo verify that the element is not already in the list\r
 */\r
index 486b3ab753f166028ac46906f688601bf593e9e2..7a1cd24d2b9c2256d5481c4168e380108b429a31 100644 (file)
@@ -197,32 +197,4 @@ DEFINE_MKX_UINTEGER (KaxTagDefault,                0x4484, 2, KaxTagSimple, "Tag
 DEFINE_MKX_UNISTRING(KaxTagString,                 0x4487, 2, KaxTagSimple, "TagString");\r
 DEFINE_MKX_BINARY   (KaxTagBinary,                 0x4485, 2, KaxTagSimple, "TagBinary");\r
 \r
-KaxTag::KaxTag()\r
-       :EbmlMaster(Context_KaxTag)\r
-{}\r
-\r
-KaxTagTargets::KaxTagTargets()\r
-       :EbmlMaster(Context_KaxTagTargets)\r
-{}\r
-\r
-KaxTagGeneral::KaxTagGeneral()\r
-       :EbmlMaster(Context_KaxTagGeneral)\r
-{}\r
-\r
-KaxTagGenres::KaxTagGenres()\r
-       :EbmlMaster(Context_KaxTagGenres)\r
-{}\r
-\r
-KaxTagAudioSpecific::KaxTagAudioSpecific()\r
-       :EbmlMaster(Context_KaxTagAudioSpecific)\r
-{}\r
-\r
-KaxTagImageSpecific::KaxTagImageSpecific()\r
-       :EbmlMaster(Context_KaxTagImageSpecific)\r
-{}\r
-\r
-KaxTagSimple::KaxTagSimple()\r
-       :EbmlMaster(Context_KaxTagSimple)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index cedfb26181cf773c1df56429bc41ad05f0a52c3e..b77fb51326a6e69ca85105e1d4a5ac87e844bbac 100644 (file)
@@ -160,52 +160,56 @@ const EbmlSemanticContext & GetKaxTagsGlobal_Context()
        return Context_KaxTagMultiGlobal;\r
 }\r
 \r
+#define DEFINE_TAG_MASTER(a,b,c,d,e)   DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxTagsGlobal_Context) \\r
+    a::a() :EbmlMaster(Context_##a) {}\r
+\r
+\r
 \r
 DEFINE_MKX_MASTER   (KaxTagMultiComment,           0x5B7B, 2, KaxTag, "MultiComment");\r
 DEFINE_MKX_STRING   (KaxTagMultiCommentName,       0x5F7D, 2, KaxTagMultiComment, "MultiCommentName");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiCommentComments,   0x5F7C, 2, KaxTagMultiComment, "MultiCommentComments");\r
 DEFINE_MKX_STRING   (KaxTagMultiCommentLanguage, 0x22B59D, 3, KaxTagMultiComment, "MultiCommentLanguage");\r
 \r
-DEFINE_xxx_MASTER   (KaxTagMultiCommercial,        0x4DC7, 2, KaxTag, "MultiCommercial", GetKaxTagsGlobal_Context);\r
-DEFINE_xxx_MASTER   (KaxTagCommercial,             0x4EC7, 2, KaxTagMultiCommercial, "Commercial", GetKaxTagsGlobal_Context);\r
+DEFINE_TAG_MASTER   (KaxTagMultiCommercial,        0x4DC7, 2, KaxTag, "MultiCommercial");\r
+DEFINE_TAG_MASTER   (KaxTagCommercial,             0x4EC7, 2, KaxTagMultiCommercial, "Commercial");\r
 DEFINE_MKX_UINTEGER (KaxTagMultiCommercialType,    0x5BD7, 2, KaxTagCommercial, "MultiCommercialType");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiCommercialAddress, 0x5BBB, 2, KaxTagCommercial, "MultiCommercialAddress");\r
 DEFINE_MKX_STRING   (KaxTagMultiCommercialURL,     0x5BDA, 2, KaxTagCommercial, "MultiCommercialURL");\r
 DEFINE_MKX_STRING   (KaxTagMultiCommercialEmail,   0x5BC0, 2, KaxTagCommercial, "MultiCommercialEmail");\r
-DEFINE_xxx_MASTER   (KaxTagMultiPrice,             0x5BC3, 2, KaxTagCommercial, "MultiPrice", GetKaxTagsGlobal_Context);\r
+DEFINE_TAG_MASTER   (KaxTagMultiPrice,             0x5BC3, 2, KaxTagCommercial, "MultiPrice");\r
 DEFINE_MKX_STRING   (KaxTagMultiPriceCurrency,     0x5B6C, 2, KaxTagMultiPrice, "MultiPriceCurrency");\r
 DEFINE_MKX_FLOAT    (KaxTagMultiPriceAmount,       0x5B6E, 2, KaxTagMultiPrice, "MultiPriceAmount");\r
 DEFINE_MKX_DATE     (KaxTagMultiPricePriceDate,    0x5B6F, 2, KaxTagMultiPrice, "MultiPricePriceDate");\r
 \r
-DEFINE_xxx_MASTER   (KaxTagMultiDate,              0x4DC8, 2, KaxTag, "MultiDate", GetKaxTagsGlobal_Context);\r
-DEFINE_xxx_MASTER   (KaxTagDate,                   0x4EC8, 2, KaxTagMultiDate, "Date", GetKaxTagsGlobal_Context);\r
+DEFINE_TAG_MASTER   (KaxTagMultiDate,              0x4DC8, 2, KaxTag, "MultiDate");\r
+DEFINE_TAG_MASTER   (KaxTagDate,                   0x4EC8, 2, KaxTagMultiDate, "Date");\r
 DEFINE_MKX_UINTEGER (KaxTagMultiDateType,          0x5BD8, 2, KaxTagDate, "MultiDateType");\r
 DEFINE_MKX_DATE     (KaxTagMultiDateDateBegin,     0x4460, 2, KaxTagDate, "MultiDateDateBegin");\r
 DEFINE_MKX_DATE     (KaxTagMultiDateDateEnd,       0x4462, 2, KaxTagDate, "MultiDateDateEnd");\r
 \r
-DEFINE_xxx_MASTER   (KaxTagMultiEntity,            0x4DC9, 2, KaxTag, "MultiEntity", GetKaxTagsGlobal_Context);\r
-DEFINE_xxx_MASTER   (KaxTagEntity,                 0x4EC9, 2, KaxTagMultiEntity, "Entity", GetKaxTagsGlobal_Context);\r
+DEFINE_TAG_MASTER   (KaxTagMultiEntity,            0x4DC9, 2, KaxTag, "MultiEntity");\r
+DEFINE_TAG_MASTER   (KaxTagEntity,                 0x4EC9, 2, KaxTagMultiEntity, "Entity");\r
 DEFINE_MKX_UINTEGER (KaxTagMultiEntityType,        0x5BD9, 2, KaxTagEntity, "MultiEntityType");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiEntityName,        0x5BED, 2, KaxTagEntity, "MultiEntityName");\r
 DEFINE_MKX_STRING   (KaxTagMultiEntityURL,         0x5BDB, 2, KaxTagEntity, "MultiEntityURL");\r
 DEFINE_MKX_STRING   (KaxTagMultiEntityEmail,       0x5BC1, 2, KaxTagEntity, "MultiEntityEmail");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiEntityAddress,     0x5BDC, 2, KaxTagEntity, "MultiEntityAddress");\r
 \r
-DEFINE_xxx_MASTER   (KaxTagMultiIdentifier,        0x4DC6, 2, KaxTag, "MultiIdentifier", GetKaxTagsGlobal_Context);\r
-DEFINE_xxx_MASTER   (KaxTagIdentifier,             0x4EC6, 2, KaxTagMultiIdentifier, "Identifier", GetKaxTagsGlobal_Context);\r
+DEFINE_TAG_MASTER   (KaxTagMultiIdentifier,        0x4DC6, 2, KaxTag, "MultiIdentifier");\r
+DEFINE_TAG_MASTER   (KaxTagIdentifier,             0x4EC6, 2, KaxTagMultiIdentifier, "Identifier");\r
 DEFINE_MKX_UINTEGER (KaxTagMultiIdentifierType,    0x5BAD, 2, KaxTagIdentifier, "MultiIdentifierType");\r
 DEFINE_MKX_BINARY   (KaxTagMultiIdentifierBinary,  0x6B67, 2, KaxTagIdentifier, "MultiIdentifierBinary");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiIdentifierString,  0x6B68, 2, KaxTagIdentifier, "MultiIdentifierString");\r
 \r
-DEFINE_xxx_MASTER   (KaxTagMultiLegal,             0x4DC5, 2, KaxTag, "MultiLegal", GetKaxTagsGlobal_Context);\r
-DEFINE_xxx_MASTER   (KaxTagLegal,                  0x4EC5, 2, KaxTagMultiLegal, "Legal", GetKaxTagsGlobal_Context);\r
+DEFINE_TAG_MASTER   (KaxTagMultiLegal,             0x4DC5, 2, KaxTag, "MultiLegal");\r
+DEFINE_TAG_MASTER   (KaxTagLegal,                  0x4EC5, 2, KaxTagMultiLegal, "Legal");\r
 DEFINE_MKX_UINTEGER (KaxTagMultiLegalType,         0x5BBD, 2, KaxTagLegal, "MultiLegalType");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiLegalContent,      0x5BB2, 2, KaxTagLegal, "MultiLegalContent");\r
 DEFINE_MKX_STRING   (KaxTagMultiLegalURL,          0x5B34, 2, KaxTagLegal, "MultiLegalURL");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiLegalAddress,      0x5B9B, 2, KaxTagLegal, "MultiLegalAddress");\r
 \r
-DEFINE_xxx_MASTER   (KaxTagMultiTitle,             0x4DC4, 2, KaxTag, "MultiTitle", GetKaxTagsGlobal_Context);\r
-DEFINE_xxx_MASTER   (KaxTagTitle,                  0x4EC4, 2, KaxTagMultiTitle, "Title", GetKaxTagsGlobal_Context);\r
+DEFINE_TAG_MASTER   (KaxTagMultiTitle,             0x4DC4, 2, KaxTag, "MultiTitle");\r
+DEFINE_TAG_MASTER   (KaxTagTitle,                  0x4EC4, 2, KaxTagMultiTitle, "Title");\r
 DEFINE_MKX_UINTEGER (KaxTagMultiTitleType,         0x5B7D, 2, KaxTagTitle, "MultiTitleType");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiTitleName,         0x5BB9, 2, KaxTagTitle, "MultiTitleName");\r
 DEFINE_MKX_UNISTRING(KaxTagMultiTitleSubTitle,     0x5B5B, 2, KaxTagTitle, "MultiTitleSubTitle");\r
@@ -215,73 +219,8 @@ DEFINE_MKX_STRING   (KaxTagMultiTitleURL,          0x5BA9, 2, KaxTagTitle, "Mult
 DEFINE_MKX_STRING   (KaxTagMultiTitleEmail,        0x5BC9, 2, KaxTagTitle, "MultiTitleEmail");\r
 DEFINE_MKX_STRING   (KaxTagMultiTitleLanguage,   0x22B59E, 3, KaxTagTitle, "MultiTitleLanguage");\r
 \r
-DEFINE_xxx_MASTER   (KaxTagMultiAttachment,        0x4DC3, 2, KaxTag, "MultiAttachment", GetKaxTagsGlobal_Context);\r
-DEFINE_xxx_MASTER   (KaxTagAttachment,             0x4EC3, 2, KaxTagMultiAttachment, "Attachment", GetKaxTagsGlobal_Context);\r
+DEFINE_TAG_MASTER   (KaxTagMultiAttachment,        0x4DC3, 2, KaxTag, "MultiAttachment");\r
+DEFINE_TAG_MASTER   (KaxTagAttachment,             0x4EC3, 2, KaxTagMultiAttachment, "Attachment");\r
 DEFINE_MKX_UINTEGER (KaxTagAttachmentID,           0x5BA0, 2, KaxTagAttachment, "AttachmentID");\r
 \r
-KaxTagMultiComment::KaxTagMultiComment()\r
-       :EbmlMaster(Context_KaxTagMultiComment)\r
-{}\r
-\r
-\r
-KaxTagMultiCommercial::KaxTagMultiCommercial()\r
-       :EbmlMaster(Context_KaxTagMultiCommercial)\r
-{}\r
-\r
-KaxTagCommercial::KaxTagCommercial()\r
-       :EbmlMaster(Context_KaxTagCommercial)\r
-{}\r
-\r
-KaxTagMultiPrice::KaxTagMultiPrice()\r
-       :EbmlMaster(Context_KaxTagMultiPrice)\r
-{}\r
-\r
-KaxTagMultiDate::KaxTagMultiDate()\r
-       :EbmlMaster(Context_KaxTagMultiDate)\r
-{}\r
-\r
-KaxTagDate::KaxTagDate()\r
-       :EbmlMaster(Context_KaxTagDate)\r
-{}\r
-\r
-KaxTagMultiEntity::KaxTagMultiEntity()\r
-       :EbmlMaster(Context_KaxTagMultiEntity)\r
-{}\r
-       \r
-KaxTagEntity::KaxTagEntity()\r
-       :EbmlMaster(Context_KaxTagEntity)\r
-{}\r
-       \r
-KaxTagMultiLegal::KaxTagMultiLegal()\r
-       :EbmlMaster(Context_KaxTagMultiLegal)\r
-{}\r
-\r
-KaxTagLegal::KaxTagLegal()\r
-       :EbmlMaster(Context_KaxTagLegal)\r
-{}\r
-\r
-KaxTagMultiIdentifier::KaxTagMultiIdentifier()\r
-       :EbmlMaster(Context_KaxTagMultiIdentifier)\r
-{}\r
-\r
-KaxTagIdentifier::KaxTagIdentifier()\r
-       :EbmlMaster(Context_KaxTagIdentifier)\r
-{}\r
-\r
-KaxTagMultiTitle::KaxTagMultiTitle()\r
-       :EbmlMaster(Context_KaxTagMultiTitle)\r
-{}\r
-\r
-KaxTagTitle::KaxTagTitle()\r
-       :EbmlMaster(Context_KaxTagTitle)\r
-{}\r
-\r
-KaxTagMultiAttachment::KaxTagMultiAttachment()\r
-       :EbmlMaster(Context_KaxTagMultiAttachment)\r
-{}\r
-\r
-KaxTagAttachment::KaxTagAttachment()\r
-       :EbmlMaster(Context_KaxTagAttachment)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index 0b9874de361797b22716447ae536d1a769be74ce..58682dd4be0334e51694105653ac189a6af844c3 100644 (file)
@@ -50,8 +50,4 @@ static const EbmlSemantic ContextList_KaxTags[1] =
 \r
 DEFINE_MKX_MASTER(KaxTags, 0x1254C367, 4, KaxSegment, "Tags");\r
 \r
-KaxTags::KaxTags()\r
-       :EbmlMaster(KaxTags_Context)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index 19ba2f5590da44e0d6e03d8f1a51fbaae52bc8cf..f271c5c7bae5f64e00b5ce2d7d086e8238294711 100644 (file)
@@ -64,8 +64,4 @@ DEFINE_MKX_UINTEGER(KaxAudioBitDepth,           0x6264, 2, KaxTrackAudio, "Audio
 DEFINE_MKX_BINARY  (KaxAudioPosition,           0x7D7B, 2, KaxTrackAudio, "AudioPosition");\r
 #endif\r
 \r
-KaxTrackAudio::KaxTrackAudio()\r
-       :EbmlMaster(Context_KaxTrackAudio)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index 421038cb8cdb8572b19ab8763639e637c8a65596..d544faa403d426455e4247c63d1fe0aa0ffbabbd 100644 (file)
@@ -76,8 +76,4 @@ DEFINE_MKX_STRING   (KaxCodecDownloadURL,       0x26B240, 3, KaxTracks, "CodecDo
 DEFINE_MKX_UINTEGER (KaxCodecDecodeAll,             0xAA, 1, KaxTracks, "CodecDecodeAll");\r
 #endif\r
 \r
-KaxTrackTranslate::KaxTrackTranslate()\r
-       :EbmlMaster(Context_KaxTrackTranslate)\r
-{}\r
-\r
 END_LIBMATROSKA_NAMESPACE\r
index 46a953ee6ec307c776a1230c6565b6d04914bbad..084344b80766e451f7971e6135009852eaf5b1c7 100644 (file)
@@ -84,10 +84,6 @@ DEFINE_MKX_UINTEGER(KaxVideoAspectRatio,     0x54B3, 2, KaxTrackVideo, "VideoAsp
 DEFINE_MKX_FLOAT   (KaxVideoGamma,         0x2FB523, 3, KaxTrackVideo, "VideoGamma");\r
 #endif\r
 \r
-KaxTrackVideo::KaxTrackVideo()\r
-       :EbmlMaster(Context_KaxTrackVideo)\r
-{}\r
-\r
 filepos_t KaxVideoFrameRate::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault)\r
 {\r
        assert(false); // no you are not allowed to use this element !\r
index 30aa14bf14c7a811e8f3d16bf35a9a5e66134a3d..ddf0e16ee44fbf2c2a3139caa8d65fd607bfd7a9 100644 (file)
@@ -88,15 +88,11 @@ static const EbmlSemantic ContextList_KaxTrackEntry[27] =
        EbmlSemantic(false, true, EBML_INFO(KaxContentEncodings)),\r
 };\r
 \r
-DEFINE_MKX_MASTER(KaxTracks, 0x1654AE6B, 4, KaxSegment, "Tracks");\r
-DEFINE_MKX_MASTER(KaxTrackEntry,   0xAE, 1, KaxTracks, "TrackEntry");\r
-\r
-KaxTracks::KaxTracks()\r
-       :EbmlMaster(KaxTracks_Context)\r
-{}\r
+DEFINE_MKX_MASTER(KaxTracks,        0x1654AE6B, 4, KaxSegment, "Tracks");\r
+DEFINE_MKX_MASTER_NOBODY(KaxTrackEntry,   0xAE, 1, KaxTracks, "TrackEntry");\r
 \r
 KaxTrackEntry::KaxTrackEntry()\r
-       :EbmlMaster(KaxTrackEntry_Context)\r
+       :EbmlMaster(Context_KaxTrackEntry)\r
        ,bGlobalTimecodeScaleIsSet(false)\r
 {}\r
 \r