From: Steve Lhomme Date: Mon, 5 Apr 2010 16:39:37 +0000 (+0000) Subject: add a default constructor to EbmlMaster based classes X-Git-Tag: release-0.9.0~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c86efc48ee04cf0bf0b989c53ba34a1abf51e3b;p=libmatroska add a default constructor to EbmlMaster based classes git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libmatroska@73 a6f86f6d-0131-4f8e-9e7b-e335508773d5 --- diff --git a/matroska/KaxDefines.h b/matroska/KaxDefines.h index 7b5556b..672b592 100644 --- a/matroska/KaxDefines.h +++ b/matroska/KaxDefines.h @@ -1,61 +1,64 @@ -/**************************************************************************** -** libmatroska : parse Matroska files, see http://www.matroska.org/ -** -** -** -** 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 -*/ -#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 +/**************************************************************************** +** libmatroska : parse Matroska files, see http://www.matroska.org/ +** +** +** +** 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 +*/ +#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_NOBODY(a,b,c,d,e) DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxGlobal_Context) +#define DEFINE_MKX_MASTER(a,b,c,d,e) DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxGlobal_Context) \ + a::a() :EbmlMaster(Context_##a) {} + +#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 diff --git a/src/KaxAttached.cpp b/src/KaxAttached.cpp index ada83c9..5f380cb 100644 --- a/src/KaxAttached.cpp +++ b/src/KaxAttached.cpp @@ -58,7 +58,7 @@ static const EbmlSemantic ContextList_KaxAttached[6] = #endif // MATROSKA_VERSION }; -DEFINE_MKX_MASTER (KaxAttached, 0x61A7, 2, KaxAttachments, "AttachedFile"); +DEFINE_MKX_MASTER_NOBODY(KaxAttached, 0x61A7, 2, KaxAttachments, "AttachedFile"); DEFINE_MKX_UNISTRING(KaxFileDescription, 0x467E, 2, KaxAttachments, "FileDescription"); DEFINE_MKX_UNISTRING(KaxFileName, 0x466E, 2, KaxAttachments, "FileName"); DEFINE_MKX_STRING (KaxMimeType, 0x4660, 2, KaxAttachments, "FileMimeType"); @@ -69,7 +69,7 @@ DEFINE_MKX_BINARY (KaxFileReferral, 0x4675, 2, KaxAttachments, "FileReferra #endif KaxAttached::KaxAttached() - :EbmlMaster(KaxAttached_Context) + :EbmlMaster(Context_KaxAttached) { SetSizeLength(2); // mandatory min size support (for easier updating) (2^(7*2)-2 = 16Ko) } diff --git a/src/KaxAttachments.cpp b/src/KaxAttachments.cpp index 597522e..6b55d84 100644 --- a/src/KaxAttachments.cpp +++ b/src/KaxAttachments.cpp @@ -47,10 +47,10 @@ static const EbmlSemantic ContextList_KaxAttachments[1] = EbmlSemantic(true, false, EBML_INFO(KaxAttached)), ///< EBMLVersion }; -DEFINE_MKX_MASTER(KaxAttachments, 0x1941A469, 4, KaxSegment, "Attachments"); +DEFINE_MKX_MASTER_NOBODY(KaxAttachments, 0x1941A469, 4, KaxSegment, "Attachments"); KaxAttachments::KaxAttachments() - :EbmlMaster(KaxAttachments_Context) + :EbmlMaster(Context_KaxAttachments) { SetSizeLength(2); // mandatory min size support (for easier updating) (2^(7*2)-2 = 16Ko) } diff --git a/src/KaxBlock.cpp b/src/KaxBlock.cpp index 35f96af..231863a 100644 --- a/src/KaxBlock.cpp +++ b/src/KaxBlock.cpp @@ -75,7 +75,7 @@ static const EbmlSemantic ContextList_KaxBlockMore[2] = EbmlSemantic(true, true, EBML_INFO(KaxBlockAdditional)) }; -DEFINE_MKX_MASTER (KaxBlockGroup, 0xA0, 1, KaxCluster, "BlockGroup"); +DEFINE_MKX_MASTER_NOBODY(KaxBlockGroup, 0xA0, 1, KaxCluster, "BlockGroup"); DEFINE_MKX_BINARY (KaxBlock, 0xA1, 1, KaxBlockGroup, "Block"); DEFINE_MKX_UINTEGER(KaxBlockDuration, 0x9B, 1, KaxBlockGroup, "BlockDuration"); #if MATROSKA_VERSION >= 2 @@ -149,14 +149,6 @@ KaxBlockGroup::KaxBlockGroup() ,ParentTrack(NULL) {} -KaxBlockAdditions::KaxBlockAdditions() - :EbmlMaster(Context_KaxBlockAdditions) -{} - -KaxBlockMore::KaxBlockMore() - :EbmlMaster(Context_KaxBlockMore) -{} - /*! \todo handle flags \todo hardcoded limit of the number of frames in a lace should be a parameter diff --git a/src/KaxBlockData.cpp b/src/KaxBlockData.cpp index 678fa4c..23b9ce1 100644 --- a/src/KaxBlockData.cpp +++ b/src/KaxBlockData.cpp @@ -69,14 +69,6 @@ DEFINE_MKX_UINTEGER(KaxReferenceVirtual, 0xFD, 1, KaxBlockGroup, "ReferenceVirt #endif -KaxSlices::KaxSlices() - :EbmlMaster(Context_KaxSlices) -{} - -KaxTimeSlice::KaxTimeSlice() - :EbmlMaster(Context_KaxTimeSlice) -{} - const KaxBlockBlob & KaxReferenceBlock::RefBlock() const { assert(RefdBlock != NULL); diff --git a/src/KaxChapters.cpp b/src/KaxChapters.cpp index b167118..d6fbe85 100644 --- a/src/KaxChapters.cpp +++ b/src/KaxChapters.cpp @@ -122,33 +122,4 @@ DEFINE_MKX_MASTER (KaxChapterProcessCommand, 0x6911, 2, KaxChapterProcess, DEFINE_MKX_UINTEGER (KaxChapterProcessTime, 0x6922, 2, KaxChapterProcessCommand, "ChapterProcessTime"); DEFINE_MKX_BINARY (KaxChapterProcessData, 0x6933, 2, KaxChapterProcessCommand, "ChapterProcessData"); - -KaxChapters::KaxChapters() - :EbmlMaster(Context_KaxChapters) -{} - -KaxEditionEntry::KaxEditionEntry() -:EbmlMaster(Context_KaxEditionEntry) -{} - -KaxChapterAtom::KaxChapterAtom() -:EbmlMaster(Context_KaxChapterAtom) -{} - -KaxChapterTrack::KaxChapterTrack() -:EbmlMaster(Context_KaxChapterTrack) -{} - -KaxChapterDisplay::KaxChapterDisplay() -:EbmlMaster(Context_KaxChapterDisplay) -{} - -KaxChapterProcess::KaxChapterProcess() -:EbmlMaster(Context_KaxChapterProcess) -{} - -KaxChapterProcessCommand::KaxChapterProcessCommand() -:EbmlMaster(Context_KaxChapterProcessCommand) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxCluster.cpp b/src/KaxCluster.cpp index 1be9d56..82b892d 100644 --- a/src/KaxCluster.cpp +++ b/src/KaxCluster.cpp @@ -56,10 +56,10 @@ static const EbmlSemantic ContextList_KaxCluster[6] = EbmlSemantic(false, true, EBML_INFO(KaxClusterPosition)), }; -DEFINE_MKX_MASTER(KaxCluster, 0x1F43B675, 4, KaxSegment, "Cluster"); +DEFINE_MKX_MASTER_NOBODY(KaxCluster, 0x1F43B675, 4, KaxSegment, "Cluster"); KaxCluster::KaxCluster() - :EbmlMaster(KaxCluster_Context) + :EbmlMaster(Context_KaxCluster) ,currentNewBlock(NULL) ,ParentSegment(NULL) ,bFirstFrameInside(false) diff --git a/src/KaxClusterData.cpp b/src/KaxClusterData.cpp index 13cd774..c90dcd7 100644 --- a/src/KaxClusterData.cpp +++ b/src/KaxClusterData.cpp @@ -49,8 +49,4 @@ DEFINE_MKX_UINTEGER(KaxClusterSilentTrackNumber, 0x58D7, 2, KaxClusterSilentTrac DEFINE_MKX_UINTEGER(KaxClusterPosition, 0xA7, 1, KaxCluster, "ClusterPosition"); DEFINE_MKX_UINTEGER(KaxClusterPrevSize, 0xAB, 1, KaxCluster, "ClusterPrevSize"); -KaxClusterSilentTracks::KaxClusterSilentTracks() -:EbmlMaster(Context_KaxClusterSilentTracks) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxContentEncoding.cpp b/src/KaxContentEncoding.cpp index da6107f..b965786 100644 --- a/src/KaxContentEncoding.cpp +++ b/src/KaxContentEncoding.cpp @@ -80,20 +80,4 @@ DEFINE_MKX_BINARY (KaxContentSigKeyID, 0x47e4, 2, KaxContentEncryption, "C DEFINE_MKX_UINTEGER(KaxContentSigAlgo, 0x47e5, 2, KaxContentEncryption, "ContentSigAlgo"); DEFINE_MKX_UINTEGER(KaxContentSigHashAlgo, 0x47e6, 2, KaxContentEncryption, "ContentSigHashAlgo"); -KaxContentEncodings::KaxContentEncodings(): - EbmlMaster(Context_KaxContentEncodings) { -} - -KaxContentEncoding::KaxContentEncoding(): - EbmlMaster(Context_KaxContentEncoding) { -} - -KaxContentCompression::KaxContentCompression(): - EbmlMaster(Context_KaxContentCompression) { -} - -KaxContentEncryption::KaxContentEncryption(): - EbmlMaster(Context_KaxContentEncryption) { -} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxCues.cpp b/src/KaxCues.cpp index d2ea0e2..5d88b6b 100644 --- a/src/KaxCues.cpp +++ b/src/KaxCues.cpp @@ -48,10 +48,6 @@ static const EbmlSemantic ContextList_KaxCues[1] = DEFINE_MKX_MASTER(KaxCues, 0x1C53BB6B, 4, KaxSegment, "Cues"); -KaxCues::KaxCues() - :EbmlMaster(KaxCues_Context) -{} - KaxCues::~KaxCues() { assert(myTempReferences.size() == 0); // otherwise that means you have added references and forgot to set the position diff --git a/src/KaxCuesData.cpp b/src/KaxCuesData.cpp index ba3b0a3..fabb948 100644 --- a/src/KaxCuesData.cpp +++ b/src/KaxCuesData.cpp @@ -88,20 +88,6 @@ DEFINE_MKX_UINTEGER(KaxCueRefNumber, 0x535F, 2, KaxCueRefTime, "CueRefNumber DEFINE_MKX_UINTEGER(KaxCueRefCodecState, 0xEB, 1, KaxCueRefTime, "CueRefCodecState"); #endif -KaxCuePoint::KaxCuePoint() - :EbmlMaster(Context_KaxCuePoint) -{} - -KaxCueTrackPositions::KaxCueTrackPositions() - :EbmlMaster(Context_KaxCueTrackPositions) -{} - -#if MATROSKA_VERSION >= 2 -KaxCueReference::KaxCueReference() - :EbmlMaster(Context_KaxCueReference) -{} -#endif // MATROSKA_VERSION - /*! \todo handle codec state checking \todo remove duplicate references (reference to 2 frames that each reference the same frame) diff --git a/src/KaxInfo.cpp b/src/KaxInfo.cpp index 2c4261d..dcc31d7 100644 --- a/src/KaxInfo.cpp +++ b/src/KaxInfo.cpp @@ -63,8 +63,4 @@ DEFINE_MKX_MASTER (KaxInfo, 0x1549A966, 4, KaxSegment, "Info"); DEFINE_MKX_UNISTRING(KaxMuxingApp, 0x4D80, 2, KaxInfo, "MuxingApp"); DEFINE_MKX_UNISTRING(KaxWritingApp, 0x5741, 2, KaxInfo, "WritingApp"); -KaxInfo::KaxInfo() - :EbmlMaster(KaxInfo_Context) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxInfoData.cpp b/src/KaxInfoData.cpp index 7f0f015..c21a995 100644 --- a/src/KaxInfoData.cpp +++ b/src/KaxInfoData.cpp @@ -62,8 +62,4 @@ DEFINE_MKX_FLOAT (KaxDuration, 0x4489, 2, KaxInfo, "Duratio DEFINE_MKX_DATE (KaxDateUTC, 0x4461, 2, KaxInfo, "DateUTC"); DEFINE_MKX_UNISTRING(KaxTitle, 0x7BA9, 2, KaxInfo, "Title"); -KaxChapterTranslate::KaxChapterTranslate() - :EbmlMaster(Context_KaxChapterTranslate) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxSeekHead.cpp b/src/KaxSeekHead.cpp index ba157e4..17d7890 100644 --- a/src/KaxSeekHead.cpp +++ b/src/KaxSeekHead.cpp @@ -59,14 +59,6 @@ DEFINE_MKX_MASTER (KaxSeek, 0x4DBB, 2, KaxSeekHead, "SeekPoint"); DEFINE_MKX_BINARY (KaxSeekID, 0x53AB, 2, KaxSeek, "SeekID"); DEFINE_MKX_UINTEGER(KaxSeekPosition, 0x53AC, 2, KaxSeek, "SeekPosition"); -KaxSeekHead::KaxSeekHead() - :EbmlMaster(Context_KaxSeekHead) -{} - -KaxSeek::KaxSeek() - :EbmlMaster(Context_KaxSeek) -{} - /*! \todo verify that the element is not already in the list */ diff --git a/src/KaxTag.cpp b/src/KaxTag.cpp index 486b3ab..7a1cd24 100644 --- a/src/KaxTag.cpp +++ b/src/KaxTag.cpp @@ -197,32 +197,4 @@ DEFINE_MKX_UINTEGER (KaxTagDefault, 0x4484, 2, KaxTagSimple, "Tag DEFINE_MKX_UNISTRING(KaxTagString, 0x4487, 2, KaxTagSimple, "TagString"); DEFINE_MKX_BINARY (KaxTagBinary, 0x4485, 2, KaxTagSimple, "TagBinary"); -KaxTag::KaxTag() - :EbmlMaster(Context_KaxTag) -{} - -KaxTagTargets::KaxTagTargets() - :EbmlMaster(Context_KaxTagTargets) -{} - -KaxTagGeneral::KaxTagGeneral() - :EbmlMaster(Context_KaxTagGeneral) -{} - -KaxTagGenres::KaxTagGenres() - :EbmlMaster(Context_KaxTagGenres) -{} - -KaxTagAudioSpecific::KaxTagAudioSpecific() - :EbmlMaster(Context_KaxTagAudioSpecific) -{} - -KaxTagImageSpecific::KaxTagImageSpecific() - :EbmlMaster(Context_KaxTagImageSpecific) -{} - -KaxTagSimple::KaxTagSimple() - :EbmlMaster(Context_KaxTagSimple) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxTagMulti.cpp b/src/KaxTagMulti.cpp index cedfb26..b77fb51 100644 --- a/src/KaxTagMulti.cpp +++ b/src/KaxTagMulti.cpp @@ -160,52 +160,56 @@ const EbmlSemanticContext & GetKaxTagsGlobal_Context() return Context_KaxTagMultiGlobal; } +#define DEFINE_TAG_MASTER(a,b,c,d,e) DEFINE_xxx_MASTER(a,b,c,d,e,*GetKaxTagsGlobal_Context) \ + a::a() :EbmlMaster(Context_##a) {} + + DEFINE_MKX_MASTER (KaxTagMultiComment, 0x5B7B, 2, KaxTag, "MultiComment"); DEFINE_MKX_STRING (KaxTagMultiCommentName, 0x5F7D, 2, KaxTagMultiComment, "MultiCommentName"); DEFINE_MKX_UNISTRING(KaxTagMultiCommentComments, 0x5F7C, 2, KaxTagMultiComment, "MultiCommentComments"); DEFINE_MKX_STRING (KaxTagMultiCommentLanguage, 0x22B59D, 3, KaxTagMultiComment, "MultiCommentLanguage"); -DEFINE_xxx_MASTER (KaxTagMultiCommercial, 0x4DC7, 2, KaxTag, "MultiCommercial", GetKaxTagsGlobal_Context); -DEFINE_xxx_MASTER (KaxTagCommercial, 0x4EC7, 2, KaxTagMultiCommercial, "Commercial", GetKaxTagsGlobal_Context); +DEFINE_TAG_MASTER (KaxTagMultiCommercial, 0x4DC7, 2, KaxTag, "MultiCommercial"); +DEFINE_TAG_MASTER (KaxTagCommercial, 0x4EC7, 2, KaxTagMultiCommercial, "Commercial"); DEFINE_MKX_UINTEGER (KaxTagMultiCommercialType, 0x5BD7, 2, KaxTagCommercial, "MultiCommercialType"); DEFINE_MKX_UNISTRING(KaxTagMultiCommercialAddress, 0x5BBB, 2, KaxTagCommercial, "MultiCommercialAddress"); DEFINE_MKX_STRING (KaxTagMultiCommercialURL, 0x5BDA, 2, KaxTagCommercial, "MultiCommercialURL"); DEFINE_MKX_STRING (KaxTagMultiCommercialEmail, 0x5BC0, 2, KaxTagCommercial, "MultiCommercialEmail"); -DEFINE_xxx_MASTER (KaxTagMultiPrice, 0x5BC3, 2, KaxTagCommercial, "MultiPrice", GetKaxTagsGlobal_Context); +DEFINE_TAG_MASTER (KaxTagMultiPrice, 0x5BC3, 2, KaxTagCommercial, "MultiPrice"); DEFINE_MKX_STRING (KaxTagMultiPriceCurrency, 0x5B6C, 2, KaxTagMultiPrice, "MultiPriceCurrency"); DEFINE_MKX_FLOAT (KaxTagMultiPriceAmount, 0x5B6E, 2, KaxTagMultiPrice, "MultiPriceAmount"); DEFINE_MKX_DATE (KaxTagMultiPricePriceDate, 0x5B6F, 2, KaxTagMultiPrice, "MultiPricePriceDate"); -DEFINE_xxx_MASTER (KaxTagMultiDate, 0x4DC8, 2, KaxTag, "MultiDate", GetKaxTagsGlobal_Context); -DEFINE_xxx_MASTER (KaxTagDate, 0x4EC8, 2, KaxTagMultiDate, "Date", GetKaxTagsGlobal_Context); +DEFINE_TAG_MASTER (KaxTagMultiDate, 0x4DC8, 2, KaxTag, "MultiDate"); +DEFINE_TAG_MASTER (KaxTagDate, 0x4EC8, 2, KaxTagMultiDate, "Date"); DEFINE_MKX_UINTEGER (KaxTagMultiDateType, 0x5BD8, 2, KaxTagDate, "MultiDateType"); DEFINE_MKX_DATE (KaxTagMultiDateDateBegin, 0x4460, 2, KaxTagDate, "MultiDateDateBegin"); DEFINE_MKX_DATE (KaxTagMultiDateDateEnd, 0x4462, 2, KaxTagDate, "MultiDateDateEnd"); -DEFINE_xxx_MASTER (KaxTagMultiEntity, 0x4DC9, 2, KaxTag, "MultiEntity", GetKaxTagsGlobal_Context); -DEFINE_xxx_MASTER (KaxTagEntity, 0x4EC9, 2, KaxTagMultiEntity, "Entity", GetKaxTagsGlobal_Context); +DEFINE_TAG_MASTER (KaxTagMultiEntity, 0x4DC9, 2, KaxTag, "MultiEntity"); +DEFINE_TAG_MASTER (KaxTagEntity, 0x4EC9, 2, KaxTagMultiEntity, "Entity"); DEFINE_MKX_UINTEGER (KaxTagMultiEntityType, 0x5BD9, 2, KaxTagEntity, "MultiEntityType"); DEFINE_MKX_UNISTRING(KaxTagMultiEntityName, 0x5BED, 2, KaxTagEntity, "MultiEntityName"); DEFINE_MKX_STRING (KaxTagMultiEntityURL, 0x5BDB, 2, KaxTagEntity, "MultiEntityURL"); DEFINE_MKX_STRING (KaxTagMultiEntityEmail, 0x5BC1, 2, KaxTagEntity, "MultiEntityEmail"); DEFINE_MKX_UNISTRING(KaxTagMultiEntityAddress, 0x5BDC, 2, KaxTagEntity, "MultiEntityAddress"); -DEFINE_xxx_MASTER (KaxTagMultiIdentifier, 0x4DC6, 2, KaxTag, "MultiIdentifier", GetKaxTagsGlobal_Context); -DEFINE_xxx_MASTER (KaxTagIdentifier, 0x4EC6, 2, KaxTagMultiIdentifier, "Identifier", GetKaxTagsGlobal_Context); +DEFINE_TAG_MASTER (KaxTagMultiIdentifier, 0x4DC6, 2, KaxTag, "MultiIdentifier"); +DEFINE_TAG_MASTER (KaxTagIdentifier, 0x4EC6, 2, KaxTagMultiIdentifier, "Identifier"); DEFINE_MKX_UINTEGER (KaxTagMultiIdentifierType, 0x5BAD, 2, KaxTagIdentifier, "MultiIdentifierType"); DEFINE_MKX_BINARY (KaxTagMultiIdentifierBinary, 0x6B67, 2, KaxTagIdentifier, "MultiIdentifierBinary"); DEFINE_MKX_UNISTRING(KaxTagMultiIdentifierString, 0x6B68, 2, KaxTagIdentifier, "MultiIdentifierString"); -DEFINE_xxx_MASTER (KaxTagMultiLegal, 0x4DC5, 2, KaxTag, "MultiLegal", GetKaxTagsGlobal_Context); -DEFINE_xxx_MASTER (KaxTagLegal, 0x4EC5, 2, KaxTagMultiLegal, "Legal", GetKaxTagsGlobal_Context); +DEFINE_TAG_MASTER (KaxTagMultiLegal, 0x4DC5, 2, KaxTag, "MultiLegal"); +DEFINE_TAG_MASTER (KaxTagLegal, 0x4EC5, 2, KaxTagMultiLegal, "Legal"); DEFINE_MKX_UINTEGER (KaxTagMultiLegalType, 0x5BBD, 2, KaxTagLegal, "MultiLegalType"); DEFINE_MKX_UNISTRING(KaxTagMultiLegalContent, 0x5BB2, 2, KaxTagLegal, "MultiLegalContent"); DEFINE_MKX_STRING (KaxTagMultiLegalURL, 0x5B34, 2, KaxTagLegal, "MultiLegalURL"); DEFINE_MKX_UNISTRING(KaxTagMultiLegalAddress, 0x5B9B, 2, KaxTagLegal, "MultiLegalAddress"); -DEFINE_xxx_MASTER (KaxTagMultiTitle, 0x4DC4, 2, KaxTag, "MultiTitle", GetKaxTagsGlobal_Context); -DEFINE_xxx_MASTER (KaxTagTitle, 0x4EC4, 2, KaxTagMultiTitle, "Title", GetKaxTagsGlobal_Context); +DEFINE_TAG_MASTER (KaxTagMultiTitle, 0x4DC4, 2, KaxTag, "MultiTitle"); +DEFINE_TAG_MASTER (KaxTagTitle, 0x4EC4, 2, KaxTagMultiTitle, "Title"); DEFINE_MKX_UINTEGER (KaxTagMultiTitleType, 0x5B7D, 2, KaxTagTitle, "MultiTitleType"); DEFINE_MKX_UNISTRING(KaxTagMultiTitleName, 0x5BB9, 2, KaxTagTitle, "MultiTitleName"); DEFINE_MKX_UNISTRING(KaxTagMultiTitleSubTitle, 0x5B5B, 2, KaxTagTitle, "MultiTitleSubTitle"); @@ -215,73 +219,8 @@ DEFINE_MKX_STRING (KaxTagMultiTitleURL, 0x5BA9, 2, KaxTagTitle, "Mult DEFINE_MKX_STRING (KaxTagMultiTitleEmail, 0x5BC9, 2, KaxTagTitle, "MultiTitleEmail"); DEFINE_MKX_STRING (KaxTagMultiTitleLanguage, 0x22B59E, 3, KaxTagTitle, "MultiTitleLanguage"); -DEFINE_xxx_MASTER (KaxTagMultiAttachment, 0x4DC3, 2, KaxTag, "MultiAttachment", GetKaxTagsGlobal_Context); -DEFINE_xxx_MASTER (KaxTagAttachment, 0x4EC3, 2, KaxTagMultiAttachment, "Attachment", GetKaxTagsGlobal_Context); +DEFINE_TAG_MASTER (KaxTagMultiAttachment, 0x4DC3, 2, KaxTag, "MultiAttachment"); +DEFINE_TAG_MASTER (KaxTagAttachment, 0x4EC3, 2, KaxTagMultiAttachment, "Attachment"); DEFINE_MKX_UINTEGER (KaxTagAttachmentID, 0x5BA0, 2, KaxTagAttachment, "AttachmentID"); -KaxTagMultiComment::KaxTagMultiComment() - :EbmlMaster(Context_KaxTagMultiComment) -{} - - -KaxTagMultiCommercial::KaxTagMultiCommercial() - :EbmlMaster(Context_KaxTagMultiCommercial) -{} - -KaxTagCommercial::KaxTagCommercial() - :EbmlMaster(Context_KaxTagCommercial) -{} - -KaxTagMultiPrice::KaxTagMultiPrice() - :EbmlMaster(Context_KaxTagMultiPrice) -{} - -KaxTagMultiDate::KaxTagMultiDate() - :EbmlMaster(Context_KaxTagMultiDate) -{} - -KaxTagDate::KaxTagDate() - :EbmlMaster(Context_KaxTagDate) -{} - -KaxTagMultiEntity::KaxTagMultiEntity() - :EbmlMaster(Context_KaxTagMultiEntity) -{} - -KaxTagEntity::KaxTagEntity() - :EbmlMaster(Context_KaxTagEntity) -{} - -KaxTagMultiLegal::KaxTagMultiLegal() - :EbmlMaster(Context_KaxTagMultiLegal) -{} - -KaxTagLegal::KaxTagLegal() - :EbmlMaster(Context_KaxTagLegal) -{} - -KaxTagMultiIdentifier::KaxTagMultiIdentifier() - :EbmlMaster(Context_KaxTagMultiIdentifier) -{} - -KaxTagIdentifier::KaxTagIdentifier() - :EbmlMaster(Context_KaxTagIdentifier) -{} - -KaxTagMultiTitle::KaxTagMultiTitle() - :EbmlMaster(Context_KaxTagMultiTitle) -{} - -KaxTagTitle::KaxTagTitle() - :EbmlMaster(Context_KaxTagTitle) -{} - -KaxTagMultiAttachment::KaxTagMultiAttachment() - :EbmlMaster(Context_KaxTagMultiAttachment) -{} - -KaxTagAttachment::KaxTagAttachment() - :EbmlMaster(Context_KaxTagAttachment) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxTags.cpp b/src/KaxTags.cpp index 0b9874d..58682dd 100644 --- a/src/KaxTags.cpp +++ b/src/KaxTags.cpp @@ -50,8 +50,4 @@ static const EbmlSemantic ContextList_KaxTags[1] = DEFINE_MKX_MASTER(KaxTags, 0x1254C367, 4, KaxSegment, "Tags"); -KaxTags::KaxTags() - :EbmlMaster(KaxTags_Context) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxTrackAudio.cpp b/src/KaxTrackAudio.cpp index 19ba2f5..f271c5c 100644 --- a/src/KaxTrackAudio.cpp +++ b/src/KaxTrackAudio.cpp @@ -64,8 +64,4 @@ DEFINE_MKX_UINTEGER(KaxAudioBitDepth, 0x6264, 2, KaxTrackAudio, "Audio DEFINE_MKX_BINARY (KaxAudioPosition, 0x7D7B, 2, KaxTrackAudio, "AudioPosition"); #endif -KaxTrackAudio::KaxTrackAudio() - :EbmlMaster(Context_KaxTrackAudio) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxTrackEntryData.cpp b/src/KaxTrackEntryData.cpp index 421038c..d544faa 100644 --- a/src/KaxTrackEntryData.cpp +++ b/src/KaxTrackEntryData.cpp @@ -76,8 +76,4 @@ DEFINE_MKX_STRING (KaxCodecDownloadURL, 0x26B240, 3, KaxTracks, "CodecDo DEFINE_MKX_UINTEGER (KaxCodecDecodeAll, 0xAA, 1, KaxTracks, "CodecDecodeAll"); #endif -KaxTrackTranslate::KaxTrackTranslate() - :EbmlMaster(Context_KaxTrackTranslate) -{} - END_LIBMATROSKA_NAMESPACE diff --git a/src/KaxTrackVideo.cpp b/src/KaxTrackVideo.cpp index 46a953e..084344b 100644 --- a/src/KaxTrackVideo.cpp +++ b/src/KaxTrackVideo.cpp @@ -84,10 +84,6 @@ DEFINE_MKX_UINTEGER(KaxVideoAspectRatio, 0x54B3, 2, KaxTrackVideo, "VideoAsp DEFINE_MKX_FLOAT (KaxVideoGamma, 0x2FB523, 3, KaxTrackVideo, "VideoGamma"); #endif -KaxTrackVideo::KaxTrackVideo() - :EbmlMaster(Context_KaxTrackVideo) -{} - filepos_t KaxVideoFrameRate::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) { assert(false); // no you are not allowed to use this element ! diff --git a/src/KaxTracks.cpp b/src/KaxTracks.cpp index 30aa14b..ddf0e16 100644 --- a/src/KaxTracks.cpp +++ b/src/KaxTracks.cpp @@ -88,15 +88,11 @@ static const EbmlSemantic ContextList_KaxTrackEntry[27] = EbmlSemantic(false, true, EBML_INFO(KaxContentEncodings)), }; -DEFINE_MKX_MASTER(KaxTracks, 0x1654AE6B, 4, KaxSegment, "Tracks"); -DEFINE_MKX_MASTER(KaxTrackEntry, 0xAE, 1, KaxTracks, "TrackEntry"); - -KaxTracks::KaxTracks() - :EbmlMaster(KaxTracks_Context) -{} +DEFINE_MKX_MASTER(KaxTracks, 0x1654AE6B, 4, KaxSegment, "Tracks"); +DEFINE_MKX_MASTER_NOBODY(KaxTrackEntry, 0xAE, 1, KaxTracks, "TrackEntry"); KaxTrackEntry::KaxTrackEntry() - :EbmlMaster(KaxTrackEntry_Context) + :EbmlMaster(Context_KaxTrackEntry) ,bGlobalTimecodeScaleIsSet(false) {}