move the default values in the .cpp files via the new declaration macros
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libmatroska@77 a6f86f6d-0131-4f8e-9e7b-e335508773d5
This commit is contained in:
parent
e42acc7263
commit
becc597951
@ -41,46 +41,42 @@
|
||||
#include "ebml/EbmlString.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxAttached : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxAttached)
|
||||
public:
|
||||
KaxAttached();
|
||||
KaxAttached(const KaxAttached & ElementToClone) : EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxAttached)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxFileDescription : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxFileDescription)
|
||||
public:
|
||||
KaxFileDescription() {}
|
||||
KaxFileDescription(const KaxFileDescription & ElementToClone) : EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxFileDescription)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxFileName : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxFileName)
|
||||
public:
|
||||
KaxFileName() {}
|
||||
KaxFileName(const KaxFileName & ElementToClone) : EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxFileName)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxMimeType : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxMimeType)
|
||||
public:
|
||||
KaxMimeType() {}
|
||||
KaxMimeType(const KaxMimeType & ElementToClone) : EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxMimeType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxFileData : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxFileData)
|
||||
public:
|
||||
KaxFileData() {}
|
||||
KaxFileData(const KaxFileData & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
@ -88,18 +84,16 @@ class MATROSKA_DLL_API KaxFileData : public EbmlBinary {
|
||||
EBML_CONCRETE_CLASS(KaxFileData)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxFileReferral : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxFileReferral)
|
||||
public:
|
||||
KaxFileReferral() {}
|
||||
KaxFileReferral(const KaxFileReferral & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxFileReferral)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxFileUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxFileUID)
|
||||
public:
|
||||
KaxFileUID() {}
|
||||
KaxFileUID(const KaxFileUID & ElementToClone) : EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxFileUID)
|
||||
|
@ -37,14 +37,14 @@
|
||||
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxAttachments : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxAttachments)
|
||||
public:
|
||||
KaxAttachments();
|
||||
KaxAttachments(const KaxAttachments & ElementToClone) : EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxAttachments)
|
||||
|
@ -1,424 +1,420 @@
|
||||
/****************************************************************************
|
||||
** 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
|
||||
\todo add a PureBlock class to group functionalities between Block and BlockVirtual
|
||||
\version \$Id: KaxBlock.h,v 1.24 2004/04/14 23:26:17 robux4 Exp $
|
||||
\author Steve Lhomme <robux4 @ users.sf.net>
|
||||
\author Julien Coloos <suiryc @ users.sf.net>
|
||||
*/
|
||||
#ifndef LIBMATROSKA_BLOCK_H
|
||||
#define LIBMATROSKA_BLOCK_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "matroska/KaxTracks.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class KaxCluster;
|
||||
class KaxReferenceBlock;
|
||||
class KaxInternalBlock;
|
||||
class KaxBlockBlob;
|
||||
|
||||
class MATROSKA_DLL_API DataBuffer {
|
||||
protected:
|
||||
binary * myBuffer;
|
||||
uint32 mySize;
|
||||
bool bValidValue;
|
||||
bool (*myFreeBuffer)(const DataBuffer & aBuffer); // method to free the internal buffer
|
||||
|
||||
public:
|
||||
DataBuffer(binary * aBuffer, uint32 aSize, bool (*aFreeBuffer)(const DataBuffer & aBuffer) = NULL)
|
||||
:myBuffer(aBuffer)
|
||||
,mySize(aSize)
|
||||
,bValidValue(true)
|
||||
,myFreeBuffer(aFreeBuffer)
|
||||
{}
|
||||
virtual ~DataBuffer() {}
|
||||
virtual binary * Buffer() {return myBuffer;}
|
||||
virtual uint32 & Size() {return mySize;};
|
||||
virtual const binary * Buffer() const {return myBuffer;}
|
||||
virtual const uint32 Size() const {return mySize;};
|
||||
bool FreeBuffer(const DataBuffer & aBuffer) {
|
||||
bool bResult = true;
|
||||
if (myBuffer != NULL && myFreeBuffer != NULL && bValidValue) {
|
||||
bResult = myFreeBuffer(aBuffer);
|
||||
myBuffer = NULL;
|
||||
bValidValue = false;
|
||||
}
|
||||
return bResult;
|
||||
}
|
||||
|
||||
virtual DataBuffer * Clone();
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API SimpleDataBuffer : public DataBuffer {
|
||||
public:
|
||||
SimpleDataBuffer(binary * aBuffer, uint32 aSize, uint32 aOffset, bool (*aFreeBuffer)(const DataBuffer & aBuffer) = myFreeBuffer)
|
||||
:DataBuffer(aBuffer + aOffset, aSize, aFreeBuffer)
|
||||
,Offset(aOffset)
|
||||
,BaseBuffer(aBuffer)
|
||||
{}
|
||||
virtual ~SimpleDataBuffer() {}
|
||||
|
||||
DataBuffer * Clone() {return new SimpleDataBuffer(*this);}
|
||||
|
||||
protected:
|
||||
uint32 Offset;
|
||||
binary * BaseBuffer;
|
||||
|
||||
static bool myFreeBuffer(const DataBuffer & aBuffer)
|
||||
{
|
||||
binary *_Buffer = static_cast<const SimpleDataBuffer*>(&aBuffer)->BaseBuffer;
|
||||
if (_Buffer != NULL)
|
||||
free(_Buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
SimpleDataBuffer(const SimpleDataBuffer & ToClone);
|
||||
};
|
||||
|
||||
/*!
|
||||
\note the data is copied locally, it can be freed right away
|
||||
* /
|
||||
class MATROSKA_DLL_API NotSoSimpleDataBuffer : public SimpleDataBuffer {
|
||||
public:
|
||||
NotSoSimpleDataBuffer(binary * aBuffer, uint32 aSize, uint32 aOffset)
|
||||
:SimpleDataBuffer(new binary[aSize - aOffset], aSize, 0)
|
||||
{
|
||||
memcpy(BaseBuffer, aBuffer + aOffset, aSize - aOffset);
|
||||
}
|
||||
};
|
||||
*/
|
||||
|
||||
class MATROSKA_DLL_API KaxBlockGroup : public EbmlMaster {
|
||||
public:
|
||||
KaxBlockGroup();
|
||||
KaxBlockGroup(const KaxBlockGroup & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
~KaxBlockGroup();
|
||||
|
||||
/*!
|
||||
\brief Addition of a frame without references
|
||||
*/
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, LacingType lacing = LACING_AUTO);
|
||||
/*!
|
||||
\brief Addition of a frame with a backward reference (P frame)
|
||||
*/
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, const KaxBlockGroup & PastBlock, LacingType lacing = LACING_AUTO);
|
||||
|
||||
/*!
|
||||
\brief Addition of a frame with a backward+forward reference (B frame)
|
||||
*/
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, const KaxBlockGroup & PastBlock, const KaxBlockGroup & ForwBlock, LacingType lacing = LACING_AUTO);
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, const KaxBlockBlob * PastBlock, const KaxBlockBlob * ForwBlock, LacingType lacing = LACING_AUTO);
|
||||
|
||||
void SetParent(KaxCluster & aParentCluster);
|
||||
|
||||
void SetParentTrack(const KaxTrackEntry & aParentTrack) {
|
||||
ParentTrack = &aParentTrack;
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Set the duration of the contained frame(s) (for the total number of frames)
|
||||
*/
|
||||
void SetBlockDuration(uint64 TimeLength);
|
||||
bool GetBlockDuration(uint64 &TheTimecode) const;
|
||||
|
||||
/*!
|
||||
\return the global timecode of this Block (not just the delta to the Cluster)
|
||||
*/
|
||||
uint64 GlobalTimecode() const;
|
||||
uint64 GlobalTimecodeScale() const {
|
||||
assert(ParentTrack != NULL);
|
||||
return ParentTrack->GlobalTimecodeScale();
|
||||
}
|
||||
|
||||
uint16 TrackNumber() const;
|
||||
|
||||
uint64 ClusterPosition() const;
|
||||
|
||||
/*!
|
||||
\return the number of references to other frames
|
||||
*/
|
||||
unsigned int ReferenceCount() const;
|
||||
const KaxReferenceBlock & Reference(unsigned int Index) const;
|
||||
|
||||
/*!
|
||||
\brief release all the frames of all Blocks
|
||||
*/
|
||||
void ReleaseFrames();
|
||||
|
||||
operator KaxInternalBlock &();
|
||||
|
||||
const KaxCluster *GetParentCluster() const { return ParentCluster; }
|
||||
|
||||
protected:
|
||||
KaxCluster * ParentCluster;
|
||||
const KaxTrackEntry * ParentTrack;
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockGroup)
|
||||
};
|
||||
|
||||
class KaxInternalBlock : public EbmlBinary {
|
||||
public:
|
||||
KaxInternalBlock( bool bSimple ) :bLocalTimecodeUsed(false), mLacing(LACING_AUTO), mInvisible(false)
|
||||
,ParentCluster(NULL), bIsSimple(bSimple), bIsKeyframe(true), bIsDiscardable(false)
|
||||
{}
|
||||
KaxInternalBlock(const KaxInternalBlock & ElementToClone);
|
||||
~KaxInternalBlock();
|
||||
bool ValidateSize() const;
|
||||
|
||||
uint16 TrackNum() const {return TrackNumber;}
|
||||
/*!
|
||||
\todo !!!! This method needs to be changes !
|
||||
*/
|
||||
uint64 GlobalTimecode() const {return Timecode;}
|
||||
|
||||
/*!
|
||||
\note override this function to generate the Data/Size on the fly, unlike the usual binary elements
|
||||
*/
|
||||
filepos_t UpdateSize(bool bSaveDefault = false, bool bForceRender = false);
|
||||
filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
|
||||
|
||||
/*!
|
||||
\brief Only read the head of the Block (not internal data)
|
||||
\note convenient when you are parsing the file quickly
|
||||
*/
|
||||
uint64 ReadInternalHead(IOCallback & input);
|
||||
|
||||
unsigned int NumberFrames() const { return SizeList.size();}
|
||||
DataBuffer & GetBuffer(unsigned int iIndex) {return *myBuffers[iIndex];}
|
||||
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, LacingType lacing = LACING_AUTO, bool invisible = false);
|
||||
|
||||
/*!
|
||||
\brief release all the frames of all Blocks
|
||||
*/
|
||||
void ReleaseFrames();
|
||||
|
||||
void SetParent(KaxCluster & aParentCluster);
|
||||
|
||||
/*!
|
||||
\return Returns the lacing type that produces the smallest footprint.
|
||||
*/
|
||||
LacingType GetBestLacingType() const;
|
||||
|
||||
/*!
|
||||
\param FrameNumber 0 for the first frame
|
||||
\return the position in the stream for a given frame
|
||||
\note return -1 if the position doesn't exist
|
||||
*/
|
||||
int64 GetDataPosition(size_t FrameNumber = 0);
|
||||
|
||||
/*!
|
||||
\param FrameNumber 0 for the first frame
|
||||
\return the size of a given frame
|
||||
\note return -1 if the position doesn't exist
|
||||
*/
|
||||
int64 GetFrameSize(size_t FrameNumber = 0);
|
||||
|
||||
bool IsInvisible() const { return mInvisible; }
|
||||
|
||||
uint64 ClusterPosition() const;
|
||||
|
||||
protected:
|
||||
std::vector<DataBuffer *> myBuffers;
|
||||
std::vector<int32> SizeList;
|
||||
uint64 Timecode; // temporary timecode of the first frame, non scaled
|
||||
int16 LocalTimecode;
|
||||
bool bLocalTimecodeUsed;
|
||||
uint16 TrackNumber;
|
||||
LacingType mLacing;
|
||||
bool mInvisible;
|
||||
uint64 FirstFrameLocation;
|
||||
|
||||
filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault = false);
|
||||
|
||||
KaxCluster * ParentCluster;
|
||||
bool bIsSimple;
|
||||
bool bIsKeyframe;
|
||||
bool bIsDiscardable;
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxBlock : public KaxInternalBlock {
|
||||
public:
|
||||
KaxBlock() :KaxInternalBlock(false) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlock)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxSimpleBlock : public KaxInternalBlock {
|
||||
public:
|
||||
KaxSimpleBlock() :KaxInternalBlock(true) {}
|
||||
|
||||
void SetKeyframe(bool b_keyframe) { bIsKeyframe = b_keyframe; }
|
||||
void SetDiscardable(bool b_discard) { bIsDiscardable = b_discard; }
|
||||
|
||||
bool IsKeyframe() const { return bIsKeyframe; }
|
||||
bool IsDiscardable() const { return bIsDiscardable; }
|
||||
|
||||
operator KaxInternalBlock &() { return *this; }
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSimpleBlock)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxBlockBlob {
|
||||
public:
|
||||
KaxBlockBlob(BlockBlobType sblock_mode) :ParentCluster(NULL), SimpleBlockMode(sblock_mode) {
|
||||
bUseSimpleBlock = (sblock_mode != BLOCK_BLOB_NO_SIMPLE);
|
||||
Block.group = NULL;
|
||||
}
|
||||
|
||||
~KaxBlockBlob() {
|
||||
#if MATROSKA_VERSION >= 2
|
||||
if (bUseSimpleBlock)
|
||||
delete Block.simpleblock;
|
||||
else
|
||||
#endif // MATROSKA_VERSION
|
||||
delete Block.group;
|
||||
}
|
||||
|
||||
operator KaxBlockGroup &();
|
||||
operator const KaxBlockGroup &() const;
|
||||
#if MATROSKA_VERSION >= 2
|
||||
operator KaxSimpleBlock &();
|
||||
#endif
|
||||
operator KaxInternalBlock &();
|
||||
operator const KaxInternalBlock &() const;
|
||||
|
||||
void SetBlockGroup( KaxBlockGroup &BlockRef );
|
||||
|
||||
void SetBlockDuration(uint64 TimeLength);
|
||||
|
||||
void SetParent(KaxCluster & aParentCluster);
|
||||
bool AddFrameAuto(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, LacingType lacing = LACING_AUTO, const KaxBlockBlob * PastBlock = NULL, const KaxBlockBlob * ForwBlock = NULL);
|
||||
|
||||
bool IsSimpleBlock() const {return bUseSimpleBlock;}
|
||||
|
||||
bool ReplaceSimpleByGroup();
|
||||
protected:
|
||||
KaxCluster * ParentCluster;
|
||||
union {
|
||||
KaxBlockGroup *group;
|
||||
#if MATROSKA_VERSION >= 2
|
||||
KaxSimpleBlock *simpleblock;
|
||||
#endif // MATROSKA_VERSION
|
||||
} Block;
|
||||
bool bUseSimpleBlock;
|
||||
BlockBlobType SimpleBlockMode;
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxBlockDuration : public EbmlUInteger {
|
||||
public:
|
||||
KaxBlockDuration() {}
|
||||
KaxBlockDuration(const KaxBlockDuration & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockDuration)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxBlockVirtual : public EbmlBinary {
|
||||
public:
|
||||
KaxBlockVirtual() :ParentCluster(NULL) {SetBuffer(DataBlock,sizeof(DataBlock)); SetValueIsSet(false);}
|
||||
KaxBlockVirtual(const KaxBlockVirtual & ElementToClone);
|
||||
~KaxBlockVirtual();
|
||||
bool ValidateSize() const {return true;}
|
||||
|
||||
/*!
|
||||
\note override this function to generate the Data/Size on the fly, unlike the usual binary elements
|
||||
*/
|
||||
filepos_t UpdateSize(bool bSaveDefault = false, bool bForceRender = false);
|
||||
|
||||
void SetParent(const KaxCluster & aParentCluster) {ParentCluster = &aParentCluster;}
|
||||
|
||||
protected:
|
||||
uint64 Timecode; // temporary timecode of the first frame if there are more than one
|
||||
uint16 TrackNumber;
|
||||
binary DataBlock[5];
|
||||
|
||||
const KaxCluster * ParentCluster;
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockVirtual)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxBlockAdditional : public EbmlBinary {
|
||||
public:
|
||||
KaxBlockAdditional() {}
|
||||
KaxBlockAdditional(const KaxBlockAdditional & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockAdditional)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxBlockAdditions : public EbmlMaster {
|
||||
public:
|
||||
KaxBlockAdditions();
|
||||
KaxBlockAdditions(const KaxBlockAdditions & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockAdditions)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxBlockMore : public EbmlMaster {
|
||||
public:
|
||||
KaxBlockMore();
|
||||
KaxBlockMore(const KaxBlockMore & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockMore)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxBlockAddID : public EbmlUInteger {
|
||||
public:
|
||||
KaxBlockAddID() :EbmlUInteger(1) {}
|
||||
KaxBlockAddID(const KaxBlockAddID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockAddID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCodecState : public EbmlBinary {
|
||||
public:
|
||||
KaxCodecState() {}
|
||||
KaxCodecState(const KaxCodecState & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
|
||||
bool ValidateSize() const {return true;}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecState)
|
||||
};
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
||||
#endif // LIBMATROSKA_BLOCK_H
|
||||
/****************************************************************************
|
||||
** 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
|
||||
\todo add a PureBlock class to group functionalities between Block and BlockVirtual
|
||||
\version \$Id: KaxBlock.h,v 1.24 2004/04/14 23:26:17 robux4 Exp $
|
||||
\author Steve Lhomme <robux4 @ users.sf.net>
|
||||
\author Julien Coloos <suiryc @ users.sf.net>
|
||||
*/
|
||||
#ifndef LIBMATROSKA_BLOCK_H
|
||||
#define LIBMATROSKA_BLOCK_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "matroska/KaxTracks.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class KaxCluster;
|
||||
class KaxReferenceBlock;
|
||||
class KaxInternalBlock;
|
||||
class KaxBlockBlob;
|
||||
|
||||
class MATROSKA_DLL_API DataBuffer {
|
||||
protected:
|
||||
binary * myBuffer;
|
||||
uint32 mySize;
|
||||
bool bValidValue;
|
||||
bool (*myFreeBuffer)(const DataBuffer & aBuffer); // method to free the internal buffer
|
||||
|
||||
public:
|
||||
DataBuffer(binary * aBuffer, uint32 aSize, bool (*aFreeBuffer)(const DataBuffer & aBuffer) = NULL)
|
||||
:myBuffer(aBuffer)
|
||||
,mySize(aSize)
|
||||
,bValidValue(true)
|
||||
,myFreeBuffer(aFreeBuffer)
|
||||
{}
|
||||
virtual ~DataBuffer() {}
|
||||
virtual binary * Buffer() {return myBuffer;}
|
||||
virtual uint32 & Size() {return mySize;};
|
||||
virtual const binary * Buffer() const {return myBuffer;}
|
||||
virtual const uint32 Size() const {return mySize;};
|
||||
bool FreeBuffer(const DataBuffer & aBuffer) {
|
||||
bool bResult = true;
|
||||
if (myBuffer != NULL && myFreeBuffer != NULL && bValidValue) {
|
||||
bResult = myFreeBuffer(aBuffer);
|
||||
myBuffer = NULL;
|
||||
bValidValue = false;
|
||||
}
|
||||
return bResult;
|
||||
}
|
||||
|
||||
virtual DataBuffer * Clone();
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API SimpleDataBuffer : public DataBuffer {
|
||||
public:
|
||||
SimpleDataBuffer(binary * aBuffer, uint32 aSize, uint32 aOffset, bool (*aFreeBuffer)(const DataBuffer & aBuffer) = myFreeBuffer)
|
||||
:DataBuffer(aBuffer + aOffset, aSize, aFreeBuffer)
|
||||
,Offset(aOffset)
|
||||
,BaseBuffer(aBuffer)
|
||||
{}
|
||||
virtual ~SimpleDataBuffer() {}
|
||||
|
||||
DataBuffer * Clone() {return new SimpleDataBuffer(*this);}
|
||||
|
||||
protected:
|
||||
uint32 Offset;
|
||||
binary * BaseBuffer;
|
||||
|
||||
static bool myFreeBuffer(const DataBuffer & aBuffer)
|
||||
{
|
||||
binary *_Buffer = static_cast<const SimpleDataBuffer*>(&aBuffer)->BaseBuffer;
|
||||
if (_Buffer != NULL)
|
||||
free(_Buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
SimpleDataBuffer(const SimpleDataBuffer & ToClone);
|
||||
};
|
||||
|
||||
/*!
|
||||
\note the data is copied locally, it can be freed right away
|
||||
* /
|
||||
class MATROSKA_DLL_API NotSoSimpleDataBuffer : public SimpleDataBuffer {
|
||||
public:
|
||||
NotSoSimpleDataBuffer(binary * aBuffer, uint32 aSize, uint32 aOffset)
|
||||
:SimpleDataBuffer(new binary[aSize - aOffset], aSize, 0)
|
||||
{
|
||||
memcpy(BaseBuffer, aBuffer + aOffset, aSize - aOffset);
|
||||
}
|
||||
};
|
||||
*/
|
||||
|
||||
DECLARE_MKX_MASTER(KaxBlockGroup)
|
||||
public:
|
||||
KaxBlockGroup(const KaxBlockGroup & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
~KaxBlockGroup();
|
||||
|
||||
/*!
|
||||
\brief Addition of a frame without references
|
||||
*/
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, LacingType lacing = LACING_AUTO);
|
||||
/*!
|
||||
\brief Addition of a frame with a backward reference (P frame)
|
||||
*/
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, const KaxBlockGroup & PastBlock, LacingType lacing = LACING_AUTO);
|
||||
|
||||
/*!
|
||||
\brief Addition of a frame with a backward+forward reference (B frame)
|
||||
*/
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, const KaxBlockGroup & PastBlock, const KaxBlockGroup & ForwBlock, LacingType lacing = LACING_AUTO);
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, const KaxBlockBlob * PastBlock, const KaxBlockBlob * ForwBlock, LacingType lacing = LACING_AUTO);
|
||||
|
||||
void SetParent(KaxCluster & aParentCluster);
|
||||
|
||||
void SetParentTrack(const KaxTrackEntry & aParentTrack) {
|
||||
ParentTrack = &aParentTrack;
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Set the duration of the contained frame(s) (for the total number of frames)
|
||||
*/
|
||||
void SetBlockDuration(uint64 TimeLength);
|
||||
bool GetBlockDuration(uint64 &TheTimecode) const;
|
||||
|
||||
/*!
|
||||
\return the global timecode of this Block (not just the delta to the Cluster)
|
||||
*/
|
||||
uint64 GlobalTimecode() const;
|
||||
uint64 GlobalTimecodeScale() const {
|
||||
assert(ParentTrack != NULL);
|
||||
return ParentTrack->GlobalTimecodeScale();
|
||||
}
|
||||
|
||||
uint16 TrackNumber() const;
|
||||
|
||||
uint64 ClusterPosition() const;
|
||||
|
||||
/*!
|
||||
\return the number of references to other frames
|
||||
*/
|
||||
unsigned int ReferenceCount() const;
|
||||
const KaxReferenceBlock & Reference(unsigned int Index) const;
|
||||
|
||||
/*!
|
||||
\brief release all the frames of all Blocks
|
||||
*/
|
||||
void ReleaseFrames();
|
||||
|
||||
operator KaxInternalBlock &();
|
||||
|
||||
const KaxCluster *GetParentCluster() const { return ParentCluster; }
|
||||
|
||||
protected:
|
||||
KaxCluster * ParentCluster;
|
||||
const KaxTrackEntry * ParentTrack;
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockGroup)
|
||||
};
|
||||
|
||||
class KaxInternalBlock : public EbmlBinary {
|
||||
public:
|
||||
KaxInternalBlock( bool bSimple ) :bLocalTimecodeUsed(false), mLacing(LACING_AUTO), mInvisible(false)
|
||||
,ParentCluster(NULL), bIsSimple(bSimple), bIsKeyframe(true), bIsDiscardable(false)
|
||||
{}
|
||||
KaxInternalBlock(const KaxInternalBlock & ElementToClone);
|
||||
~KaxInternalBlock();
|
||||
bool ValidateSize() const;
|
||||
|
||||
uint16 TrackNum() const {return TrackNumber;}
|
||||
/*!
|
||||
\todo !!!! This method needs to be changes !
|
||||
*/
|
||||
uint64 GlobalTimecode() const {return Timecode;}
|
||||
|
||||
/*!
|
||||
\note override this function to generate the Data/Size on the fly, unlike the usual binary elements
|
||||
*/
|
||||
filepos_t UpdateSize(bool bSaveDefault = false, bool bForceRender = false);
|
||||
filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
|
||||
|
||||
/*!
|
||||
\brief Only read the head of the Block (not internal data)
|
||||
\note convenient when you are parsing the file quickly
|
||||
*/
|
||||
uint64 ReadInternalHead(IOCallback & input);
|
||||
|
||||
unsigned int NumberFrames() const { return SizeList.size();}
|
||||
DataBuffer & GetBuffer(unsigned int iIndex) {return *myBuffers[iIndex];}
|
||||
|
||||
bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, LacingType lacing = LACING_AUTO, bool invisible = false);
|
||||
|
||||
/*!
|
||||
\brief release all the frames of all Blocks
|
||||
*/
|
||||
void ReleaseFrames();
|
||||
|
||||
void SetParent(KaxCluster & aParentCluster);
|
||||
|
||||
/*!
|
||||
\return Returns the lacing type that produces the smallest footprint.
|
||||
*/
|
||||
LacingType GetBestLacingType() const;
|
||||
|
||||
/*!
|
||||
\param FrameNumber 0 for the first frame
|
||||
\return the position in the stream for a given frame
|
||||
\note return -1 if the position doesn't exist
|
||||
*/
|
||||
int64 GetDataPosition(size_t FrameNumber = 0);
|
||||
|
||||
/*!
|
||||
\param FrameNumber 0 for the first frame
|
||||
\return the size of a given frame
|
||||
\note return -1 if the position doesn't exist
|
||||
*/
|
||||
int64 GetFrameSize(size_t FrameNumber = 0);
|
||||
|
||||
bool IsInvisible() const { return mInvisible; }
|
||||
|
||||
uint64 ClusterPosition() const;
|
||||
|
||||
protected:
|
||||
std::vector<DataBuffer *> myBuffers;
|
||||
std::vector<int32> SizeList;
|
||||
uint64 Timecode; // temporary timecode of the first frame, non scaled
|
||||
int16 LocalTimecode;
|
||||
bool bLocalTimecodeUsed;
|
||||
uint16 TrackNumber;
|
||||
LacingType mLacing;
|
||||
bool mInvisible;
|
||||
uint64 FirstFrameLocation;
|
||||
|
||||
filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault = false);
|
||||
|
||||
KaxCluster * ParentCluster;
|
||||
bool bIsSimple;
|
||||
bool bIsKeyframe;
|
||||
bool bIsDiscardable;
|
||||
};
|
||||
|
||||
DECLARE_MKX_CONTEXT(KaxBlock);
|
||||
class MATROSKA_DLL_API KaxBlock : public KaxInternalBlock {
|
||||
public:
|
||||
KaxBlock() :KaxInternalBlock(false) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlock)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DECLARE_MKX_CONTEXT(KaxSimpleBlock);
|
||||
class MATROSKA_DLL_API KaxSimpleBlock : public KaxInternalBlock {
|
||||
public:
|
||||
KaxSimpleBlock() :KaxInternalBlock(true) {}
|
||||
|
||||
void SetKeyframe(bool b_keyframe) { bIsKeyframe = b_keyframe; }
|
||||
void SetDiscardable(bool b_discard) { bIsDiscardable = b_discard; }
|
||||
|
||||
bool IsKeyframe() const { return bIsKeyframe; }
|
||||
bool IsDiscardable() const { return bIsDiscardable; }
|
||||
|
||||
operator KaxInternalBlock &() { return *this; }
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSimpleBlock)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxBlockBlob {
|
||||
public:
|
||||
KaxBlockBlob(BlockBlobType sblock_mode) :ParentCluster(NULL), SimpleBlockMode(sblock_mode) {
|
||||
bUseSimpleBlock = (sblock_mode != BLOCK_BLOB_NO_SIMPLE);
|
||||
Block.group = NULL;
|
||||
}
|
||||
|
||||
~KaxBlockBlob() {
|
||||
#if MATROSKA_VERSION >= 2
|
||||
if (bUseSimpleBlock)
|
||||
delete Block.simpleblock;
|
||||
else
|
||||
#endif // MATROSKA_VERSION
|
||||
delete Block.group;
|
||||
}
|
||||
|
||||
operator KaxBlockGroup &();
|
||||
operator const KaxBlockGroup &() const;
|
||||
#if MATROSKA_VERSION >= 2
|
||||
operator KaxSimpleBlock &();
|
||||
#endif
|
||||
operator KaxInternalBlock &();
|
||||
operator const KaxInternalBlock &() const;
|
||||
|
||||
void SetBlockGroup( KaxBlockGroup &BlockRef );
|
||||
|
||||
void SetBlockDuration(uint64 TimeLength);
|
||||
|
||||
void SetParent(KaxCluster & aParentCluster);
|
||||
bool AddFrameAuto(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, LacingType lacing = LACING_AUTO, const KaxBlockBlob * PastBlock = NULL, const KaxBlockBlob * ForwBlock = NULL);
|
||||
|
||||
bool IsSimpleBlock() const {return bUseSimpleBlock;}
|
||||
|
||||
bool ReplaceSimpleByGroup();
|
||||
protected:
|
||||
KaxCluster * ParentCluster;
|
||||
union {
|
||||
KaxBlockGroup *group;
|
||||
#if MATROSKA_VERSION >= 2
|
||||
KaxSimpleBlock *simpleblock;
|
||||
#endif // MATROSKA_VERSION
|
||||
} Block;
|
||||
bool bUseSimpleBlock;
|
||||
BlockBlobType SimpleBlockMode;
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxBlockDuration)
|
||||
public:
|
||||
KaxBlockDuration(const KaxBlockDuration & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockDuration)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DECLARE_MKX_BINARY_CONS(KaxBlockVirtual)
|
||||
public:
|
||||
KaxBlockVirtual() :ParentCluster(NULL) {SetBuffer(DataBlock,sizeof(DataBlock)); SetValueIsSet(false);}
|
||||
KaxBlockVirtual(const KaxBlockVirtual & ElementToClone);
|
||||
~KaxBlockVirtual();
|
||||
bool ValidateSize() const {return true;}
|
||||
|
||||
/*!
|
||||
\note override this function to generate the Data/Size on the fly, unlike the usual binary elements
|
||||
*/
|
||||
filepos_t UpdateSize(bool bSaveDefault = false, bool bForceRender = false);
|
||||
|
||||
void SetParent(const KaxCluster & aParentCluster) {ParentCluster = &aParentCluster;}
|
||||
|
||||
protected:
|
||||
uint64 Timecode; // temporary timecode of the first frame if there are more than one
|
||||
uint16 TrackNumber;
|
||||
binary DataBlock[5];
|
||||
|
||||
const KaxCluster * ParentCluster;
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockVirtual)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
DECLARE_MKX_BINARY(KaxBlockAdditional)
|
||||
public:
|
||||
KaxBlockAdditional(const KaxBlockAdditional & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockAdditional)
|
||||
};
|
||||
|
||||
DECLARE_MKX_MASTER(KaxBlockAdditions)
|
||||
public:
|
||||
KaxBlockAdditions(const KaxBlockAdditions & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockAdditions)
|
||||
};
|
||||
|
||||
DECLARE_MKX_MASTER(KaxBlockMore)
|
||||
public:
|
||||
KaxBlockMore(const KaxBlockMore & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockMore)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxBlockAddID)
|
||||
public:
|
||||
KaxBlockAddID(const KaxBlockAddID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxBlockAddID)
|
||||
};
|
||||
|
||||
DECLARE_MKX_BINARY(KaxCodecState)
|
||||
public:
|
||||
KaxCodecState(const KaxCodecState & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
|
||||
bool ValidateSize() const {return true;}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecState)
|
||||
};
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
||||
#endif // LIBMATROSKA_BLOCK_H
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "ebml/EbmlSInteger.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
@ -46,9 +47,8 @@ class KaxReferenceBlock;
|
||||
class KaxBlockGroup;
|
||||
class KaxBlockBlob;
|
||||
|
||||
class MATROSKA_DLL_API KaxReferencePriority : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxReferencePriority)
|
||||
public:
|
||||
KaxReferencePriority() :EbmlUInteger(0) {}
|
||||
KaxReferencePriority(const KaxReferencePriority & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxReferencePriority)
|
||||
@ -57,7 +57,7 @@ class MATROSKA_DLL_API KaxReferencePriority : public EbmlUInteger {
|
||||
/*!
|
||||
\brief element used for B frame-likes
|
||||
*/
|
||||
class MATROSKA_DLL_API KaxReferenceBlock : public EbmlSInteger {
|
||||
DECLARE_MKX_SINTEGER_CONS(KaxReferenceBlock)
|
||||
public:
|
||||
KaxReferenceBlock() :RefdBlock(NULL), ParentBlock(NULL) {bTimecodeSet = false;}
|
||||
KaxReferenceBlock(const KaxReferenceBlock & ElementToClone) :EbmlSInteger(ElementToClone), bTimecodeSet(ElementToClone.bTimecodeSet) {}
|
||||
@ -82,66 +82,58 @@ class MATROSKA_DLL_API KaxReferenceBlock : public EbmlSInteger {
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxReferenceVirtual : public EbmlSInteger {
|
||||
DECLARE_MKX_SINTEGER(KaxReferenceVirtual)
|
||||
public:
|
||||
KaxReferenceVirtual() {}
|
||||
KaxReferenceVirtual(const KaxReferenceVirtual & ElementToClone) :EbmlSInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxReferenceVirtual)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxTimeSlice : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTimeSlice)
|
||||
public:
|
||||
KaxTimeSlice();
|
||||
KaxTimeSlice(const KaxTimeSlice & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTimeSlice)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSlices : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxSlices)
|
||||
public:
|
||||
KaxSlices();
|
||||
KaxSlices(const KaxSlices & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSlices)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSliceLaceNumber : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxSliceLaceNumber)
|
||||
public:
|
||||
KaxSliceLaceNumber() :EbmlUInteger(0) {}
|
||||
KaxSliceLaceNumber(const KaxSliceLaceNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSliceLaceNumber)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSliceFrameNumber : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxSliceFrameNumber)
|
||||
public:
|
||||
KaxSliceFrameNumber() :EbmlUInteger(0) {}
|
||||
KaxSliceFrameNumber(const KaxSliceFrameNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSliceFrameNumber)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSliceBlockAddID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxSliceBlockAddID)
|
||||
public:
|
||||
KaxSliceBlockAddID() :EbmlUInteger(0) {}
|
||||
KaxSliceBlockAddID(const KaxSliceBlockAddID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSliceBlockAddID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSliceDelay : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxSliceDelay)
|
||||
public:
|
||||
KaxSliceDelay() :EbmlUInteger(0) {}
|
||||
KaxSliceDelay(const KaxSliceDelay & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSliceDelay)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSliceDuration : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxSliceDuration)
|
||||
public:
|
||||
KaxSliceDuration() {}
|
||||
KaxSliceDuration(const KaxSliceDuration & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSliceDuration)
|
||||
|
@ -41,225 +41,199 @@
|
||||
#include "ebml/EbmlUnicodeString.h"
|
||||
#include "ebml/EbmlString.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxChapters : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxChapters)
|
||||
public:
|
||||
KaxChapters();
|
||||
KaxChapters(const KaxChapters & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapters)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxEditionEntry : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxEditionEntry)
|
||||
public:
|
||||
KaxEditionEntry();
|
||||
KaxEditionEntry(const KaxEditionEntry & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxEditionEntry)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxEditionUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxEditionUID)
|
||||
public:
|
||||
KaxEditionUID() {}
|
||||
KaxEditionUID(const KaxEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxEditionUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxEditionFlagHidden : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxEditionFlagHidden)
|
||||
public:
|
||||
KaxEditionFlagHidden(): EbmlUInteger(0) {}
|
||||
KaxEditionFlagHidden(const KaxEditionFlagHidden & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxEditionFlagHidden)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxEditionFlagDefault : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxEditionFlagDefault)
|
||||
public:
|
||||
KaxEditionFlagDefault(): EbmlUInteger(0) {}
|
||||
KaxEditionFlagDefault(const KaxEditionFlagDefault & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxEditionFlagDefault)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxEditionFlagOrdered : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxEditionFlagOrdered)
|
||||
public:
|
||||
KaxEditionFlagOrdered(): EbmlUInteger(0) {}
|
||||
KaxEditionFlagOrdered(const KaxEditionFlagOrdered & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxEditionFlagOrdered)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterAtom : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxChapterAtom)
|
||||
public:
|
||||
KaxChapterAtom();
|
||||
KaxChapterAtom(const KaxChapterAtom & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterAtom)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterUID)
|
||||
public:
|
||||
KaxChapterUID() {}
|
||||
KaxChapterUID(const KaxChapterUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterTimeStart : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterTimeStart)
|
||||
public:
|
||||
KaxChapterTimeStart() {}
|
||||
KaxChapterTimeStart(const KaxChapterTimeStart & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterTimeStart)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterTimeEnd : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterTimeEnd)
|
||||
public:
|
||||
KaxChapterTimeEnd() {}
|
||||
KaxChapterTimeEnd(const KaxChapterTimeEnd & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterTimeEnd)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterFlagHidden : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterFlagHidden)
|
||||
public:
|
||||
KaxChapterFlagHidden(): EbmlUInteger(0) {}
|
||||
KaxChapterFlagHidden(const KaxChapterFlagHidden & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterFlagHidden)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterFlagEnabled : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterFlagEnabled)
|
||||
public:
|
||||
KaxChapterFlagEnabled(): EbmlUInteger(1) {}
|
||||
KaxChapterFlagEnabled(const KaxChapterFlagEnabled & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterFlagEnabled)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterSegmentUID : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxChapterSegmentUID)
|
||||
public:
|
||||
KaxChapterSegmentUID() {}
|
||||
KaxChapterSegmentUID(const KaxChapterSegmentUID & ElementToClone) :EbmlBinary(ElementToClone) {}
|
||||
bool ValidateSize() const { return (GetSize() == 16);}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterSegmentUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterSegmentEditionUID : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxChapterSegmentEditionUID)
|
||||
public:
|
||||
KaxChapterSegmentEditionUID() {}
|
||||
KaxChapterSegmentEditionUID(const KaxChapterSegmentEditionUID & ElementToClone) :EbmlBinary(ElementToClone) {}
|
||||
bool ValidateSize() const { return (GetSize() == 16);}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterSegmentEditionUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterPhysicalEquiv : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterPhysicalEquiv)
|
||||
public:
|
||||
KaxChapterPhysicalEquiv(): EbmlUInteger() {}
|
||||
KaxChapterPhysicalEquiv(const KaxChapterPhysicalEquiv & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterPhysicalEquiv)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterTrack : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxChapterTrack)
|
||||
public:
|
||||
KaxChapterTrack();
|
||||
KaxChapterTrack(const KaxChapterTrack & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterTrack)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterTrackNumber : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterTrackNumber)
|
||||
public:
|
||||
KaxChapterTrackNumber() {}
|
||||
KaxChapterTrackNumber(const KaxChapterTrackNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterTrackNumber)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterDisplay : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxChapterDisplay)
|
||||
public:
|
||||
KaxChapterDisplay();
|
||||
KaxChapterDisplay(const KaxChapterDisplay & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterDisplay)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterString : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxChapterString)
|
||||
public:
|
||||
KaxChapterString() {}
|
||||
KaxChapterString(const KaxChapterString & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterString)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterLanguage : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxChapterLanguage)
|
||||
public:
|
||||
KaxChapterLanguage() :EbmlString("eng") {}
|
||||
KaxChapterLanguage(const KaxChapterLanguage & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterLanguage)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterCountry : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxChapterCountry)
|
||||
public:
|
||||
KaxChapterCountry() :EbmlString() {}
|
||||
KaxChapterCountry(const KaxChapterCountry & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterCountry)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterProcess : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxChapterProcess)
|
||||
public:
|
||||
KaxChapterProcess();
|
||||
KaxChapterProcess(const KaxChapterProcess & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterProcess)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterProcessCodecID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterProcessCodecID)
|
||||
public:
|
||||
KaxChapterProcessCodecID() :EbmlUInteger(0) {}
|
||||
KaxChapterProcessCodecID(const KaxChapterProcessCodecID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterProcessCodecID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterProcessPrivate : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxChapterProcessPrivate)
|
||||
public:
|
||||
KaxChapterProcessPrivate() {}
|
||||
KaxChapterProcessPrivate(const KaxChapterProcessPrivate & ElementToClone) :EbmlBinary(ElementToClone) {}
|
||||
bool ValidateSize() const {return true;}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterProcessPrivate)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterProcessCommand : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxChapterProcessCommand)
|
||||
public:
|
||||
KaxChapterProcessCommand();
|
||||
KaxChapterProcessCommand(const KaxChapterProcessCommand & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterProcessCommand)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterProcessTime : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterProcessTime)
|
||||
public:
|
||||
KaxChapterProcessTime() {}
|
||||
KaxChapterProcessTime(const KaxChapterProcessTime & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterProcessTime)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterProcessData : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxChapterProcessData)
|
||||
public:
|
||||
KaxChapterProcessData() {}
|
||||
KaxChapterProcessData(const KaxChapterProcessData & ElementToClone) :EbmlBinary(ElementToClone) {}
|
||||
bool ValidateSize() const {return true;}
|
||||
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "matroska/KaxBlock.h"
|
||||
#include "matroska/KaxCues.h"
|
||||
#include "matroska/KaxClusterData.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
@ -48,9 +49,8 @@ START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class KaxSegment;
|
||||
|
||||
class MATROSKA_DLL_API KaxCluster : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxCluster)
|
||||
public:
|
||||
KaxCluster();
|
||||
KaxCluster(const KaxCluster & ElementToClone);
|
||||
|
||||
/*!
|
||||
|
@ -38,46 +38,42 @@
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxClusterTimecode : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxClusterTimecode)
|
||||
public:
|
||||
KaxClusterTimecode() {}
|
||||
KaxClusterTimecode(const KaxClusterTimecode & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxClusterTimecode)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxClusterSilentTracks : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxClusterSilentTracks)
|
||||
public:
|
||||
KaxClusterSilentTracks();
|
||||
KaxClusterSilentTracks(const KaxClusterSilentTracks & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxClusterSilentTracks)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxClusterSilentTrackNumber : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxClusterSilentTrackNumber)
|
||||
public:
|
||||
KaxClusterSilentTrackNumber() {}
|
||||
KaxClusterSilentTrackNumber(const KaxClusterSilentTrackNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxClusterSilentTrackNumber)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxClusterPosition : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxClusterPosition)
|
||||
public:
|
||||
KaxClusterPosition() {}
|
||||
KaxClusterPosition(const KaxClusterPosition & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxClusterPosition)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxClusterPrevSize : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxClusterPrevSize)
|
||||
public:
|
||||
KaxClusterPrevSize() {}
|
||||
KaxClusterPrevSize(const KaxClusterPrevSize & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxClusterPrevSize)
|
||||
|
@ -39,77 +39,70 @@
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxContentEncodings: public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxContentEncodings)
|
||||
public:
|
||||
KaxContentEncodings();
|
||||
KaxContentEncodings(const KaxContentEncodings &ElementToClone):
|
||||
EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentEncodings)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentEncoding: public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxContentEncoding)
|
||||
public:
|
||||
KaxContentEncoding();
|
||||
KaxContentEncoding(const KaxContentEncoding &ElementToClone):
|
||||
EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentEncoding)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentEncodingOrder: public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxContentEncodingOrder)
|
||||
public:
|
||||
KaxContentEncodingOrder(): EbmlUInteger(0) {}
|
||||
KaxContentEncodingOrder(const KaxContentEncodingOrder &ElementToClone):
|
||||
EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentEncodingOrder)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentEncodingScope: public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxContentEncodingScope)
|
||||
public:
|
||||
KaxContentEncodingScope(): EbmlUInteger(1) {}
|
||||
KaxContentEncodingScope(const KaxContentEncodingScope &ElementToClone):
|
||||
EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentEncodingScope)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentEncodingType: public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxContentEncodingType)
|
||||
public:
|
||||
KaxContentEncodingType(): EbmlUInteger(0) {}
|
||||
KaxContentEncodingType(const KaxContentEncodingType &ElementToClone):
|
||||
EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentEncodingType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentCompression: public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxContentCompression)
|
||||
public:
|
||||
KaxContentCompression();
|
||||
KaxContentCompression(const KaxContentCompression &ElementToClone):
|
||||
EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentCompression)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentCompAlgo: public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxContentCompAlgo)
|
||||
public:
|
||||
KaxContentCompAlgo(): EbmlUInteger(0) {}
|
||||
KaxContentCompAlgo(const KaxContentCompAlgo &ElementToClone):
|
||||
EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentCompAlgo)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentCompSettings: public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxContentCompSettings)
|
||||
public:
|
||||
KaxContentCompSettings() {}
|
||||
KaxContentCompSettings(const KaxContentCompSettings &ElementToClone):
|
||||
EbmlBinary(ElementToClone) {}
|
||||
bool ValidateSize(void) const { return true; }
|
||||
@ -117,27 +110,24 @@ class MATROSKA_DLL_API KaxContentCompSettings: public EbmlBinary {
|
||||
EBML_CONCRETE_CLASS(KaxContentCompSettings)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentEncryption: public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxContentEncryption)
|
||||
public:
|
||||
KaxContentEncryption();
|
||||
KaxContentEncryption(const KaxContentEncryption &ElementToClone):
|
||||
EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentEncryption)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentEncAlgo: public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxContentEncAlgo)
|
||||
public:
|
||||
KaxContentEncAlgo(): EbmlUInteger(0) {}
|
||||
KaxContentEncAlgo(const KaxContentEncAlgo &ElementToClone):
|
||||
EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentEncAlgo)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentEncKeyID: public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxContentEncKeyID)
|
||||
public:
|
||||
KaxContentEncKeyID() {}
|
||||
KaxContentEncKeyID(const KaxContentEncKeyID &ElementToClone):
|
||||
EbmlBinary(ElementToClone) {}
|
||||
bool ValidateSize(void) const { return true; }
|
||||
@ -145,9 +135,8 @@ class MATROSKA_DLL_API KaxContentEncKeyID: public EbmlBinary {
|
||||
EBML_CONCRETE_CLASS(KaxContentEncKeyID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentSignature: public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxContentSignature)
|
||||
public:
|
||||
KaxContentSignature() {}
|
||||
KaxContentSignature(const KaxContentSignature &ElementToClone):
|
||||
EbmlBinary(ElementToClone) {}
|
||||
bool ValidateSize(void) const { return true; }
|
||||
@ -155,9 +144,8 @@ class MATROSKA_DLL_API KaxContentSignature: public EbmlBinary {
|
||||
EBML_CONCRETE_CLASS(KaxContentSignature)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentSigKeyID: public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxContentSigKeyID)
|
||||
public:
|
||||
KaxContentSigKeyID() {}
|
||||
KaxContentSigKeyID(const KaxContentSigKeyID &ElementToClone):
|
||||
EbmlBinary(ElementToClone) {}
|
||||
bool ValidateSize(void) const { return true; }
|
||||
@ -165,18 +153,16 @@ class MATROSKA_DLL_API KaxContentSigKeyID: public EbmlBinary {
|
||||
EBML_CONCRETE_CLASS(KaxContentSigKeyID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentSigAlgo: public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxContentSigAlgo)
|
||||
public:
|
||||
KaxContentSigAlgo() {}
|
||||
KaxContentSigAlgo(const KaxContentSigAlgo &ElementToClone):
|
||||
EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxContentSigAlgo)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxContentSigHashAlgo: public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxContentSigHashAlgo)
|
||||
public:
|
||||
KaxContentSigHashAlgo() {}
|
||||
KaxContentSigHashAlgo(const KaxContentSigHashAlgo &ElementToClone):
|
||||
EbmlUInteger(ElementToClone) {}
|
||||
|
||||
|
@ -47,9 +47,8 @@ START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class KaxCuePoint;
|
||||
|
||||
class MATROSKA_DLL_API KaxCues : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxCues)
|
||||
public:
|
||||
KaxCues();
|
||||
KaxCues(const KaxCues & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
~KaxCues();
|
||||
|
||||
|
@ -1,162 +1,151 @@
|
||||
/****************************************************************************
|
||||
** 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: KaxCuesData.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
|
||||
\author Steve Lhomme <robux4 @ users.sf.net>
|
||||
*/
|
||||
#ifndef LIBMATROSKA_CUES_DATA_H
|
||||
#define LIBMATROSKA_CUES_DATA_H
|
||||
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class KaxBlockGroup;
|
||||
class KaxBlockBlob;
|
||||
class KaxCueTrackPositions;
|
||||
class KaxInternalBlock;
|
||||
|
||||
class MATROSKA_DLL_API KaxCuePoint : public EbmlMaster {
|
||||
public:
|
||||
KaxCuePoint();
|
||||
KaxCuePoint(const KaxCuePoint & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
void PositionSet(const KaxBlockGroup & BlockReference, uint64 GlobalTimecodeScale);
|
||||
void PositionSet(const KaxBlockBlob & BlobReference, uint64 GlobalTimecodeScale);
|
||||
|
||||
virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
|
||||
|
||||
const KaxCueTrackPositions * GetSeekPosition() const;
|
||||
bool Timecode(uint64 & aTimecode, uint64 GlobalTimecodeScale) const;
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCuePoint)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueTime : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueTime() {}
|
||||
KaxCueTime(const KaxCueTime & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueTime)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueTrackPositions : public EbmlMaster {
|
||||
public:
|
||||
KaxCueTrackPositions();
|
||||
KaxCueTrackPositions(const KaxCueTrackPositions & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
uint64 ClusterPosition() const;
|
||||
uint16 TrackNumber() const;
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueTrackPositions)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueTrack : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueTrack() {}
|
||||
KaxCueTrack(const KaxCueTrack & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueTrack)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueClusterPosition : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueClusterPosition() {}
|
||||
KaxCueClusterPosition(const KaxCueClusterPosition & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueClusterPosition)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueBlockNumber : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueBlockNumber() :EbmlUInteger(1) {}
|
||||
KaxCueBlockNumber(const KaxCueBlockNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueBlockNumber)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxCueCodecState : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueCodecState() :EbmlUInteger(0) {}
|
||||
KaxCueCodecState(const KaxCueCodecState & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueCodecState)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueReference : public EbmlMaster {
|
||||
public:
|
||||
KaxCueReference();
|
||||
KaxCueReference(const KaxCueReference & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
void AddReference(const KaxBlockGroup & BlockReferenced, uint64 GlobalTimecodeScale);
|
||||
void AddReference(const KaxBlockBlob & BlockReferenced, uint64 GlobalTimecodeScale);
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueReference)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueRefTime : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueRefTime() {}
|
||||
KaxCueRefTime(const KaxCueRefTime & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueRefTime)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueRefCluster : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueRefCluster() {}
|
||||
KaxCueRefCluster(const KaxCueRefCluster & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueRefCluster)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueRefNumber : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueRefNumber() :EbmlUInteger(1) {}
|
||||
KaxCueRefNumber(const KaxCueRefNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueRefNumber)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCueRefCodecState : public EbmlUInteger {
|
||||
public:
|
||||
KaxCueRefCodecState() :EbmlUInteger(0) {}
|
||||
KaxCueRefCodecState(const KaxCueRefCodecState & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueRefCodecState)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
||||
#endif // LIBMATROSKA_CUES_DATA_H
|
||||
/****************************************************************************
|
||||
** 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: KaxCuesData.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
|
||||
\author Steve Lhomme <robux4 @ users.sf.net>
|
||||
*/
|
||||
#ifndef LIBMATROSKA_CUES_DATA_H
|
||||
#define LIBMATROSKA_CUES_DATA_H
|
||||
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class KaxBlockGroup;
|
||||
class KaxBlockBlob;
|
||||
class KaxCueTrackPositions;
|
||||
class KaxInternalBlock;
|
||||
|
||||
DECLARE_MKX_MASTER(KaxCuePoint)
|
||||
public:
|
||||
KaxCuePoint(const KaxCuePoint & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
void PositionSet(const KaxBlockGroup & BlockReference, uint64 GlobalTimecodeScale);
|
||||
void PositionSet(const KaxBlockBlob & BlobReference, uint64 GlobalTimecodeScale);
|
||||
|
||||
virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
|
||||
|
||||
const KaxCueTrackPositions * GetSeekPosition() const;
|
||||
bool Timecode(uint64 & aTimecode, uint64 GlobalTimecodeScale) const;
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCuePoint)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxCueTime)
|
||||
public:
|
||||
KaxCueTime(const KaxCueTime & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueTime)
|
||||
};
|
||||
|
||||
DECLARE_MKX_MASTER(KaxCueTrackPositions)
|
||||
public:
|
||||
KaxCueTrackPositions(const KaxCueTrackPositions & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
uint64 ClusterPosition() const;
|
||||
uint16 TrackNumber() const;
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueTrackPositions)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxCueTrack)
|
||||
public:
|
||||
KaxCueTrack(const KaxCueTrack & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueTrack)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxCueClusterPosition)
|
||||
public:
|
||||
KaxCueClusterPosition(const KaxCueClusterPosition & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueClusterPosition)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxCueBlockNumber)
|
||||
public:
|
||||
KaxCueBlockNumber(const KaxCueBlockNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueBlockNumber)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DECLARE_MKX_UINTEGER(KaxCueCodecState)
|
||||
public:
|
||||
KaxCueCodecState(const KaxCueCodecState & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueCodecState)
|
||||
};
|
||||
|
||||
DECLARE_MKX_MASTER(KaxCueReference)
|
||||
public:
|
||||
KaxCueReference(const KaxCueReference & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
void AddReference(const KaxBlockGroup & BlockReferenced, uint64 GlobalTimecodeScale);
|
||||
void AddReference(const KaxBlockBlob & BlockReferenced, uint64 GlobalTimecodeScale);
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueReference)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxCueRefTime)
|
||||
public:
|
||||
KaxCueRefTime(const KaxCueRefTime & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueRefTime)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxCueRefCluster)
|
||||
public:
|
||||
KaxCueRefCluster(const KaxCueRefCluster & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueRefCluster)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxCueRefNumber)
|
||||
public:
|
||||
KaxCueRefNumber(const KaxCueRefNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueRefNumber)
|
||||
};
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxCueRefCodecState)
|
||||
public:
|
||||
KaxCueRefCodecState(const KaxCueRefCodecState & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCueRefCodecState)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
||||
#endif // LIBMATROSKA_CUES_DATA_H
|
||||
|
@ -37,33 +37,107 @@
|
||||
#include "ebml/EbmlElement.h"
|
||||
|
||||
#if LIBEBML_VERSION >= 0x010000
|
||||
#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) \
|
||||
#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_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)
|
||||
#define DEFINE_MKX_MASTER_ORPHAN(a,b,c,d) DEFINE_xxx_MASTER_ORPHAN(a,b,c,d,*GetKaxGlobal_Context)
|
||||
#define DEFINE_MKX_UINTEGER_DEF(a,b,c,d,e,v) DEFINE_xxx_UINTEGER_DEF(a,b,c,d,e,*GetKaxGlobal_Context,v)
|
||||
#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_SINTEGER_CONS(a,b,c,d,e) DEFINE_xxx_SINTEGER_CONS(a,b,c,d,e,*GetKaxGlobal_Context)
|
||||
#define DEFINE_MKX_STRING_DEF(a,b,c,d,e,v) DEFINE_xxx_STRING_DEF(a,b,c,d,e,*GetKaxGlobal_Context,v)
|
||||
#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_BINARY_CONS(a,b,c,d,e) DEFINE_xxx_BINARY_CONS(a,b,c,d,e,*GetKaxGlobal_Context)
|
||||
#define DEFINE_MKX_FLOAT_DEF(a,b,c,d,e,v) DEFINE_xxx_FLOAT_DEF(a,b,c,d,e,*GetKaxGlobal_Context,v)
|
||||
#define DEFINE_MKX_FLOAT(a,b,c,d,e) DEFINE_xxx_FLOAT(a,b,c,d,e,*GetKaxGlobal_Context)
|
||||
#define DEFINE_MKX_FLOAT64(a,b,c,d,e) DEFINE_xxx_FLOAT64(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)
|
||||
|
||||
#define DECLARE_MKX_CONTEXT(x) extern const ebml_context MATROSKA_DLL_API EBML_Context##x;
|
||||
|
||||
#define DECLARE_MKX_MASTER(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlMaster { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_BINARY(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlBinary { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_BINARY_CONS(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlBinary {
|
||||
#define DECLARE_MKX_UNISTRING(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlUnicodeString { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_STRING(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlString { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_UINTEGER(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlUInteger { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_SINTEGER_CONS(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlSInteger {
|
||||
#define DECLARE_MKX_SINTEGER(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlSInteger { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_DATE(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlDate { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_FLOAT(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlFloat { \
|
||||
public: x();
|
||||
|
||||
#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) \
|
||||
#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)
|
||||
#define DEFINE_MKX_MASTER_ORPHAN(a,b,c,d) DEFINE_xxx_MASTER_ORPHAN(a,b,c,d,*GetKaxGlobal_Context)
|
||||
#define DEFINE_MKX_UINTEGER_DEF(a,b,c,d,e,v) DEFINE_xxx_UINTEGER_DEF(a,b,c,d,e,*GetKaxGlobal_Context,v)
|
||||
#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_DEF(a,b,c,d,e,v) DEFINE_xxx_STRING_DEF(a,b,c,d,e,*GetKaxGlobal_Context,v)
|
||||
#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_DEF(a,b,c,d,e,v) DEFINE_xxx_FLOAT_DEF(a,b,c,d,e,*GetKaxGlobal_Context,v)
|
||||
#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)
|
||||
#define DEFINE_MKX_BINARY_CONS(a,b,c,d,e) DEFINE_xxx_CLASS_CONS(a,b,c,d,e,*GetKaxGlobal_Context)
|
||||
#define DEFINE_MKX_SINTEGER_CONS(a,b,c,d,e) DEFINE_xxx_CLASS_CONS(a,b,c,d,e,*GetKaxGlobal_Context)
|
||||
|
||||
#define DECLARE_MKX_CONTEXT(x)
|
||||
|
||||
#define DECLARE_MKX_MASTER(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlMaster { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_BINARY(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlBinary { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_BINARY_CONS(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlBinary {
|
||||
#define DECLARE_MKX_UNISTRING(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlUnicodeString { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_STRING(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlString { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_UINTEGER(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlUInteger { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_SINTEGER_CONS(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlSInteger {
|
||||
#define DECLARE_MKX_SINTEGER(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlSInteger { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_DATE(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlDate { \
|
||||
public: x();
|
||||
#define DECLARE_MKX_FLOAT(x) DECLARE_MKX_CONTEXT(x) \
|
||||
class MATROSKA_DLL_API x : public EbmlFloat { \
|
||||
public: x();
|
||||
#endif
|
||||
|
||||
#endif // LIBMATROSKA_DEFINES_H
|
||||
|
@ -38,30 +38,28 @@
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "ebml/EbmlUnicodeString.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxInfo : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxInfo)
|
||||
public:
|
||||
KaxInfo();
|
||||
KaxInfo(const KaxInfo & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxInfo)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxMuxingApp : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxMuxingApp)
|
||||
public:
|
||||
KaxMuxingApp() {}
|
||||
KaxMuxingApp(const KaxMuxingApp & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxMuxingApp)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxWritingApp : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxWritingApp)
|
||||
public:
|
||||
KaxWritingApp() {}
|
||||
KaxWritingApp(const KaxWritingApp & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxWritingApp)
|
||||
|
@ -44,131 +44,121 @@
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "ebml/EbmlDate.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxSegmentUID : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxSegmentUID)
|
||||
public:
|
||||
KaxSegmentUID() {}
|
||||
KaxSegmentUID(const KaxSegmentUID & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const { return (GetSize() == 16);}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSegmentUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSegmentFilename : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxSegmentFilename)
|
||||
public:
|
||||
KaxSegmentFilename() {}
|
||||
KaxSegmentFilename(const KaxSegmentFilename & ElementToClone) :EbmlUnicodeString(ElementToClone){}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSegmentFilename)
|
||||
};
|
||||
|
||||
DECLARE_MKX_CONTEXT(KaxPrevUID);
|
||||
class MATROSKA_DLL_API KaxPrevUID : public KaxSegmentUID {
|
||||
public:
|
||||
KaxPrevUID() {}
|
||||
KaxPrevUID();
|
||||
KaxPrevUID(const KaxPrevUID & ElementToClone) :KaxSegmentUID(ElementToClone){}
|
||||
bool ValidateSize() const { return (GetSize() == 16);}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxPrevUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxPrevFilename : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxPrevFilename)
|
||||
public:
|
||||
KaxPrevFilename() :EbmlUnicodeString() {}
|
||||
KaxPrevFilename(const KaxPrevFilename & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxPrevFilename)
|
||||
};
|
||||
|
||||
DECLARE_MKX_CONTEXT(KaxNextUID);
|
||||
class MATROSKA_DLL_API KaxNextUID : public KaxSegmentUID {
|
||||
public:
|
||||
KaxNextUID() {}
|
||||
KaxNextUID();
|
||||
KaxNextUID(const KaxNextUID & ElementToClone) :KaxSegmentUID(ElementToClone){}
|
||||
bool ValidateSize() const { return (GetSize() == 16);}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxNextUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxNextFilename : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxNextFilename)
|
||||
public:
|
||||
KaxNextFilename() {}
|
||||
KaxNextFilename(const KaxNextFilename & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxNextFilename)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSegmentFamily : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxSegmentFamily)
|
||||
public:
|
||||
KaxSegmentFamily() {}
|
||||
KaxSegmentFamily(const KaxSegmentFamily & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const { return (GetSize() == 16);}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSegmentFamily)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterTranslate : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxChapterTranslate)
|
||||
public:
|
||||
KaxChapterTranslate();
|
||||
KaxChapterTranslate(const KaxChapterTranslate & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterTranslate)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterTranslateCodec : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterTranslateCodec)
|
||||
public:
|
||||
KaxChapterTranslateCodec() {}
|
||||
KaxChapterTranslateCodec(const KaxChapterTranslateCodec & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterTranslateCodec)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterTranslateEditionUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxChapterTranslateEditionUID)
|
||||
public:
|
||||
KaxChapterTranslateEditionUID() {}
|
||||
KaxChapterTranslateEditionUID(const KaxChapterTranslateEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterTranslateEditionUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxChapterTranslateID : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxChapterTranslateID)
|
||||
public:
|
||||
KaxChapterTranslateID() {}
|
||||
KaxChapterTranslateID(const KaxChapterTranslateID & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const { return true;}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxChapterTranslateID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTimecodeScale : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTimecodeScale)
|
||||
public:
|
||||
KaxTimecodeScale() :EbmlUInteger(1000000) {}
|
||||
KaxTimecodeScale(const KaxTimecodeScale & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTimecodeScale)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxDuration : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxDuration)
|
||||
public:
|
||||
KaxDuration(): EbmlFloat(FLOAT_64) {}
|
||||
KaxDuration(const KaxDuration & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxDuration)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxDateUTC : public EbmlDate {
|
||||
DECLARE_MKX_DATE(KaxDateUTC)
|
||||
public:
|
||||
KaxDateUTC() {}
|
||||
KaxDateUTC(const KaxDateUTC & ElementToClone) :EbmlDate(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxDateUTC)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTitle : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTitle)
|
||||
public:
|
||||
KaxTitle() {}
|
||||
KaxTitle(const KaxTitle & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTitle)
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
@ -47,9 +48,8 @@ START_LIBMATROSKA_NAMESPACE
|
||||
class KaxSegment;
|
||||
class KaxSeek;
|
||||
|
||||
class MATROSKA_DLL_API KaxSeekHead : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxSeekHead)
|
||||
public:
|
||||
KaxSeekHead();
|
||||
KaxSeekHead(const KaxSeekHead & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
/*!
|
||||
@ -64,9 +64,8 @@ class MATROSKA_DLL_API KaxSeekHead : public EbmlMaster {
|
||||
EBML_CONCRETE_CLASS(KaxSeekHead)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSeek : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxSeek)
|
||||
public:
|
||||
KaxSeek();
|
||||
KaxSeek(const KaxSeek & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
int64 Location() const;
|
||||
@ -76,18 +75,16 @@ class MATROSKA_DLL_API KaxSeek : public EbmlMaster {
|
||||
EBML_CONCRETE_CLASS(KaxSeek)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSeekID : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxSeekID)
|
||||
public:
|
||||
KaxSeekID() {}
|
||||
KaxSeekID(const KaxSeekID & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return GetSize() <= 4;}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSeekID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxSeekPosition : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxSeekPosition)
|
||||
public:
|
||||
KaxSeekPosition() {}
|
||||
KaxSeekPosition(const KaxSeekPosition & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxSeekPosition)
|
||||
|
@ -37,14 +37,14 @@
|
||||
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxSegment : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxSegment)
|
||||
public:
|
||||
KaxSegment();
|
||||
KaxSegment(const KaxSegment & ElementToClone);
|
||||
|
||||
/*!
|
||||
|
@ -44,476 +44,419 @@
|
||||
#include "ebml/EbmlString.h"
|
||||
#include "ebml/EbmlUnicodeString.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxTag : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTag)
|
||||
public:
|
||||
KaxTag();
|
||||
KaxTag(const KaxTag & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTag)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagTargets : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagTargets)
|
||||
public:
|
||||
KaxTagTargets();
|
||||
KaxTagTargets(const KaxTagTargets & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagTargets)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagGeneral : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagGeneral)
|
||||
public:
|
||||
KaxTagGeneral();
|
||||
KaxTagGeneral(const KaxTagGeneral & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagGeneral)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagGenres : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagGenres)
|
||||
public:
|
||||
KaxTagGenres();
|
||||
KaxTagGenres(const KaxTagGenres & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagGenres)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagAudioSpecific : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagAudioSpecific)
|
||||
public:
|
||||
KaxTagAudioSpecific();
|
||||
KaxTagAudioSpecific(const KaxTagAudioSpecific & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagAudioSpecific)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagImageSpecific : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagImageSpecific)
|
||||
public:
|
||||
KaxTagImageSpecific();
|
||||
KaxTagImageSpecific(const KaxTagImageSpecific & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagImageSpecific)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagTargetTypeValue : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagTargetTypeValue)
|
||||
public:
|
||||
KaxTagTargetTypeValue() :EbmlUInteger(50) {}
|
||||
KaxTagTargetTypeValue(const KaxTagTargetTypeValue & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagTargetTypeValue)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagTargetType : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagTargetType)
|
||||
public:
|
||||
KaxTagTargetType() {}
|
||||
KaxTagTargetType(const KaxTagTargetType & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagTargetType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagTrackUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagTrackUID)
|
||||
public:
|
||||
KaxTagTrackUID() :EbmlUInteger(0) {}
|
||||
KaxTagTrackUID(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagTrackUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagEditionUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagEditionUID)
|
||||
public:
|
||||
KaxTagEditionUID() :EbmlUInteger(0) {}
|
||||
KaxTagEditionUID(const KaxTagEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagEditionUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagChapterUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagChapterUID)
|
||||
public:
|
||||
KaxTagChapterUID() :EbmlUInteger(0) {}
|
||||
KaxTagChapterUID(const KaxTagChapterUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagChapterUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagAttachmentUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagAttachmentUID)
|
||||
public:
|
||||
KaxTagAttachmentUID() :EbmlUInteger(0) {}
|
||||
KaxTagAttachmentUID(const KaxTagAttachmentUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagAttachmentUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagArchivalLocation : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagArchivalLocation)
|
||||
public:
|
||||
KaxTagArchivalLocation() {}
|
||||
KaxTagArchivalLocation(const KaxTagArchivalLocation & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagArchivalLocation)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagAudioEncryption : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagAudioEncryption)
|
||||
public:
|
||||
KaxTagAudioEncryption() {}
|
||||
KaxTagAudioEncryption(const KaxTagAudioEncryption & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagAudioEncryption)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagAudioGain : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxTagAudioGain)
|
||||
public:
|
||||
KaxTagAudioGain() {}
|
||||
KaxTagAudioGain(const KaxTagAudioGain & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagAudioGain)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagAudioGenre : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagAudioGenre)
|
||||
public:
|
||||
KaxTagAudioGenre() {}
|
||||
KaxTagAudioGenre(const KaxTagAudioGenre & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagAudioGenre)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagAudioPeak : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxTagAudioPeak)
|
||||
public:
|
||||
KaxTagAudioPeak() {}
|
||||
KaxTagAudioPeak(const KaxTagAudioPeak & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagAudioPeak)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagBibliography : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagBibliography)
|
||||
public:
|
||||
KaxTagBibliography() {}
|
||||
KaxTagBibliography(const KaxTagBibliography & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagBibliography)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagBPM : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxTagBPM)
|
||||
public:
|
||||
KaxTagBPM() {}
|
||||
KaxTagBPM(const KaxTagBPM & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagBPM)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagCaptureDPI : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagCaptureDPI)
|
||||
public:
|
||||
KaxTagCaptureDPI() {}
|
||||
KaxTagCaptureDPI(const KaxTagCaptureDPI & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagCaptureDPI)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagCaptureLightness : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagCaptureLightness)
|
||||
public:
|
||||
KaxTagCaptureLightness() {}
|
||||
KaxTagCaptureLightness(const KaxTagCaptureLightness & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagCaptureLightness)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagCapturePaletteSetting : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagCapturePaletteSetting)
|
||||
public:
|
||||
KaxTagCapturePaletteSetting() {}
|
||||
KaxTagCapturePaletteSetting(const KaxTagCapturePaletteSetting & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagCapturePaletteSetting)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagCaptureSharpness : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagCaptureSharpness)
|
||||
public:
|
||||
KaxTagCaptureSharpness() {}
|
||||
KaxTagCaptureSharpness(const KaxTagCaptureSharpness & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagCaptureSharpness)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagCropped : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagCropped)
|
||||
public:
|
||||
KaxTagCropped() {}
|
||||
KaxTagCropped(const KaxTagCropped & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagCropped)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagDiscTrack : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagDiscTrack)
|
||||
public:
|
||||
KaxTagDiscTrack() {}
|
||||
KaxTagDiscTrack(const KaxTagDiscTrack & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagDiscTrack)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagEncoder : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagEncoder)
|
||||
public:
|
||||
KaxTagEncoder() {}
|
||||
KaxTagEncoder(const KaxTagEncoder & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagEncoder)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagEncodeSettings : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagEncodeSettings)
|
||||
public:
|
||||
KaxTagEncodeSettings() {}
|
||||
KaxTagEncodeSettings(const KaxTagEncodeSettings & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagEncodeSettings)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagEqualisation : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagEqualisation)
|
||||
public:
|
||||
KaxTagEqualisation() {}
|
||||
KaxTagEqualisation(const KaxTagEqualisation & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagEqualisation)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagFile : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagFile)
|
||||
public:
|
||||
KaxTagFile() {}
|
||||
KaxTagFile(const KaxTagFile & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagFile)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagInitialKey : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagInitialKey)
|
||||
public:
|
||||
KaxTagInitialKey() {}
|
||||
KaxTagInitialKey(const KaxTagInitialKey & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagInitialKey)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagKeywords : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagKeywords)
|
||||
public:
|
||||
KaxTagKeywords() {}
|
||||
KaxTagKeywords(const KaxTagKeywords & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagKeywords)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagLanguage : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagLanguage)
|
||||
public:
|
||||
KaxTagLanguage() {}
|
||||
KaxTagLanguage(const KaxTagLanguage & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagLanguage)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagLength : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagLength)
|
||||
public:
|
||||
KaxTagLength() {}
|
||||
KaxTagLength(const KaxTagLength & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagLength)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMood : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMood)
|
||||
public:
|
||||
KaxTagMood() {}
|
||||
KaxTagMood(const KaxTagMood & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMood)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagOfficialAudioFileURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagOfficialAudioFileURL)
|
||||
public:
|
||||
KaxTagOfficialAudioFileURL() {}
|
||||
KaxTagOfficialAudioFileURL(const KaxTagOfficialAudioFileURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagOfficialAudioFileURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagOfficialAudioSourceURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagOfficialAudioSourceURL)
|
||||
public:
|
||||
KaxTagOfficialAudioSourceURL() {}
|
||||
KaxTagOfficialAudioSourceURL(const KaxTagOfficialAudioSourceURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagOfficialAudioSourceURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagOriginalDimensions : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagOriginalDimensions)
|
||||
public:
|
||||
KaxTagOriginalDimensions() {}
|
||||
KaxTagOriginalDimensions(const KaxTagOriginalDimensions & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagOriginalDimensions)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagOriginalMediaType : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagOriginalMediaType)
|
||||
public:
|
||||
KaxTagOriginalMediaType() {}
|
||||
KaxTagOriginalMediaType(const KaxTagOriginalMediaType & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagOriginalMediaType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagPlayCounter : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagPlayCounter)
|
||||
public:
|
||||
KaxTagPlayCounter() {}
|
||||
KaxTagPlayCounter(const KaxTagPlayCounter & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagPlayCounter)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagPlaylistDelay : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagPlaylistDelay)
|
||||
public:
|
||||
KaxTagPlaylistDelay() {}
|
||||
KaxTagPlaylistDelay(const KaxTagPlaylistDelay & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagPlaylistDelay)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagPopularimeter : public EbmlSInteger {
|
||||
DECLARE_MKX_SINTEGER(KaxTagPopularimeter)
|
||||
public:
|
||||
KaxTagPopularimeter() {}
|
||||
KaxTagPopularimeter(const KaxTagPopularimeter & ElementToClone) :EbmlSInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagPopularimeter)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagProduct : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagProduct)
|
||||
public:
|
||||
KaxTagProduct() {}
|
||||
KaxTagProduct(const KaxTagProduct & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagProduct)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagRating : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagRating)
|
||||
public:
|
||||
KaxTagRating() {}
|
||||
KaxTagRating(const KaxTagRating & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagRating)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagRecordLocation : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagRecordLocation)
|
||||
public:
|
||||
KaxTagRecordLocation() {}
|
||||
KaxTagRecordLocation(const KaxTagRecordLocation & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagRecordLocation)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagSetPart : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagSetPart)
|
||||
public:
|
||||
KaxTagSetPart() {}
|
||||
KaxTagSetPart(const KaxTagSetPart & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagSetPart)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagSource : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagSource)
|
||||
public:
|
||||
KaxTagSource() {}
|
||||
KaxTagSource(const KaxTagSource & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagSource)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagSourceForm : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagSourceForm)
|
||||
public:
|
||||
KaxTagSourceForm() {}
|
||||
KaxTagSourceForm(const KaxTagSourceForm & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagSourceForm)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagSubGenre : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagSubGenre)
|
||||
public:
|
||||
KaxTagSubGenre() {}
|
||||
KaxTagSubGenre(const KaxTagSubGenre & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagSubGenre)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagSubject : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagSubject)
|
||||
public:
|
||||
KaxTagSubject() {}
|
||||
KaxTagSubject(const KaxTagSubject & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagSubject)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagUnsynchronisedText : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagUnsynchronisedText)
|
||||
public:
|
||||
KaxTagUnsynchronisedText() {}
|
||||
KaxTagUnsynchronisedText(const KaxTagUnsynchronisedText & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagUnsynchronisedText)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagUserDefinedURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagUserDefinedURL)
|
||||
public:
|
||||
KaxTagUserDefinedURL() {}
|
||||
KaxTagUserDefinedURL(const KaxTagUserDefinedURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagUserDefinedURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagVideoGenre : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagVideoGenre)
|
||||
public:
|
||||
KaxTagVideoGenre() {}
|
||||
KaxTagVideoGenre(const KaxTagVideoGenre & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return (GetSize() >= 2);}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagVideoGenre)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagSimple : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagSimple)
|
||||
public:
|
||||
KaxTagSimple();
|
||||
KaxTagSimple(const KaxTagSimple & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagSimple)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagName : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagName)
|
||||
public:
|
||||
KaxTagName() {}
|
||||
KaxTagName(const KaxTagName & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagName)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagLangue : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagLangue)
|
||||
public:
|
||||
KaxTagLangue(): EbmlString("und") {}
|
||||
KaxTagLangue(const KaxTagLangue & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagLangue)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagDefault : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagDefault)
|
||||
public:
|
||||
KaxTagDefault() :EbmlUInteger(1) {}
|
||||
KaxTagDefault(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagDefault)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagString : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagString)
|
||||
public:
|
||||
KaxTagString() {}
|
||||
KaxTagString(const KaxTagString & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagString)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagBinary : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagBinary)
|
||||
public:
|
||||
KaxTagBinary() {}
|
||||
KaxTagBinary(const KaxTagBinary & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // {return (GetSize() >= 0);}
|
||||
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include "ebml/EbmlString.h"
|
||||
#include "ebml/EbmlUnicodeString.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
@ -122,457 +123,392 @@ enum KaxTagMultiTitleTypes {
|
||||
KaxTagMultiTitleType_Series //This would be used to label a set of ID 3. For example, The Simpsons.
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiComment : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiComment)
|
||||
public:
|
||||
KaxTagMultiComment();
|
||||
KaxTagMultiComment(const KaxTagMultiComment & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiComment)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiCommentName : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiCommentName)
|
||||
public:
|
||||
KaxTagMultiCommentName() {}
|
||||
KaxTagMultiCommentName(const KaxTagMultiCommentName & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiCommentName)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiCommentComments : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiCommentComments)
|
||||
public:
|
||||
KaxTagMultiCommentComments() {}
|
||||
KaxTagMultiCommentComments(const KaxTagMultiCommentComments & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiCommentComments)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiCommentLanguage : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiCommentLanguage)
|
||||
public:
|
||||
KaxTagMultiCommentLanguage() {}
|
||||
KaxTagMultiCommentLanguage(const KaxTagMultiCommentLanguage & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiCommentLanguage)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiCommercial : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiCommercial)
|
||||
public:
|
||||
KaxTagMultiCommercial();
|
||||
KaxTagMultiCommercial(const KaxTagMultiCommercial & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiCommercial)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagCommercial : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagCommercial)
|
||||
public:
|
||||
KaxTagCommercial();
|
||||
KaxTagCommercial(const KaxTagCommercial & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagCommercial)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiCommercialType : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagMultiCommercialType)
|
||||
public:
|
||||
KaxTagMultiCommercialType() {}
|
||||
KaxTagMultiCommercialType(const KaxTagMultiCommercialType & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiCommercialType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiCommercialAddress : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiCommercialAddress)
|
||||
public:
|
||||
KaxTagMultiCommercialAddress() {}
|
||||
KaxTagMultiCommercialAddress(const KaxTagMultiCommercialAddress & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiCommercialAddress)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiCommercialURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiCommercialURL)
|
||||
public:
|
||||
KaxTagMultiCommercialURL() {}
|
||||
KaxTagMultiCommercialURL(const KaxTagMultiCommercialURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiCommercialURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiCommercialEmail : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiCommercialEmail)
|
||||
public:
|
||||
KaxTagMultiCommercialEmail() {}
|
||||
KaxTagMultiCommercialEmail(const KaxTagMultiCommercialEmail & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiCommercialEmail)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiPrice : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiPrice)
|
||||
public:
|
||||
KaxTagMultiPrice();
|
||||
KaxTagMultiPrice(const KaxTagMultiPrice & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiPrice)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiPriceCurrency : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiPriceCurrency)
|
||||
public:
|
||||
KaxTagMultiPriceCurrency() {}
|
||||
KaxTagMultiPriceCurrency(const KaxTagMultiPriceCurrency & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiPriceCurrency)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiPriceAmount : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxTagMultiPriceAmount)
|
||||
public:
|
||||
KaxTagMultiPriceAmount() :EbmlFloat() {}
|
||||
KaxTagMultiPriceAmount(const KaxTagMultiPriceAmount & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiPriceAmount)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiPricePriceDate : public EbmlDate {
|
||||
DECLARE_MKX_DATE(KaxTagMultiPricePriceDate)
|
||||
public:
|
||||
KaxTagMultiPricePriceDate() :EbmlDate() {}
|
||||
KaxTagMultiPricePriceDate(const KaxTagMultiPricePriceDate & ElementToClone) :EbmlDate(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiPricePriceDate)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiDate : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiDate)
|
||||
public:
|
||||
KaxTagMultiDate();
|
||||
KaxTagMultiDate(const KaxTagMultiDate & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiDate)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagDate : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagDate)
|
||||
public:
|
||||
KaxTagDate();
|
||||
KaxTagDate(const KaxTagDate & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagDate)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiDateType : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagMultiDateType)
|
||||
public:
|
||||
KaxTagMultiDateType() {}
|
||||
KaxTagMultiDateType(const KaxTagMultiDateType & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiDateType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiDateDateBegin : public EbmlDate {
|
||||
DECLARE_MKX_DATE(KaxTagMultiDateDateBegin)
|
||||
public:
|
||||
KaxTagMultiDateDateBegin() :EbmlDate() {}
|
||||
KaxTagMultiDateDateBegin(const KaxTagMultiDateDateBegin & ElementToClone) :EbmlDate(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiDateDateBegin)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiDateDateEnd : public EbmlDate {
|
||||
DECLARE_MKX_DATE(KaxTagMultiDateDateEnd)
|
||||
public:
|
||||
KaxTagMultiDateDateEnd() :EbmlDate() {}
|
||||
KaxTagMultiDateDateEnd(const KaxTagMultiDateDateEnd & ElementToClone) :EbmlDate(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiDateDateEnd)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiEntity : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiEntity)
|
||||
public:
|
||||
KaxTagMultiEntity();
|
||||
KaxTagMultiEntity(const KaxTagMultiEntity & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiEntity)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagEntity : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagEntity)
|
||||
public:
|
||||
KaxTagEntity();
|
||||
KaxTagEntity(const KaxTagEntity & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagEntity)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiEntityType : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagMultiEntityType)
|
||||
public:
|
||||
KaxTagMultiEntityType() {}
|
||||
KaxTagMultiEntityType(const KaxTagMultiEntityType & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiEntityType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiEntityName : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiEntityName)
|
||||
public:
|
||||
KaxTagMultiEntityName() {}
|
||||
KaxTagMultiEntityName(const KaxTagMultiEntityName & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiEntityName)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiEntityAddress : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiEntityAddress)
|
||||
public:
|
||||
KaxTagMultiEntityAddress() {}
|
||||
KaxTagMultiEntityAddress(const KaxTagMultiEntityAddress & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiEntityAddress)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiEntityURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiEntityURL)
|
||||
public:
|
||||
KaxTagMultiEntityURL() {}
|
||||
KaxTagMultiEntityURL(const KaxTagMultiEntityURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiEntityURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiEntityEmail : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiEntityEmail)
|
||||
public:
|
||||
KaxTagMultiEntityEmail() {}
|
||||
KaxTagMultiEntityEmail(const KaxTagMultiEntityEmail & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiEntityEmail)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiIdentifier : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiIdentifier)
|
||||
public:
|
||||
KaxTagMultiIdentifier();
|
||||
KaxTagMultiIdentifier(const KaxTagMultiIdentifier & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiIdentifier)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagIdentifier : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagIdentifier)
|
||||
public:
|
||||
KaxTagIdentifier();
|
||||
KaxTagIdentifier(const KaxTagIdentifier & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagIdentifier)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiIdentifierType : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagMultiIdentifierType)
|
||||
public:
|
||||
KaxTagMultiIdentifierType() {}
|
||||
KaxTagMultiIdentifierType(const KaxTagMultiIdentifierType & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiIdentifierType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiIdentifierBinary : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagMultiIdentifierBinary)
|
||||
public:
|
||||
KaxTagMultiIdentifierBinary() {}
|
||||
KaxTagMultiIdentifierBinary(const KaxTagMultiIdentifierBinary & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiIdentifierBinary)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiIdentifierString : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiIdentifierString)
|
||||
public:
|
||||
KaxTagMultiIdentifierString() {}
|
||||
KaxTagMultiIdentifierString(const KaxTagMultiIdentifierString & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiIdentifierString)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiLegal : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiLegal)
|
||||
public:
|
||||
KaxTagMultiLegal();
|
||||
KaxTagMultiLegal(const KaxTagMultiLegal & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiLegal)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagLegal : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagLegal)
|
||||
public:
|
||||
KaxTagLegal();
|
||||
KaxTagLegal(const KaxTagLegal & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagLegal)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiLegalType : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagMultiLegalType)
|
||||
public:
|
||||
KaxTagMultiLegalType() {}
|
||||
KaxTagMultiLegalType(const KaxTagMultiLegalType & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiLegalType)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiLegalContent : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiLegalContent)
|
||||
public:
|
||||
KaxTagMultiLegalContent() {}
|
||||
KaxTagMultiLegalContent(const KaxTagMultiLegalContent & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiLegalContent)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiLegalURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiLegalURL)
|
||||
public:
|
||||
KaxTagMultiLegalURL() {}
|
||||
KaxTagMultiLegalURL(const KaxTagMultiLegalURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiLegalURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiLegalAddress : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiLegalAddress)
|
||||
public:
|
||||
KaxTagMultiLegalAddress() {}
|
||||
KaxTagMultiLegalAddress(const KaxTagMultiLegalAddress & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiLegalAddress)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitle : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiTitle)
|
||||
public:
|
||||
KaxTagMultiTitle();
|
||||
KaxTagMultiTitle(const KaxTagMultiTitle & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitle)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagTitle : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagTitle)
|
||||
public:
|
||||
KaxTagTitle();
|
||||
KaxTagTitle(const KaxTagTitle & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagTitle)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitleType : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagMultiTitleType)
|
||||
public:
|
||||
KaxTagMultiTitleType() {}
|
||||
KaxTagMultiTitleType(const KaxTagMultiTitleType & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitleType)
|
||||
};
|
||||
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitleName : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiTitleName)
|
||||
public:
|
||||
KaxTagMultiTitleName() {}
|
||||
KaxTagMultiTitleName(const KaxTagMultiTitleName & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitleName)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitleSubTitle : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiTitleSubTitle)
|
||||
public:
|
||||
KaxTagMultiTitleSubTitle() {}
|
||||
KaxTagMultiTitleSubTitle(const KaxTagMultiTitleSubTitle & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitleSubTitle)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitleEdition : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiTitleEdition)
|
||||
public:
|
||||
KaxTagMultiTitleEdition() {}
|
||||
KaxTagMultiTitleEdition(const KaxTagMultiTitleEdition & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitleEdition)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitleAddress : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTagMultiTitleAddress)
|
||||
public:
|
||||
KaxTagMultiTitleAddress() {}
|
||||
KaxTagMultiTitleAddress(const KaxTagMultiTitleAddress & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitleAddress)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitleURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiTitleURL)
|
||||
public:
|
||||
KaxTagMultiTitleURL() {}
|
||||
KaxTagMultiTitleURL(const KaxTagMultiTitleURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitleURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitleEmail : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiTitleEmail)
|
||||
public:
|
||||
KaxTagMultiTitleEmail() {}
|
||||
KaxTagMultiTitleEmail(const KaxTagMultiTitleEmail & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitleEmail)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiTitleLanguage : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTagMultiTitleLanguage)
|
||||
public:
|
||||
KaxTagMultiTitleLanguage() {}
|
||||
KaxTagMultiTitleLanguage(const KaxTagMultiTitleLanguage & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiTitleLanguage)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagMultiAttachment : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagMultiAttachment)
|
||||
public:
|
||||
KaxTagMultiAttachment();
|
||||
KaxTagMultiAttachment(const KaxTagMultiAttachment & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagMultiAttachment)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagAttachment : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTagAttachment)
|
||||
public:
|
||||
KaxTagAttachment();
|
||||
KaxTagAttachment(const KaxTagAttachment & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagAttachment)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagAttachmentID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTagAttachmentID)
|
||||
public:
|
||||
KaxTagAttachmentID() {}
|
||||
KaxTagAttachmentID(const KaxTagAttachmentID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagAttachmentID)
|
||||
};
|
||||
|
||||
#if 0
|
||||
class MATROSKA_DLL_API KaxTagBPM : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxTagBPM)
|
||||
public:
|
||||
KaxTagBPM() :EbmlFloat() {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagBPM)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagPopularimeter : public EbmlSInteger {
|
||||
DECLARE_MKX_SINTEGER(KaxTagPopularimeter)
|
||||
public:
|
||||
KaxTagPopularimeter() {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagPopularimeter)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagRating : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagRating)
|
||||
public:
|
||||
KaxTagRating() {}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagRating)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagSetPart : public EbmlUInteger {
|
||||
public:
|
||||
KaxTagSetPart() {}
|
||||
|
||||
DECLARE_MKX_UINTEGER(KaxTagSetPart)
|
||||
EBML_CONCRETE_CLASS(KaxTagSetPart)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagUserDefinedURL : public EbmlString {
|
||||
public:
|
||||
KaxTagUserDefinedURL() {}
|
||||
|
||||
DECLARE_MKX_STRING(KaxTagUserDefinedURL)
|
||||
EBML_CONCRETE_CLASS(KaxTagUserDefinedURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTagVideoSecondaryGenre : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTagVideoSecondaryGenre)
|
||||
public:
|
||||
KaxTagVideoSecondaryGenre() {}
|
||||
bool ValidateSize() const {return (Size >= 4);}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTagVideoSecondaryGenre)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxWritingApp : public EbmlUnicodeString {
|
||||
public:
|
||||
KaxWritingApp() {}
|
||||
|
||||
DECLARE_MKX_UNISTRING(KaxWritingApp)
|
||||
EBML_CONCRETE_CLASS(KaxWritingApp)
|
||||
};
|
||||
#endif
|
||||
|
@ -37,14 +37,14 @@
|
||||
|
||||
#include "matroska/KaxTypes.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxTags : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTags)
|
||||
public:
|
||||
KaxTags();
|
||||
KaxTags(const KaxTags & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTags)
|
||||
|
@ -40,47 +40,43 @@
|
||||
#include "ebml/EbmlFloat.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackAudio : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTrackAudio)
|
||||
public:
|
||||
KaxTrackAudio();
|
||||
KaxTrackAudio(const KaxTrackAudio & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackAudio)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxAudioSamplingFreq : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxAudioSamplingFreq)
|
||||
public:
|
||||
KaxAudioSamplingFreq() :EbmlFloat(8000.0) {}
|
||||
KaxAudioSamplingFreq(const KaxAudioSamplingFreq & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxAudioSamplingFreq)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxAudioOutputSamplingFreq : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxAudioOutputSamplingFreq)
|
||||
public:
|
||||
KaxAudioOutputSamplingFreq() :EbmlFloat() {}
|
||||
KaxAudioOutputSamplingFreq(const KaxAudioOutputSamplingFreq & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxAudioOutputSamplingFreq)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxAudioChannels : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxAudioChannels)
|
||||
public:
|
||||
KaxAudioChannels() :EbmlUInteger(1) {}
|
||||
KaxAudioChannels(const KaxAudioChannels & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxAudioChannels)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxAudioPosition : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxAudioPosition)
|
||||
public:
|
||||
KaxAudioPosition() {}
|
||||
KaxAudioPosition(const KaxAudioPosition & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize(void) const {return true;}
|
||||
|
||||
@ -88,9 +84,8 @@ class MATROSKA_DLL_API KaxAudioPosition : public EbmlBinary {
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxAudioBitDepth : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxAudioBitDepth)
|
||||
public:
|
||||
KaxAudioBitDepth() {}
|
||||
KaxAudioBitDepth(const KaxAudioBitDepth & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxAudioBitDepth)
|
||||
|
@ -43,194 +43,172 @@
|
||||
#include "ebml/EbmlUnicodeString.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackNumber : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackNumber)
|
||||
public:
|
||||
KaxTrackNumber() {}
|
||||
KaxTrackNumber(const KaxTrackNumber & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackNumber)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackUID)
|
||||
public:
|
||||
KaxTrackUID() {}
|
||||
KaxTrackUID(const KaxTrackUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackType : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackType)
|
||||
public:
|
||||
KaxTrackType() {}
|
||||
KaxTrackType(const KaxTrackType & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackType)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxTrackFlagEnabled : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackFlagEnabled)
|
||||
public:
|
||||
KaxTrackFlagEnabled() :EbmlUInteger(1) {}
|
||||
KaxTrackFlagEnabled(const KaxTrackFlagEnabled & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackFlagEnabled)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackFlagDefault : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackFlagDefault)
|
||||
public:
|
||||
KaxTrackFlagDefault() :EbmlUInteger(1) {}
|
||||
KaxTrackFlagDefault(const KaxTrackFlagDefault & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackFlagDefault)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackFlagForced : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackFlagForced)
|
||||
public:
|
||||
KaxTrackFlagForced() :EbmlUInteger(0) {}
|
||||
KaxTrackFlagForced(const KaxTrackFlagForced & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackFlagForced)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackFlagLacing : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackFlagLacing)
|
||||
public:
|
||||
KaxTrackFlagLacing() :EbmlUInteger(1) {}
|
||||
KaxTrackFlagLacing(const KaxTrackFlagLacing & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackFlagLacing)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackMinCache : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackMinCache)
|
||||
public:
|
||||
KaxTrackMinCache() :EbmlUInteger(0) {}
|
||||
KaxTrackMinCache(const KaxTrackMinCache & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackMinCache)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackMaxCache : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackMaxCache)
|
||||
public:
|
||||
KaxTrackMaxCache() {}
|
||||
KaxTrackMaxCache(const KaxTrackMaxCache & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackMaxCache)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackDefaultDuration : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackDefaultDuration)
|
||||
public:
|
||||
KaxTrackDefaultDuration() {}
|
||||
KaxTrackDefaultDuration(const KaxTrackDefaultDuration & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackDefaultDuration)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackTimecodeScale : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxTrackTimecodeScale)
|
||||
public:
|
||||
KaxTrackTimecodeScale() :EbmlFloat(1.0) {}
|
||||
KaxTrackTimecodeScale(const KaxTrackTimecodeScale & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackTimecodeScale)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxMaxBlockAdditionID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxMaxBlockAdditionID)
|
||||
public:
|
||||
KaxMaxBlockAdditionID() :EbmlUInteger(0) {}
|
||||
KaxMaxBlockAdditionID(const KaxMaxBlockAdditionID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxMaxBlockAdditionID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackName : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxTrackName)
|
||||
public:
|
||||
KaxTrackName() {}
|
||||
KaxTrackName(const KaxTrackName & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackName)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackLanguage : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxTrackLanguage)
|
||||
public:
|
||||
KaxTrackLanguage() :EbmlString("eng") {}
|
||||
KaxTrackLanguage(const KaxTrackLanguage & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackLanguage)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCodecID : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxCodecID)
|
||||
public:
|
||||
KaxCodecID() {}
|
||||
KaxCodecID(const KaxCodecID & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCodecPrivate : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxCodecPrivate)
|
||||
public:
|
||||
KaxCodecPrivate() {}
|
||||
KaxCodecPrivate(const KaxCodecPrivate & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecPrivate)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCodecName : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxCodecName)
|
||||
public:
|
||||
KaxCodecName() {}
|
||||
KaxCodecName(const KaxCodecName & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecName)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackAttachmentLink : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTrackAttachmentLink)
|
||||
public:
|
||||
KaxTrackAttachmentLink() {}
|
||||
KaxTrackAttachmentLink(const KaxTrackAttachmentLink & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const {return true;} // we don't mind about what's inside
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackAttachmentLink)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackOverlay : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackOverlay)
|
||||
public:
|
||||
KaxTrackOverlay() {}
|
||||
KaxTrackOverlay(const KaxTrackOverlay & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackOverlay)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackTranslate : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTrackTranslate)
|
||||
public:
|
||||
KaxTrackTranslate();
|
||||
KaxTrackTranslate(const KaxTrackTranslate & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackTranslate)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackTranslateCodec : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackTranslateCodec)
|
||||
public:
|
||||
KaxTrackTranslateCodec() {}
|
||||
KaxTrackTranslateCodec(const KaxTrackTranslateCodec & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackTranslateCodec)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackTranslateEditionUID : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxTrackTranslateEditionUID)
|
||||
public:
|
||||
KaxTrackTranslateEditionUID() {}
|
||||
KaxTrackTranslateEditionUID(const KaxTrackTranslateEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackTranslateEditionUID)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackTranslateTrackID : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxTrackTranslateTrackID)
|
||||
public:
|
||||
KaxTrackTranslateTrackID() {}
|
||||
KaxTrackTranslateTrackID(const KaxTrackTranslateTrackID & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize() const { return true;}
|
||||
|
||||
@ -238,33 +216,29 @@ class MATROSKA_DLL_API KaxTrackTranslateTrackID : public EbmlBinary {
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxCodecSettings : public EbmlUnicodeString {
|
||||
DECLARE_MKX_UNISTRING(KaxCodecSettings)
|
||||
public:
|
||||
KaxCodecSettings() {}
|
||||
KaxCodecSettings(const KaxCodecSettings & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecSettings)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCodecInfoURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxCodecInfoURL)
|
||||
public:
|
||||
KaxCodecInfoURL() {}
|
||||
KaxCodecInfoURL(const KaxCodecInfoURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecInfoURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCodecDownloadURL : public EbmlString {
|
||||
DECLARE_MKX_STRING(KaxCodecDownloadURL)
|
||||
public:
|
||||
KaxCodecDownloadURL() {}
|
||||
KaxCodecDownloadURL(const KaxCodecDownloadURL & ElementToClone) :EbmlString(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecDownloadURL)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxCodecDecodeAll : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxCodecDecodeAll)
|
||||
public:
|
||||
KaxCodecDecodeAll() :EbmlUInteger(1) {}
|
||||
KaxCodecDecodeAll(const KaxCodecDecodeAll & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxCodecDecodeAll)
|
||||
|
@ -40,122 +40,109 @@
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "ebml/EbmlBinary.h"
|
||||
#include "ebml/EbmlFloat.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackVideo : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTrackVideo)
|
||||
public:
|
||||
KaxTrackVideo();
|
||||
KaxTrackVideo(const KaxTrackVideo & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTrackVideo)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxVideoFlagInterlaced : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoFlagInterlaced)
|
||||
public:
|
||||
KaxVideoFlagInterlaced() :EbmlUInteger(0) {}
|
||||
KaxVideoFlagInterlaced(const KaxVideoFlagInterlaced & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoFlagInterlaced)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoStereoMode : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoStereoMode)
|
||||
public:
|
||||
KaxVideoStereoMode() :EbmlUInteger(0) {}
|
||||
KaxVideoStereoMode(const KaxVideoStereoMode & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoStereoMode)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoPixelWidth : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoPixelWidth)
|
||||
public:
|
||||
KaxVideoPixelWidth() {}
|
||||
KaxVideoPixelWidth(const KaxVideoPixelWidth & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoPixelWidth)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoPixelHeight : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoPixelHeight)
|
||||
public:
|
||||
KaxVideoPixelHeight() {}
|
||||
KaxVideoPixelHeight(const KaxVideoPixelHeight & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoPixelHeight)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoPixelCropBottom : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoPixelCropBottom)
|
||||
public:
|
||||
KaxVideoPixelCropBottom(): EbmlUInteger(0) {}
|
||||
KaxVideoPixelCropBottom(const KaxVideoPixelCropBottom & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoPixelCropBottom)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoPixelCropTop : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoPixelCropTop)
|
||||
public:
|
||||
KaxVideoPixelCropTop(): EbmlUInteger(0) {}
|
||||
KaxVideoPixelCropTop(const KaxVideoPixelCropTop & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoPixelCropTop)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoPixelCropLeft : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoPixelCropLeft)
|
||||
public:
|
||||
KaxVideoPixelCropLeft(): EbmlUInteger(0) {}
|
||||
KaxVideoPixelCropLeft(const KaxVideoPixelCropLeft & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoPixelCropLeft)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoPixelCropRight : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoPixelCropRight)
|
||||
public:
|
||||
KaxVideoPixelCropRight(): EbmlUInteger(0) {}
|
||||
KaxVideoPixelCropRight(const KaxVideoPixelCropRight & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoPixelCropRight)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoDisplayWidth : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoDisplayWidth)
|
||||
public:
|
||||
KaxVideoDisplayWidth() {}
|
||||
KaxVideoDisplayWidth(const KaxVideoDisplayWidth & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoDisplayWidth)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoDisplayHeight : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoDisplayHeight)
|
||||
public:
|
||||
KaxVideoDisplayHeight() {}
|
||||
KaxVideoDisplayHeight(const KaxVideoDisplayHeight & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoDisplayHeight)
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxVideoDisplayUnit : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoDisplayUnit)
|
||||
public:
|
||||
KaxVideoDisplayUnit() {}
|
||||
KaxVideoDisplayUnit(const KaxVideoDisplayUnit & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoDisplayUnit)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoAspectRatio : public EbmlUInteger {
|
||||
DECLARE_MKX_UINTEGER(KaxVideoAspectRatio)
|
||||
public:
|
||||
KaxVideoAspectRatio() {}
|
||||
KaxVideoAspectRatio(const KaxVideoAspectRatio & ElementToClone) :EbmlUInteger(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoAspectRatio)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoColourSpace : public EbmlBinary {
|
||||
DECLARE_MKX_BINARY(KaxVideoColourSpace)
|
||||
public:
|
||||
KaxVideoColourSpace() {}
|
||||
KaxVideoColourSpace(const KaxVideoColourSpace & ElementToClone) :EbmlBinary(ElementToClone){}
|
||||
bool ValidateSize(void) const {return (GetSize() == 4);}
|
||||
|
||||
@ -163,18 +150,16 @@ class MATROSKA_DLL_API KaxVideoColourSpace : public EbmlBinary {
|
||||
};
|
||||
|
||||
#if MATROSKA_VERSION >= 2
|
||||
class MATROSKA_DLL_API KaxVideoGamma : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxVideoGamma)
|
||||
public:
|
||||
KaxVideoGamma() {}
|
||||
KaxVideoGamma(const KaxVideoGamma & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxVideoGamma)
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
class MATROSKA_DLL_API KaxVideoFrameRate : public EbmlFloat {
|
||||
DECLARE_MKX_FLOAT(KaxVideoFrameRate)
|
||||
public:
|
||||
KaxVideoFrameRate() {}
|
||||
KaxVideoFrameRate(const KaxVideoFrameRate & ElementToClone) :EbmlFloat(ElementToClone) {}
|
||||
filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
|
||||
|
||||
|
@ -39,22 +39,21 @@
|
||||
#include "ebml/EbmlMaster.h"
|
||||
#include "ebml/EbmlUInteger.h"
|
||||
#include "matroska/KaxTrackEntryData.h"
|
||||
#include "matroska/KaxDefines.h"
|
||||
|
||||
using namespace LIBEBML_NAMESPACE;
|
||||
|
||||
START_LIBMATROSKA_NAMESPACE
|
||||
|
||||
class MATROSKA_DLL_API KaxTracks : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTracks)
|
||||
public:
|
||||
KaxTracks();
|
||||
KaxTracks(const KaxTracks & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EBML_CONCRETE_CLASS(KaxTracks)
|
||||
};
|
||||
|
||||
class MATROSKA_DLL_API KaxTrackEntry : public EbmlMaster {
|
||||
DECLARE_MKX_MASTER(KaxTrackEntry)
|
||||
public:
|
||||
KaxTrackEntry();
|
||||
KaxTrackEntry(const KaxTrackEntry & ElementToClone) :EbmlMaster(ElementToClone) {}
|
||||
|
||||
EbmlUInteger & TrackNumber() const { return *(static_cast<EbmlUInteger *>(FindElt(EBML_INFO(KaxTrackNumber)))); }
|
||||
|
@ -75,18 +75,18 @@ static const EbmlSemantic ContextList_KaxBlockMore[2] =
|
||||
EbmlSemantic(true, true, EBML_INFO(KaxBlockAdditional))
|
||||
};
|
||||
|
||||
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");
|
||||
DEFINE_MKX_MASTER_NOBODY(KaxBlockGroup, 0xA0, 1, KaxCluster, "BlockGroup");
|
||||
DEFINE_MKX_BINARY_CONS (KaxBlock, 0xA1, 1, KaxBlockGroup, "Block");
|
||||
DEFINE_MKX_UINTEGER (KaxBlockDuration, 0x9B, 1, KaxBlockGroup, "BlockDuration");
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DEFINE_MKX_BINARY (KaxSimpleBlock, 0xA3, 1, KaxCluster, "SimpleBlock");
|
||||
DEFINE_MKX_BINARY (KaxBlockVirtual, 0xA2, 1, KaxBlockGroup, "BlockVirtual");
|
||||
DEFINE_MKX_BINARY (KaxCodecState, 0xA4, 1, KaxBlockGroup, "CodecState");
|
||||
DEFINE_MKX_BINARY_CONS (KaxSimpleBlock, 0xA3, 1, KaxCluster, "SimpleBlock");
|
||||
DEFINE_MKX_BINARY_CONS (KaxBlockVirtual, 0xA2, 1, KaxBlockGroup, "BlockVirtual");
|
||||
DEFINE_MKX_BINARY (KaxCodecState, 0xA4, 1, KaxBlockGroup, "CodecState");
|
||||
#endif
|
||||
DEFINE_MKX_MASTER (KaxBlockAdditions, 0x75A1, 2, KaxBlockGroup, "BlockAdditions");
|
||||
DEFINE_MKX_MASTER (KaxBlockMore, 0xA6, 1, KaxBlockAdditions, "BlockMore");
|
||||
DEFINE_MKX_UINTEGER(KaxBlockAddID, 0xEE, 1, KaxBlockMore, "BlockAddID");
|
||||
DEFINE_MKX_BINARY (KaxBlockAdditional, 0xA5, 1, KaxBlockMore, "BlockAdditional");
|
||||
DEFINE_MKX_MASTER (KaxBlockAdditions, 0x75A1, 2, KaxBlockGroup, "BlockAdditions");
|
||||
DEFINE_MKX_MASTER (KaxBlockMore, 0xA6, 1, KaxBlockAdditions, "BlockMore");
|
||||
DEFINE_MKX_UINTEGER_DEF (KaxBlockAddID, 0xEE, 1, KaxBlockMore, "BlockAddID", 1);
|
||||
DEFINE_MKX_BINARY (KaxBlockAdditional, 0xA5, 1, KaxBlockMore, "BlockAdditional");
|
||||
|
||||
|
||||
DataBuffer * DataBuffer::Clone()
|
||||
|
@ -55,17 +55,17 @@ const EbmlSemantic ContextList_KaxTimeSlice[5] =
|
||||
EbmlSemantic(false, true, EBML_INFO(KaxSliceDuration)),
|
||||
};
|
||||
|
||||
DEFINE_MKX_UINTEGER(KaxReferencePriority, 0xFA, 1, KaxBlockGroup, "FlagReferenced");
|
||||
DEFINE_MKX_SINTEGER(KaxReferenceBlock, 0xFB, 1, KaxBlockGroup, "ReferenceBlock");
|
||||
DEFINE_MKX_MASTER (KaxSlices, 0x8E, 1, KaxBlockGroup, "Slices");
|
||||
DEFINE_MKX_MASTER (KaxTimeSlice, 0xE8, 1, KaxSlices, "TimeSlice");
|
||||
DEFINE_MKX_UINTEGER(KaxSliceLaceNumber, 0xCC, 1, KaxTimeSlice, "SliceLaceNumber");
|
||||
DEFINE_MKX_UINTEGER(KaxSliceFrameNumber, 0xCD, 1, KaxTimeSlice, "SliceFrameNumber");
|
||||
DEFINE_MKX_UINTEGER(KaxSliceBlockAddID, 0xCB, 1, KaxTimeSlice, "SliceBlockAddID");
|
||||
DEFINE_MKX_UINTEGER(KaxSliceDelay, 0xCE, 1, KaxTimeSlice, "SliceDelay");
|
||||
DEFINE_MKX_UINTEGER(KaxSliceDuration, 0xCF, 1, KaxTimeSlice, "SliceDuration");
|
||||
DEFINE_MKX_UINTEGER_DEF (KaxReferencePriority, 0xFA, 1, KaxBlockGroup, "FlagReferenced", 0);
|
||||
DEFINE_MKX_SINTEGER_CONS(KaxReferenceBlock, 0xFB, 1, KaxBlockGroup, "ReferenceBlock");
|
||||
DEFINE_MKX_MASTER (KaxSlices, 0x8E, 1, KaxBlockGroup, "Slices");
|
||||
DEFINE_MKX_MASTER (KaxTimeSlice, 0xE8, 1, KaxSlices, "TimeSlice");
|
||||
DEFINE_MKX_UINTEGER_DEF (KaxSliceLaceNumber, 0xCC, 1, KaxTimeSlice, "SliceLaceNumber", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF (KaxSliceFrameNumber, 0xCD, 1, KaxTimeSlice, "SliceFrameNumber", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF (KaxSliceBlockAddID, 0xCB, 1, KaxTimeSlice, "SliceBlockAddID", 0);
|
||||
DEFINE_MKX_UINTEGER (KaxSliceDelay, 0xCE, 1, KaxTimeSlice, "SliceDelay");
|
||||
DEFINE_MKX_UINTEGER_DEF (KaxSliceDuration, 0xCF, 1, KaxTimeSlice, "SliceDuration", 0);
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DEFINE_MKX_UINTEGER(KaxReferenceVirtual, 0xFD, 1, KaxBlockGroup, "ReferenceVirtual");
|
||||
DEFINE_MKX_UINTEGER (KaxReferenceVirtual, 0xFD, 1, KaxBlockGroup, "ReferenceVirtual");
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -94,32 +94,32 @@ static const EbmlSemantic ContextList_KaxChapterProcessCommand[2] =
|
||||
EbmlSemantic(true, true, EBML_INFO(KaxChapterProcessData)),
|
||||
};
|
||||
|
||||
DEFINE_MKX_MASTER (KaxChapters, 0x1043A770, 4, KaxSegment, "Chapters");
|
||||
DEFINE_MKX_MASTER (KaxEditionEntry, 0x45B9, 2, KaxChapters, "EditionEntry");
|
||||
DEFINE_MKX_UINTEGER (KaxEditionUID, 0x45BC, 2, KaxEditionEntry, "EditionUID");
|
||||
DEFINE_MKX_UINTEGER (KaxEditionFlagHidden, 0x45BD, 2, KaxEditionEntry, "EditionFlagHidden");
|
||||
DEFINE_MKX_UINTEGER (KaxEditionFlagDefault, 0x45DB, 2, KaxEditionEntry, "EditionFlagDefault");
|
||||
DEFINE_MKX_UINTEGER (KaxEditionFlagOrdered, 0x45DD, 2, KaxEditionEntry, "EditionFlagOrdered");
|
||||
DEFINE_MKX_MASTER (KaxChapterAtom, 0xB6, 1, KaxEditionEntry, "ChapterAtom");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterUID, 0x73C4, 2, KaxChapterAtom, "ChapterUID");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTimeStart, 0x91, 1, KaxChapterAtom, "ChapterTimeStart");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTimeEnd, 0x92, 1, KaxChapterAtom, "ChapterTimeEnd");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterFlagHidden, 0x98, 1, KaxChapterAtom, "ChapterFlagHidden");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterFlagEnabled, 0x4598, 2, KaxChapterAtom, "ChapterFlagEnabled");
|
||||
DEFINE_MKX_BINARY (KaxChapterSegmentUID, 0x6E67, 2, KaxChapterAtom, "ChapterSegmentUID");
|
||||
DEFINE_MKX_BINARY (KaxChapterSegmentEditionUID, 0x6EBC, 2, KaxChapterAtom, "ChapterSegmentEditionUID");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterPhysicalEquiv, 0x63C3, 2, KaxChapterAtom, "ChapterPhysicalEquiv");
|
||||
DEFINE_MKX_MASTER (KaxChapterTrack, 0x8F, 1, KaxChapterAtom, "ChapterTrack");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTrackNumber, 0x89, 1, KaxChapterTrack, "ChapterTrackNumber");
|
||||
DEFINE_MKX_MASTER (KaxChapterDisplay, 0x80, 1, KaxChapterAtom, "ChapterDisplay");
|
||||
DEFINE_MKX_UNISTRING(KaxChapterString, 0x85, 1, KaxChapterDisplay, "ChapterString");
|
||||
DEFINE_MKX_STRING (KaxChapterLanguage, 0x437C, 2, KaxChapterLanguage, "ChapterLanguage"); // parent context ?
|
||||
DEFINE_MKX_STRING (KaxChapterCountry, 0x437E, 2, KaxChapterCountry, "ChapterCountry"); // parent context ?
|
||||
DEFINE_MKX_MASTER (KaxChapterProcess, 0x6944, 2, KaxChapterAtom, "ChapterProcess");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterProcessCodecID, 0x6955, 2, KaxChapterProcess, "ChapterProcessCodecID");
|
||||
DEFINE_MKX_BINARY (KaxChapterProcessPrivate, 0x450D, 2, KaxChapterProcess, "ChapterProcessPrivate");
|
||||
DEFINE_MKX_MASTER (KaxChapterProcessCommand, 0x6911, 2, KaxChapterProcess, "ChapterProcessCommand");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterProcessTime, 0x6922, 2, KaxChapterProcessCommand, "ChapterProcessTime");
|
||||
DEFINE_MKX_BINARY (KaxChapterProcessData, 0x6933, 2, KaxChapterProcessCommand, "ChapterProcessData");
|
||||
DEFINE_MKX_MASTER (KaxChapters, 0x1043A770, 4, KaxSegment, "Chapters");
|
||||
DEFINE_MKX_MASTER (KaxEditionEntry, 0x45B9, 2, KaxChapters, "EditionEntry");
|
||||
DEFINE_MKX_UINTEGER (KaxEditionUID, 0x45BC, 2, KaxEditionEntry, "EditionUID");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxEditionFlagHidden, 0x45BD, 2, KaxEditionEntry, "EditionFlagHidden", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxEditionFlagDefault, 0x45DB, 2, KaxEditionEntry, "EditionFlagDefault", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxEditionFlagOrdered, 0x45DD, 2, KaxEditionEntry, "EditionFlagOrdered", 0);
|
||||
DEFINE_MKX_MASTER (KaxChapterAtom, 0xB6, 1, KaxEditionEntry, "ChapterAtom");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterUID, 0x73C4, 2, KaxChapterAtom, "ChapterUID");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTimeStart, 0x91, 1, KaxChapterAtom, "ChapterTimeStart");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTimeEnd, 0x92, 1, KaxChapterAtom, "ChapterTimeEnd");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxChapterFlagHidden, 0x98, 1, KaxChapterAtom, "ChapterFlagHidden", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxChapterFlagEnabled, 0x4598, 2, KaxChapterAtom, "ChapterFlagEnabled", 1);
|
||||
DEFINE_MKX_BINARY (KaxChapterSegmentUID, 0x6E67, 2, KaxChapterAtom, "ChapterSegmentUID");
|
||||
DEFINE_MKX_BINARY (KaxChapterSegmentEditionUID, 0x6EBC, 2, KaxChapterAtom, "ChapterSegmentEditionUID");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterPhysicalEquiv, 0x63C3, 2, KaxChapterAtom, "ChapterPhysicalEquiv");
|
||||
DEFINE_MKX_MASTER (KaxChapterTrack, 0x8F, 1, KaxChapterAtom, "ChapterTrack");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTrackNumber, 0x89, 1, KaxChapterTrack, "ChapterTrackNumber");
|
||||
DEFINE_MKX_MASTER (KaxChapterDisplay, 0x80, 1, KaxChapterAtom, "ChapterDisplay");
|
||||
DEFINE_MKX_UNISTRING (KaxChapterString, 0x85, 1, KaxChapterDisplay, "ChapterString");
|
||||
DEFINE_MKX_STRING_DEF (KaxChapterLanguage, 0x437C, 2, KaxChapterLanguage, "ChapterLanguage", "eng"); // parent context ?
|
||||
DEFINE_MKX_STRING (KaxChapterCountry, 0x437E, 2, KaxChapterCountry, "ChapterCountry"); // parent context ?
|
||||
DEFINE_MKX_MASTER (KaxChapterProcess, 0x6944, 2, KaxChapterAtom, "ChapterProcess");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxChapterProcessCodecID, 0x6955, 2, KaxChapterProcess, "ChapterProcessCodecID", 0);
|
||||
DEFINE_MKX_BINARY (KaxChapterProcessPrivate, 0x450D, 2, KaxChapterProcess, "ChapterProcessPrivate");
|
||||
DEFINE_MKX_MASTER (KaxChapterProcessCommand, 0x6911, 2, KaxChapterProcess, "ChapterProcessCommand");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterProcessTime, 0x6922, 2, KaxChapterProcessCommand, "ChapterProcessTime");
|
||||
DEFINE_MKX_BINARY (KaxChapterProcessData, 0x6933, 2, KaxChapterProcessCommand, "ChapterProcessData");
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
@ -64,20 +64,20 @@ static const EbmlSemantic ContextList_KaxContentEncryption[6] = {
|
||||
EbmlSemantic(false, true, EBML_INFO(KaxContentSigHashAlgo)),
|
||||
};
|
||||
|
||||
DEFINE_MKX_MASTER (KaxContentEncodings, 0x6d80, 2, KaxTrackEntry, "ContentEncodings");
|
||||
DEFINE_MKX_MASTER (KaxContentEncoding, 0x6240, 2, KaxContentEncodings, "ContentEncoding");
|
||||
DEFINE_MKX_UINTEGER(KaxContentEncodingOrder, 0x5031, 2, KaxContentEncoding, "ContentEncodingOrder");
|
||||
DEFINE_MKX_UINTEGER(KaxContentEncodingScope, 0x5032, 2, KaxContentEncoding, "ContentEncodingScope");
|
||||
DEFINE_MKX_UINTEGER(KaxContentEncodingType, 0x5033, 2, KaxContentEncoding, "ContentEncodingType");
|
||||
DEFINE_MKX_MASTER (KaxContentCompression, 0x5034, 2, KaxContentEncoding, "ContentCompression");
|
||||
DEFINE_MKX_UINTEGER(KaxContentCompAlgo, 0x4254, 2, KaxContentCompression, "ContentCompAlgo");
|
||||
DEFINE_MKX_UINTEGER(KaxContentCompSettings, 0x4255, 2, KaxContentCompression, "ContentCompSettings");
|
||||
DEFINE_MKX_MASTER (KaxContentEncryption, 0x5035, 2, KaxContentEncoding, "ContentEncryption");
|
||||
DEFINE_MKX_UINTEGER(KaxContentEncAlgo, 0x47e1, 2, KaxContentEncryption, "ContentEncAlgo");
|
||||
DEFINE_MKX_BINARY (KaxContentEncKeyID, 0x47e2, 2, KaxContentEncryption, "ContentEncKeyID");
|
||||
DEFINE_MKX_BINARY (KaxContentSignature, 0x47e3, 2, KaxContentEncryption, "ContentSignature");
|
||||
DEFINE_MKX_BINARY (KaxContentSigKeyID, 0x47e4, 2, KaxContentEncryption, "ContentSigKeyID");
|
||||
DEFINE_MKX_UINTEGER(KaxContentSigAlgo, 0x47e5, 2, KaxContentEncryption, "ContentSigAlgo");
|
||||
DEFINE_MKX_UINTEGER(KaxContentSigHashAlgo, 0x47e6, 2, KaxContentEncryption, "ContentSigHashAlgo");
|
||||
DEFINE_MKX_MASTER (KaxContentEncodings, 0x6d80, 2, KaxTrackEntry, "ContentEncodings");
|
||||
DEFINE_MKX_MASTER (KaxContentEncoding, 0x6240, 2, KaxContentEncodings, "ContentEncoding");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxContentEncodingOrder, 0x5031, 2, KaxContentEncoding, "ContentEncodingOrder", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxContentEncodingScope, 0x5032, 2, KaxContentEncoding, "ContentEncodingScope", 1);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxContentEncodingType, 0x5033, 2, KaxContentEncoding, "ContentEncodingType", 0);
|
||||
DEFINE_MKX_MASTER (KaxContentCompression, 0x5034, 2, KaxContentEncoding, "ContentCompression");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxContentCompAlgo, 0x4254, 2, KaxContentCompression, "ContentCompAlgo", 0);
|
||||
DEFINE_MKX_UINTEGER (KaxContentCompSettings, 0x4255, 2, KaxContentCompression, "ContentCompSettings");
|
||||
DEFINE_MKX_MASTER (KaxContentEncryption, 0x5035, 2, KaxContentEncoding, "ContentEncryption");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxContentEncAlgo, 0x47e1, 2, KaxContentEncryption, "ContentEncAlgo", 0);
|
||||
DEFINE_MKX_BINARY (KaxContentEncKeyID, 0x47e2, 2, KaxContentEncryption, "ContentEncKeyID");
|
||||
DEFINE_MKX_BINARY (KaxContentSignature, 0x47e3, 2, KaxContentEncryption, "ContentSignature");
|
||||
DEFINE_MKX_BINARY (KaxContentSigKeyID, 0x47e4, 2, KaxContentEncryption, "ContentSigKeyID");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxContentSigAlgo, 0x47e5, 2, KaxContentEncryption, "ContentSigAlgo", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxContentSigHashAlgo, 0x47e6, 2, KaxContentEncryption, "ContentSigHashAlgo", 0);
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
@ -73,19 +73,19 @@ static const EbmlSemantic ContextList_KaxCueReference[4] =
|
||||
};
|
||||
#endif // MATROSKA_VERSION
|
||||
|
||||
DEFINE_MKX_MASTER (KaxCuePoint, 0xBB, 1, KaxCues, "CuePoint");
|
||||
DEFINE_MKX_UINTEGER(KaxCueTime, 0xB3, 1, KaxCuePoint, "CueTime");
|
||||
DEFINE_MKX_MASTER (KaxCueTrackPositions, 0xB7, 1, KaxCuePoint, "CueTrackPositions");
|
||||
DEFINE_MKX_UINTEGER(KaxCueTrack, 0xF7, 1, KaxCueTrackPositions, "CueTrack");
|
||||
DEFINE_MKX_UINTEGER(KaxCueClusterPosition, 0xF1, 1, KaxCueTrackPositions, "CueClusterPosition");
|
||||
DEFINE_MKX_UINTEGER(KaxCueBlockNumber, 0x5378, 2, KaxCueTrackPositions, "CueBlockNumber");
|
||||
DEFINE_MKX_MASTER (KaxCuePoint, 0xBB, 1, KaxCues, "CuePoint");
|
||||
DEFINE_MKX_UINTEGER (KaxCueTime, 0xB3, 1, KaxCuePoint, "CueTime");
|
||||
DEFINE_MKX_MASTER (KaxCueTrackPositions, 0xB7, 1, KaxCuePoint, "CueTrackPositions");
|
||||
DEFINE_MKX_UINTEGER (KaxCueTrack, 0xF7, 1, KaxCueTrackPositions, "CueTrack");
|
||||
DEFINE_MKX_UINTEGER (KaxCueClusterPosition, 0xF1, 1, KaxCueTrackPositions, "CueClusterPosition");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxCueBlockNumber, 0x5378, 2, KaxCueTrackPositions, "CueBlockNumber", 1);
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DEFINE_MKX_UINTEGER(KaxCueCodecState, 0xEA, 1, KaxCueTrackPositions, "CueCodecState");
|
||||
DEFINE_MKX_MASTER (KaxCueReference, 0xDB, 1, KaxCueTrackPositions, "CueReference");
|
||||
DEFINE_MKX_UINTEGER(KaxCueRefTime, 0x96, 1, KaxCueReference, "CueRefTime");
|
||||
DEFINE_MKX_UINTEGER(KaxCueRefCluster, 0x97, 1, KaxCueRefTime, "CueRefCluster");
|
||||
DEFINE_MKX_UINTEGER(KaxCueRefNumber, 0x535F, 2, KaxCueRefTime, "CueRefNumber");
|
||||
DEFINE_MKX_UINTEGER(KaxCueRefCodecState, 0xEB, 1, KaxCueRefTime, "CueRefCodecState");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxCueCodecState, 0xEA, 1, KaxCueTrackPositions, "CueCodecState", 0);
|
||||
DEFINE_MKX_MASTER (KaxCueReference, 0xDB, 1, KaxCueTrackPositions, "CueReference");
|
||||
DEFINE_MKX_UINTEGER (KaxCueRefTime, 0x96, 1, KaxCueReference, "CueRefTime");
|
||||
DEFINE_MKX_UINTEGER (KaxCueRefCluster, 0x97, 1, KaxCueRefTime, "CueRefCluster");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxCueRefNumber, 0x535F, 2, KaxCueRefTime, "CueRefNumber", 1);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxCueRefCodecState, 0xEB, 1, KaxCueRefTime, "CueRefCodecState", 0);
|
||||
#endif
|
||||
|
||||
/*!
|
||||
|
@ -46,20 +46,20 @@ static const EbmlSemantic ContextList_KaxChapterTranslate[3] =
|
||||
EbmlSemantic(true, true, EBML_INFO(KaxChapterTranslateID)),
|
||||
};
|
||||
|
||||
DEFINE_MKX_BINARY (KaxSegmentUID, 0x73A4, 2, KaxInfo, "ChapterTranslate");
|
||||
DEFINE_MKX_UNISTRING(KaxSegmentFilename, 0x7384, 2, KaxInfo, "SegmentFilename");
|
||||
DEFINE_MKX_BINARY (KaxPrevUID, 0x3CB923, 3, KaxInfo, "PrevUID");
|
||||
DEFINE_MKX_UNISTRING(KaxPrevFilename, 0x3C83AB, 3, KaxInfo, "PrevFilename");
|
||||
DEFINE_MKX_BINARY (KaxNextUID, 0x3EB923, 3, KaxInfo, "NextUID");
|
||||
DEFINE_MKX_UNISTRING(KaxNextFilename, 0x3E83BB, 3, KaxInfo, "NextFilename");
|
||||
DEFINE_MKX_BINARY (KaxSegmentFamily, 0x4444, 2, KaxInfo, "SegmentFamily");
|
||||
DEFINE_MKX_MASTER (KaxChapterTranslate, 0x6924, 2, KaxInfo, "ChapterTranslate");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTranslateEditionUID, 0x69FC, 2, KaxChapterTranslate, "ChapterTranslateEditionUID");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTranslateCodec, 0x69BF, 2, KaxChapterTranslate, "ChapterTranslateCodec");
|
||||
DEFINE_MKX_BINARY (KaxChapterTranslateID, 0x69A5, 2, KaxChapterTranslate, "ChapterTranslateID");
|
||||
DEFINE_MKX_UINTEGER (KaxTimecodeScale, 0x2AD7B1, 3, KaxInfo, "TimecodeScale");
|
||||
DEFINE_MKX_FLOAT (KaxDuration, 0x4489, 2, KaxInfo, "Duration");
|
||||
DEFINE_MKX_DATE (KaxDateUTC, 0x4461, 2, KaxInfo, "DateUTC");
|
||||
DEFINE_MKX_UNISTRING(KaxTitle, 0x7BA9, 2, KaxInfo, "Title");
|
||||
DEFINE_MKX_BINARY (KaxSegmentUID, 0x73A4, 2, KaxInfo, "ChapterTranslate");
|
||||
DEFINE_MKX_UNISTRING (KaxSegmentFilename, 0x7384, 2, KaxInfo, "SegmentFilename");
|
||||
DEFINE_MKX_BINARY (KaxPrevUID, 0x3CB923, 3, KaxInfo, "PrevUID");
|
||||
DEFINE_MKX_UNISTRING (KaxPrevFilename, 0x3C83AB, 3, KaxInfo, "PrevFilename");
|
||||
DEFINE_MKX_BINARY (KaxNextUID, 0x3EB923, 3, KaxInfo, "NextUID");
|
||||
DEFINE_MKX_UNISTRING (KaxNextFilename, 0x3E83BB, 3, KaxInfo, "NextFilename");
|
||||
DEFINE_MKX_BINARY (KaxSegmentFamily, 0x4444, 2, KaxInfo, "SegmentFamily");
|
||||
DEFINE_MKX_MASTER (KaxChapterTranslate, 0x6924, 2, KaxInfo, "ChapterTranslate");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTranslateEditionUID, 0x69FC, 2, KaxChapterTranslate, "ChapterTranslateEditionUID");
|
||||
DEFINE_MKX_UINTEGER (KaxChapterTranslateCodec, 0x69BF, 2, KaxChapterTranslate, "ChapterTranslateCodec");
|
||||
DEFINE_MKX_BINARY (KaxChapterTranslateID, 0x69A5, 2, KaxChapterTranslate, "ChapterTranslateID");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTimecodeScale, 0x2AD7B1, 3, KaxInfo, "TimecodeScale", 1000000);
|
||||
DEFINE_MKX_FLOAT (KaxDuration, 0x4489, 2, KaxInfo, "Duration");
|
||||
DEFINE_MKX_DATE (KaxDateUTC, 0x4461, 2, KaxInfo, "DateUTC");
|
||||
DEFINE_MKX_UNISTRING (KaxTitle, 0x7BA9, 2, KaxInfo, "Title");
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
116
src/KaxTag.cpp
116
src/KaxTag.cpp
@ -137,64 +137,64 @@ static const EbmlSemantic ContextList_KaxTagSimple[6] =
|
||||
EbmlSemantic(false, false, EBML_INFO(KaxTagSimple)),
|
||||
};
|
||||
|
||||
DEFINE_MKX_MASTER (KaxTag, 0x7373, 2, KaxTags, "Tag");
|
||||
DEFINE_MKX_MASTER (KaxTagTargets, 0x63C0, 2, KaxTag, "TagTargets");
|
||||
DEFINE_MKX_MASTER (KaxTagGeneral, 0x67C9, 2, KaxTag, "TagGeneral");
|
||||
DEFINE_MKX_MASTER (KaxTagGenres, 0x6583, 2, KaxTag, "TagGenres");
|
||||
DEFINE_MKX_MASTER (KaxTagAudioSpecific, 0x41C5, 2, KaxTag, "TagAudioSpecific");
|
||||
DEFINE_MKX_MASTER (KaxTagImageSpecific, 0x4990, 2, KaxTag, "TagImageSpecific");
|
||||
DEFINE_MKX_UNISTRING(KaxTagBibliography, 0x4488, 2, KaxTag, "Bibliography");
|
||||
DEFINE_MKX_UNISTRING(KaxTagEncoder, 0x4431, 2, KaxTag, "Encoder");
|
||||
DEFINE_MKX_UNISTRING(KaxTagEncodeSettings, 0x6526, 2, KaxTag, "EncodeSettings");
|
||||
DEFINE_MKX_STRING (KaxTagLanguage, 0x22B59F, 3, KaxTag, "Language");
|
||||
DEFINE_MKX_UINTEGER (KaxTagLength, 0x5243, 2, KaxTag, "Length");
|
||||
DEFINE_MKX_UINTEGER (KaxTagPlaylistDelay, 0x72CC, 2, KaxTag, "PlaylistDelay");
|
||||
DEFINE_MKX_BINARY (KaxTagRating, 0x52BC, 2, KaxTag, "Rating");
|
||||
DEFINE_MKX_UNISTRING(KaxTagSubject, 0x49C1, 2, KaxTag, "Subject");
|
||||
DEFINE_MKX_UNISTRING(KaxTagUnsynchronisedText, 0x874B, 2, KaxTag, "UnsynchronisedText");
|
||||
DEFINE_MKX_STRING (KaxTagUserDefinedURL, 0x434A, 2, KaxTag, "UserDefinedURL");
|
||||
DEFINE_MKX_UINTEGER (KaxTagTargetTypeValue, 0x68CA, 2, KaxTagTargets, "TagTargetTypeValue");
|
||||
DEFINE_MKX_STRING (KaxTagTargetType, 0x63CA, 2, KaxTagTargets, "TagTargetType");
|
||||
DEFINE_MKX_UINTEGER (KaxTagTrackUID, 0x63C5, 2, KaxTagTargets, "TagTrackUID");
|
||||
DEFINE_MKX_UINTEGER (KaxTagEditionUID, 0x63C9, 2, KaxTagTargets, "TagEditionUID");
|
||||
DEFINE_MKX_UINTEGER (KaxTagChapterUID, 0x63C4, 2, KaxTagTargets, "TagChapterUID");
|
||||
DEFINE_MKX_UINTEGER (KaxTagAttachmentUID, 0x63C6, 2, KaxTagTargets, "TagAttachmentUID");
|
||||
DEFINE_MKX_UNISTRING(KaxTagArchivalLocation, 0x45A4, 2, KaxTagGeneral, "ArchivalLocation");
|
||||
DEFINE_MKX_UNISTRING(KaxTagFile, 0x454E, 2, KaxTagGeneral, "File");
|
||||
DEFINE_MKX_UNISTRING(KaxTagKeywords, 0x458C, 2, KaxTagGeneral, "Keywords");
|
||||
DEFINE_MKX_UNISTRING(KaxTagMood, 0x45AE, 2, KaxTagGeneral, "Mood");
|
||||
DEFINE_MKX_STRING (KaxTagRecordLocation, 0x457E, 2, KaxTagGeneral, "RecordLocation");
|
||||
DEFINE_MKX_UNISTRING(KaxTagSource, 0x458A, 2, KaxTagGeneral, "Source");
|
||||
DEFINE_MKX_UNISTRING(KaxTagSourceForm, 0x45B5, 2, KaxTagGeneral, "SourceForm");
|
||||
DEFINE_MKX_UNISTRING(KaxTagProduct, 0x45E3, 2, KaxTagGeneral, "Product");
|
||||
DEFINE_MKX_UNISTRING(KaxTagOriginalMediaType, 0x45A7, 2, KaxTagGeneral, "OriginalMediaType");
|
||||
DEFINE_MKX_UINTEGER (KaxTagPlayCounter, 0x4566, 2, KaxTagTargets, "PlayCounter");
|
||||
DEFINE_MKX_SINTEGER (KaxTagPopularimeter, 0x4532, 2, KaxTagTargets, "Popularimeter");
|
||||
DEFINE_MKX_STRING (KaxTagAudioGenre, 0x65C2, 2, KaxTagGenres, "AudioGenre");
|
||||
DEFINE_MKX_BINARY (KaxTagVideoGenre, 0x65A1, 2, KaxTagGenres, "VideoGenre");
|
||||
DEFINE_MKX_STRING (KaxTagSubGenre, 0x65AC, 2, KaxTagGenres, "SubGenre");
|
||||
DEFINE_MKX_BINARY (KaxTagAudioEncryption, 0x41B4, 2, KaxTagAudioSpecific, "AudioEncryption");
|
||||
DEFINE_MKX_FLOAT (KaxTagAudioGain, 0x4199, 2, KaxTagAudioSpecific, "AudioGain");
|
||||
DEFINE_MKX_FLOAT (KaxTagAudioPeak, 0x4189, 2, KaxTagAudioSpecific, "AudioPeak");
|
||||
DEFINE_MKX_FLOAT (KaxTagBPM, 0x41A1, 2, KaxTagAudioSpecific, "BPM");
|
||||
DEFINE_MKX_UINTEGER (KaxTagDiscTrack, 0x41B6, 2, KaxTagAudioSpecific, "DiscTrack");
|
||||
DEFINE_MKX_UINTEGER (KaxTagSetPart, 0x416E, 2, KaxTagAudioSpecific, "SetPart");
|
||||
DEFINE_MKX_BINARY (KaxTagEqualisation, 0x41B1, 2, KaxTagAudioSpecific, "Equalisation");
|
||||
DEFINE_MKX_STRING (KaxTagInitialKey, 0x413A, 2, KaxTagAudioSpecific, "InitialKey");
|
||||
DEFINE_MKX_STRING (KaxTagOfficialAudioFileURL, 0x4133, 2, KaxTagAudioSpecific, "OfficialAudioFileURL");
|
||||
DEFINE_MKX_STRING (KaxTagOfficialAudioSourceURL, 0x413E, 2, KaxTagAudioSpecific, "AudioSourceURL");
|
||||
DEFINE_MKX_UINTEGER (KaxTagCaptureDPI, 0x49C7, 2, KaxTagImageSpecific, "CaptureDPI");
|
||||
DEFINE_MKX_BINARY (KaxTagCaptureLightness, 0x49E1, 2, KaxTagImageSpecific, "CaptureLightness");
|
||||
DEFINE_MKX_UINTEGER (KaxTagCapturePaletteSetting, 0x4934, 2, KaxTagImageSpecific, "CapturePaletteSetting");
|
||||
DEFINE_MKX_BINARY (KaxTagCaptureSharpness, 0x4922, 2, KaxTagImageSpecific, "CaptureSharpness");
|
||||
DEFINE_MKX_UNISTRING(KaxTagCropped, 0x4987, 2, KaxTagImageSpecific, "Cropped");
|
||||
DEFINE_MKX_STRING (KaxTagOriginalDimensions, 0x4933, 2, KaxTagImageSpecific, "OriginalDimensions");
|
||||
DEFINE_MKX_MASTER (KaxTag, 0x7373, 2, KaxTags, "Tag");
|
||||
DEFINE_MKX_MASTER (KaxTagTargets, 0x63C0, 2, KaxTag, "TagTargets");
|
||||
DEFINE_MKX_MASTER (KaxTagGeneral, 0x67C9, 2, KaxTag, "TagGeneral");
|
||||
DEFINE_MKX_MASTER (KaxTagGenres, 0x6583, 2, KaxTag, "TagGenres");
|
||||
DEFINE_MKX_MASTER (KaxTagAudioSpecific, 0x41C5, 2, KaxTag, "TagAudioSpecific");
|
||||
DEFINE_MKX_MASTER (KaxTagImageSpecific, 0x4990, 2, KaxTag, "TagImageSpecific");
|
||||
DEFINE_MKX_UNISTRING (KaxTagBibliography, 0x4488, 2, KaxTag, "Bibliography");
|
||||
DEFINE_MKX_UNISTRING (KaxTagEncoder, 0x4431, 2, KaxTag, "Encoder");
|
||||
DEFINE_MKX_UNISTRING (KaxTagEncodeSettings, 0x6526, 2, KaxTag, "EncodeSettings");
|
||||
DEFINE_MKX_STRING (KaxTagLanguage, 0x22B59F, 3, KaxTag, "Language");
|
||||
DEFINE_MKX_UINTEGER (KaxTagLength, 0x5243, 2, KaxTag, "Length");
|
||||
DEFINE_MKX_UINTEGER (KaxTagPlaylistDelay, 0x72CC, 2, KaxTag, "PlaylistDelay");
|
||||
DEFINE_MKX_BINARY (KaxTagRating, 0x52BC, 2, KaxTag, "Rating");
|
||||
DEFINE_MKX_UNISTRING (KaxTagSubject, 0x49C1, 2, KaxTag, "Subject");
|
||||
DEFINE_MKX_UNISTRING (KaxTagUnsynchronisedText, 0x874B, 2, KaxTag, "UnsynchronisedText");
|
||||
DEFINE_MKX_STRING (KaxTagUserDefinedURL, 0x434A, 2, KaxTag, "UserDefinedURL");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTagTargetTypeValue, 0x68CA, 2, KaxTagTargets, "TagTargetTypeValue", 50);
|
||||
DEFINE_MKX_STRING (KaxTagTargetType, 0x63CA, 2, KaxTagTargets, "TagTargetType");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTagTrackUID, 0x63C5, 2, KaxTagTargets, "TagTrackUID", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTagEditionUID, 0x63C9, 2, KaxTagTargets, "TagEditionUID", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTagChapterUID, 0x63C4, 2, KaxTagTargets, "TagChapterUID", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTagAttachmentUID, 0x63C6, 2, KaxTagTargets, "TagAttachmentUID", 0);
|
||||
DEFINE_MKX_UNISTRING (KaxTagArchivalLocation, 0x45A4, 2, KaxTagGeneral, "ArchivalLocation");
|
||||
DEFINE_MKX_UNISTRING (KaxTagFile, 0x454E, 2, KaxTagGeneral, "File");
|
||||
DEFINE_MKX_UNISTRING (KaxTagKeywords, 0x458C, 2, KaxTagGeneral, "Keywords");
|
||||
DEFINE_MKX_UNISTRING (KaxTagMood, 0x45AE, 2, KaxTagGeneral, "Mood");
|
||||
DEFINE_MKX_STRING (KaxTagRecordLocation, 0x457E, 2, KaxTagGeneral, "RecordLocation");
|
||||
DEFINE_MKX_UNISTRING (KaxTagSource, 0x458A, 2, KaxTagGeneral, "Source");
|
||||
DEFINE_MKX_UNISTRING (KaxTagSourceForm, 0x45B5, 2, KaxTagGeneral, "SourceForm");
|
||||
DEFINE_MKX_UNISTRING (KaxTagProduct, 0x45E3, 2, KaxTagGeneral, "Product");
|
||||
DEFINE_MKX_UNISTRING (KaxTagOriginalMediaType, 0x45A7, 2, KaxTagGeneral, "OriginalMediaType");
|
||||
DEFINE_MKX_UINTEGER (KaxTagPlayCounter, 0x4566, 2, KaxTagTargets, "PlayCounter");
|
||||
DEFINE_MKX_SINTEGER (KaxTagPopularimeter, 0x4532, 2, KaxTagTargets, "Popularimeter");
|
||||
DEFINE_MKX_STRING (KaxTagAudioGenre, 0x65C2, 2, KaxTagGenres, "AudioGenre");
|
||||
DEFINE_MKX_BINARY (KaxTagVideoGenre, 0x65A1, 2, KaxTagGenres, "VideoGenre");
|
||||
DEFINE_MKX_STRING (KaxTagSubGenre, 0x65AC, 2, KaxTagGenres, "SubGenre");
|
||||
DEFINE_MKX_BINARY (KaxTagAudioEncryption, 0x41B4, 2, KaxTagAudioSpecific, "AudioEncryption");
|
||||
DEFINE_MKX_FLOAT (KaxTagAudioGain, 0x4199, 2, KaxTagAudioSpecific, "AudioGain");
|
||||
DEFINE_MKX_FLOAT (KaxTagAudioPeak, 0x4189, 2, KaxTagAudioSpecific, "AudioPeak");
|
||||
DEFINE_MKX_FLOAT (KaxTagBPM, 0x41A1, 2, KaxTagAudioSpecific, "BPM");
|
||||
DEFINE_MKX_UINTEGER (KaxTagDiscTrack, 0x41B6, 2, KaxTagAudioSpecific, "DiscTrack");
|
||||
DEFINE_MKX_UINTEGER (KaxTagSetPart, 0x416E, 2, KaxTagAudioSpecific, "SetPart");
|
||||
DEFINE_MKX_BINARY (KaxTagEqualisation, 0x41B1, 2, KaxTagAudioSpecific, "Equalisation");
|
||||
DEFINE_MKX_STRING (KaxTagInitialKey, 0x413A, 2, KaxTagAudioSpecific, "InitialKey");
|
||||
DEFINE_MKX_STRING (KaxTagOfficialAudioFileURL, 0x4133, 2, KaxTagAudioSpecific, "OfficialAudioFileURL");
|
||||
DEFINE_MKX_STRING (KaxTagOfficialAudioSourceURL, 0x413E, 2, KaxTagAudioSpecific, "AudioSourceURL");
|
||||
DEFINE_MKX_UINTEGER (KaxTagCaptureDPI, 0x49C7, 2, KaxTagImageSpecific, "CaptureDPI");
|
||||
DEFINE_MKX_BINARY (KaxTagCaptureLightness, 0x49E1, 2, KaxTagImageSpecific, "CaptureLightness");
|
||||
DEFINE_MKX_UINTEGER (KaxTagCapturePaletteSetting, 0x4934, 2, KaxTagImageSpecific, "CapturePaletteSetting");
|
||||
DEFINE_MKX_BINARY (KaxTagCaptureSharpness, 0x4922, 2, KaxTagImageSpecific, "CaptureSharpness");
|
||||
DEFINE_MKX_UNISTRING (KaxTagCropped, 0x4987, 2, KaxTagImageSpecific, "Cropped");
|
||||
DEFINE_MKX_STRING (KaxTagOriginalDimensions, 0x4933, 2, KaxTagImageSpecific, "OriginalDimensions");
|
||||
|
||||
DEFINE_MKX_MASTER (KaxTagSimple, 0x67C8, 2, KaxTag, "TagSimple");
|
||||
DEFINE_MKX_UNISTRING(KaxTagName, 0x45A3, 2, KaxTagSimple, "TagName");
|
||||
DEFINE_MKX_STRING (KaxTagLangue, 0x447A, 2, KaxTagSimple, "TagLanguage");
|
||||
DEFINE_MKX_UINTEGER (KaxTagDefault, 0x4484, 2, KaxTagSimple, "TagDefault");
|
||||
DEFINE_MKX_UNISTRING(KaxTagString, 0x4487, 2, KaxTagSimple, "TagString");
|
||||
DEFINE_MKX_BINARY (KaxTagBinary, 0x4485, 2, KaxTagSimple, "TagBinary");
|
||||
DEFINE_MKX_MASTER (KaxTagSimple, 0x67C8, 2, KaxTag, "TagSimple");
|
||||
DEFINE_MKX_UNISTRING (KaxTagName, 0x45A3, 2, KaxTagSimple, "TagName");
|
||||
DEFINE_MKX_STRING_DEF (KaxTagLangue, 0x447A, 2, KaxTagSimple, "TagLanguage", "und");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTagDefault, 0x4484, 2, KaxTagSimple, "TagDefault", 1);
|
||||
DEFINE_MKX_UNISTRING (KaxTagString, 0x4487, 2, KaxTagSimple, "TagString");
|
||||
DEFINE_MKX_BINARY (KaxTagBinary, 0x4485, 2, KaxTagSimple, "TagBinary");
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
@ -55,13 +55,13 @@ static const EbmlSemantic ContextList_KaxTrackAudio[5] =
|
||||
#endif // MATROSKA_VERSION
|
||||
};
|
||||
|
||||
DEFINE_MKX_MASTER (KaxTrackAudio, 0xE1, 1, KaxTrackEntry, "TrackAudio");
|
||||
DEFINE_MKX_FLOAT (KaxAudioSamplingFreq, 0xB5, 1, KaxTrackAudio, "AudioSamplingFreq");
|
||||
DEFINE_MKX_FLOAT (KaxAudioOutputSamplingFreq, 0x78B5, 2, KaxTrackAudio, "AudioOutputSamplingFreq");
|
||||
DEFINE_MKX_UINTEGER(KaxAudioChannels, 0x9F, 1, KaxTrackAudio, "AudioChannels");
|
||||
DEFINE_MKX_UINTEGER(KaxAudioBitDepth, 0x6264, 2, KaxTrackAudio, "AudioBitDepth");
|
||||
DEFINE_MKX_MASTER (KaxTrackAudio, 0xE1, 1, KaxTrackEntry, "TrackAudio");
|
||||
DEFINE_MKX_FLOAT_DEF (KaxAudioSamplingFreq, 0xB5, 1, KaxTrackAudio, "AudioSamplingFreq", 8000.0);
|
||||
DEFINE_MKX_FLOAT (KaxAudioOutputSamplingFreq, 0x78B5, 2, KaxTrackAudio, "AudioOutputSamplingFreq");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxAudioChannels, 0x9F, 1, KaxTrackAudio, "AudioChannels", 1);
|
||||
DEFINE_MKX_UINTEGER (KaxAudioBitDepth, 0x6264, 2, KaxTrackAudio, "AudioBitDepth");
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DEFINE_MKX_BINARY (KaxAudioPosition, 0x7D7B, 2, KaxTrackAudio, "AudioPosition");
|
||||
DEFINE_MKX_BINARY (KaxAudioPosition, 0x7D7B, 2, KaxTrackAudio, "AudioPosition");
|
||||
#endif
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
@ -46,34 +46,35 @@ static const EbmlSemantic ContextList_KaxTrackTranslate[3] =
|
||||
EbmlSemantic(true , true, EBML_INFO(KaxTrackTranslateTrackID)),
|
||||
};
|
||||
|
||||
DEFINE_MKX_UINTEGER (KaxTrackNumber, 0xD7, 1, KaxTracks, "TrackNumber");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackUID, 0x73C5, 2, KaxTracks, "TrackUID");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackType, 0x83, 1, KaxTracks, "TrackType");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackFlagDefault, 0x88, 1, KaxTracks, "TrackFlagEnabled");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackFlagForced, 0x55AA, 2, KaxTracks, "TrackFlagForced");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackFlagLacing, 0x9C, 1, KaxTracks, "TrackFlagLacing");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackMinCache, 0x6DE7, 2, KaxTracks, "TrackMinCache");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackMaxCache, 0x6DF8, 2, KaxTracks, "TrackMaxCache\0rotomodobopo");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackDefaultDuration, 0x23E383, 3, KaxTracks, "TrackDefaultDuration");
|
||||
DEFINE_MKX_FLOAT (KaxTrackTimecodeScale, 0x23314F, 3, KaxTracks, "TrackTimecodeScale");
|
||||
DEFINE_MKX_UINTEGER (KaxMaxBlockAdditionID, 0x55EE, 2, KaxTracks, "MaxBlockAdditionID");
|
||||
DEFINE_MKX_UNISTRING(KaxTrackName, 0x536E, 2, KaxTracks, "TrackName");
|
||||
DEFINE_MKX_STRING (KaxTrackLanguage, 0x22B59C, 3, KaxTracks, "TrackLanguage");
|
||||
DEFINE_MKX_STRING (KaxCodecID, 0x86, 1, KaxTracks, "CodecID");
|
||||
DEFINE_MKX_BINARY (KaxCodecPrivate, 0x63A2, 2, KaxTracks, "CodecPrivate");
|
||||
DEFINE_MKX_UNISTRING(KaxCodecName, 0x258688, 3, KaxTracks, "CodecName");
|
||||
DEFINE_MKX_BINARY (KaxTrackAttachmentLink, 0x7446, 2, KaxTracks, "TrackAttachmentLink");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackOverlay, 0x6FAB, 2, KaxTracks, "TrackOverlay");
|
||||
DEFINE_MKX_MASTER (KaxTrackTranslate, 0x6624, 2, KaxTracks, "TrackTranslate");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackTranslateEditionUID, 0x66FC, 2, KaxTrackTranslate, "TrackTranslateEditionUID");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackTranslateCodec, 0x66BF, 2, KaxTrackTranslate, "TrackTranslateCodec");
|
||||
DEFINE_MKX_BINARY (KaxTrackTranslateTrackID, 0x66A5, 2, KaxTrackTranslate, "TrackTranslateTrackID");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackNumber, 0xD7, 1, KaxTracks, "TrackNumber");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackUID, 0x73C5, 2, KaxTracks, "TrackUID");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackType, 0x83, 1, KaxTracks, "TrackType");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagDefault, 0x88, 1, KaxTracks, "TrackFlagEnabled", 1);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagForced, 0x55AA, 2, KaxTracks, "TrackFlagForced", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagLacing, 0x9C, 1, KaxTracks, "TrackFlagLacing", 1);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTrackMinCache, 0x6DE7, 2, KaxTracks, "TrackMinCache", 0);
|
||||
DEFINE_MKX_UINTEGER (KaxTrackMaxCache, 0x6DF8, 2, KaxTracks, "TrackMaxCache\0rotomodobopo");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackDefaultDuration, 0x23E383, 3, KaxTracks, "TrackDefaultDuration");
|
||||
DEFINE_MKX_FLOAT_DEF (KaxTrackTimecodeScale, 0x23314F, 3, KaxTracks, "TrackTimecodeScale", 1.0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxMaxBlockAdditionID, 0x55EE, 2, KaxTracks, "MaxBlockAdditionID", 0);
|
||||
//DEFINE_MKX_SINTEGER_DEF(KaxTrackOffset, 0x537F, 2, KaxTracks, "TrackOffset", 0);
|
||||
DEFINE_MKX_UNISTRING (KaxTrackName, 0x536E, 2, KaxTracks, "TrackName");
|
||||
DEFINE_MKX_STRING_DEF (KaxTrackLanguage, 0x22B59C, 3, KaxTracks, "TrackLanguage", "eng");
|
||||
DEFINE_MKX_STRING (KaxCodecID, 0x86, 1, KaxTracks, "CodecID");
|
||||
DEFINE_MKX_BINARY (KaxCodecPrivate, 0x63A2, 2, KaxTracks, "CodecPrivate");
|
||||
DEFINE_MKX_UNISTRING (KaxCodecName, 0x258688, 3, KaxTracks, "CodecName");
|
||||
DEFINE_MKX_BINARY (KaxTrackAttachmentLink, 0x7446, 2, KaxTracks, "TrackAttachmentLink");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackOverlay, 0x6FAB, 2, KaxTracks, "TrackOverlay");
|
||||
DEFINE_MKX_MASTER (KaxTrackTranslate, 0x6624, 2, KaxTracks, "TrackTranslate");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackTranslateEditionUID, 0x66FC, 2, KaxTrackTranslate, "TrackTranslateEditionUID");
|
||||
DEFINE_MKX_UINTEGER (KaxTrackTranslateCodec, 0x66BF, 2, KaxTrackTranslate, "TrackTranslateCodec");
|
||||
DEFINE_MKX_BINARY (KaxTrackTranslateTrackID, 0x66A5, 2, KaxTrackTranslate, "TrackTranslateTrackID");
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DEFINE_MKX_UINTEGER (KaxTrackFlagEnabled, 0xB9, 1, KaxTracks, "TrackFlagDefault");
|
||||
DEFINE_MKX_UNISTRING(KaxCodecSettings, 0x3A9697, 3, KaxTracks, "CodecSettings");
|
||||
DEFINE_MKX_STRING (KaxCodecInfoURL, 0x3B4040, 3, KaxTracks, "CodecInfoURL");
|
||||
DEFINE_MKX_STRING (KaxCodecDownloadURL, 0x26B240, 3, KaxTracks, "CodecDownloadURL");
|
||||
DEFINE_MKX_UINTEGER (KaxCodecDecodeAll, 0xAA, 1, KaxTracks, "CodecDecodeAll");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagEnabled, 0xB9, 1, KaxTracks, "TrackFlagDefault", 1);
|
||||
DEFINE_MKX_UNISTRING (KaxCodecSettings, 0x3A9697, 3, KaxTracks, "CodecSettings");
|
||||
DEFINE_MKX_STRING (KaxCodecInfoURL, 0x3B4040, 3, KaxTracks, "CodecInfoURL");
|
||||
DEFINE_MKX_STRING (KaxCodecDownloadURL, 0x26B240, 3, KaxTracks, "CodecDownloadURL");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxCodecDecodeAll, 0xAA, 1, KaxTracks, "CodecDecodeAll", 1);
|
||||
#endif
|
||||
|
||||
END_LIBMATROSKA_NAMESPACE
|
||||
|
@ -65,23 +65,23 @@ static const EbmlSemantic ContextList_KaxTrackVideo[15] =
|
||||
#endif // MATROSKA_VERSION
|
||||
};
|
||||
|
||||
DEFINE_MKX_MASTER (KaxTrackVideo, 0xE0, 1, KaxTrackEntry, "TrackVideo");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoPixelWidth, 0xB0, 1, KaxTrackVideo, "VideoPixelWidth");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoPixelHeight, 0xBA, 1, KaxTrackVideo, "VideoPixelHeight");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoPixelCropBottom, 0x54AA, 2, KaxTrackVideo, "VideoPixelCropBottom");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoPixelCropTop, 0x54BB, 2, KaxTrackVideo, "VideoPixelCropTop");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoPixelCropLeft, 0x54CC, 2, KaxTrackVideo, "VideoPixelCropLeft");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoPixelCropRight, 0x54DD, 2, KaxTrackVideo, "VideoPixelCropRight");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoDisplayWidth, 0x54B0, 2, KaxTrackVideo, "VideoDisplayWidth");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoDisplayHeight, 0x54BA, 2, KaxTrackVideo, "VideoDisplayHeight");
|
||||
DEFINE_MKX_BINARY (KaxVideoColourSpace, 0x2EB524, 3, KaxTrackVideo, "VideoColourSpace");
|
||||
DEFINE_MKX_FLOAT (KaxVideoFrameRate, 0x2383E3, 3, KaxTrackVideo, "VideoFrameRate");
|
||||
DEFINE_MKX_MASTER (KaxTrackVideo, 0xE0, 1, KaxTrackEntry, "TrackVideo");
|
||||
DEFINE_MKX_UINTEGER (KaxVideoPixelWidth, 0xB0, 1, KaxTrackVideo, "VideoPixelWidth");
|
||||
DEFINE_MKX_UINTEGER (KaxVideoPixelHeight, 0xBA, 1, KaxTrackVideo, "VideoPixelHeight");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxVideoPixelCropBottom, 0x54AA, 2, KaxTrackVideo, "VideoPixelCropBottom", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxVideoPixelCropTop, 0x54BB, 2, KaxTrackVideo, "VideoPixelCropTop", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxVideoPixelCropLeft, 0x54CC, 2, KaxTrackVideo, "VideoPixelCropLeft", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxVideoPixelCropRight, 0x54DD, 2, KaxTrackVideo, "VideoPixelCropRight", 0);
|
||||
DEFINE_MKX_UINTEGER (KaxVideoDisplayWidth, 0x54B0, 2, KaxTrackVideo, "VideoDisplayWidth");
|
||||
DEFINE_MKX_UINTEGER (KaxVideoDisplayHeight, 0x54BA, 2, KaxTrackVideo, "VideoDisplayHeight");
|
||||
DEFINE_MKX_BINARY (KaxVideoColourSpace, 0x2EB524, 3, KaxTrackVideo, "VideoColourSpace");
|
||||
DEFINE_MKX_FLOAT (KaxVideoFrameRate, 0x2383E3, 3, KaxTrackVideo, "VideoFrameRate");
|
||||
#if MATROSKA_VERSION >= 2
|
||||
DEFINE_MKX_UINTEGER(KaxVideoFlagInterlaced, 0x9A, 1, KaxTrackVideo, "VideoFlagInterlaced");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoStereoMode, 0x53B9, 2, KaxTrackVideo, "VideoStereoMode");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoDisplayUnit, 0x54B2, 2, KaxTrackVideo, "VideoDisplayUnit");
|
||||
DEFINE_MKX_UINTEGER(KaxVideoAspectRatio, 0x54B3, 2, KaxTrackVideo, "VideoAspectRatio");
|
||||
DEFINE_MKX_FLOAT (KaxVideoGamma, 0x2FB523, 3, KaxTrackVideo, "VideoGamma");
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxVideoFlagInterlaced, 0x9A, 1, KaxTrackVideo, "VideoFlagInterlaced", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxVideoStereoMode, 0x53B9, 2, KaxTrackVideo, "VideoStereoMode", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxVideoDisplayUnit, 0x54B2, 2, KaxTrackVideo, "VideoDisplayUnit", 0);
|
||||
DEFINE_MKX_UINTEGER_DEF(KaxVideoAspectRatio, 0x54B3, 2, KaxTrackVideo, "VideoAspectRatio", 0);
|
||||
DEFINE_MKX_FLOAT (KaxVideoGamma, 0x2FB523, 3, KaxTrackVideo, "VideoGamma");
|
||||
#endif
|
||||
|
||||
filepos_t KaxVideoFrameRate::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault)
|
||||
|
Loading…
Reference in New Issue
Block a user