-/****************************************************************************\r
-** libmatroska : parse Matroska files, see http://www.matroska.org/\r
-**\r
-** <file/class description>\r
-**\r
-** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.\r
-**\r
-** This file is part of libmatroska.\r
-**\r
-** This library is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU Lesser General Public\r
-** License as published by the Free Software Foundation; either\r
-** version 2.1 of the License, or (at your option) any later version.\r
-** \r
-** This library is distributed in the hope that it will be useful,\r
-** but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
-** Lesser General Public License for more details.\r
-** \r
-** You should have received a copy of the GNU Lesser General Public\r
-** License along with this library; if not, write to the Free Software\r
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
-**\r
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**\r
-** Contact license@matroska.org if any conditions of this licensing are\r
-** not clear to you.\r
-**\r
-**********************************************************************/\r
-\r
-/*!\r
- \file\r
- \version \$Id: KaxChapters.h,v 1.9 2004/04/14 23:26:17 robux4 Exp $\r
- \author Steve Lhomme <robux4 @ users.sf.net>\r
-*/\r
-#ifndef LIBMATROSKA_CHAPTERS_H\r
-#define LIBMATROSKA_CHAPTERS_H\r
-\r
-#include "matroska/KaxTypes.h"\r
-#include "ebml/EbmlMaster.h"\r
-#include "ebml/EbmlUInteger.h"\r
-#include "ebml/EbmlUnicodeString.h"\r
-#include "ebml/EbmlString.h"\r
-#include "ebml/EbmlBinary.h"\r
-#include "matroska/KaxDefines.h"\r
-\r
-using namespace LIBEBML_NAMESPACE;\r
-\r
-START_LIBMATROSKA_NAMESPACE\r
-\r
-DECLARE_MKX_MASTER(KaxChapters)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxEditionEntry)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxEditionUID)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxEditionFlagHidden)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxEditionFlagDefault)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxEditionFlagOrdered)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxChapterAtom)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterUID)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterTimeStart)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterTimeEnd)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterFlagHidden)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterFlagEnabled)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxChapterSegmentUID)\r
- public:\r
- virtual bool ValidateSize() const { return (GetSize() == 16);}\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxChapterSegmentEditionUID)\r
- public:\r
- virtual bool ValidateSize() const { return (GetSize() == 16);}\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterPhysicalEquiv)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxChapterTrack)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterTrackNumber)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxChapterDisplay)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxChapterString)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxChapterLanguage)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxChapterCountry)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxChapterProcess)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterProcessCodecID)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxChapterProcessPrivate)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxChapterProcessCommand)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterProcessTime)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxChapterProcessData)\r
-};\r
-\r
-END_LIBMATROSKA_NAMESPACE\r
-\r
-#endif // LIBMATROSKA_CHAPTERS_H\r
+/****************************************************************************
+** libmatroska : parse Matroska files, see http://www.matroska.org/
+**
+** <file/class description>
+**
+** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.
+**
+** This file is part of libmatroska.
+**
+** 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$
+ \author Steve Lhomme <robux4 @ users.sf.net>
+*/
+#ifndef LIBMATROSKA_CHAPTERS_H
+#define LIBMATROSKA_CHAPTERS_H
+
+#include "matroska/KaxTypes.h"
+#include "ebml/EbmlMaster.h"
+#include "ebml/EbmlUInteger.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlBinary.h"
+#include "matroska/KaxDefines.h"
+
+using namespace LIBEBML_NAMESPACE;
+
+START_LIBMATROSKA_NAMESPACE
+
+DECLARE_MKX_MASTER(KaxChapters)
+};
+
+DECLARE_MKX_MASTER(KaxEditionEntry)
+};
+
+DECLARE_MKX_UINTEGER(KaxEditionUID)
+};
+
+DECLARE_MKX_UINTEGER(KaxEditionFlagHidden)
+};
+
+DECLARE_MKX_UINTEGER(KaxEditionFlagDefault)
+};
+
+DECLARE_MKX_UINTEGER(KaxEditionFlagOrdered)
+};
+
+DECLARE_MKX_MASTER(KaxChapterAtom)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterUID)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterTimeStart)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterTimeEnd)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterFlagHidden)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterFlagEnabled)
+};
+
+DECLARE_MKX_BINARY(KaxChapterSegmentUID)
+ public:
+ virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
+};
+
+DECLARE_MKX_BINARY(KaxChapterSegmentEditionUID)
+ public:
+ virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterPhysicalEquiv)
+};
+
+DECLARE_MKX_MASTER(KaxChapterTrack)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterTrackNumber)
+};
+
+DECLARE_MKX_MASTER(KaxChapterDisplay)
+};
+
+DECLARE_MKX_UNISTRING(KaxChapterString)
+};
+
+DECLARE_MKX_STRING(KaxChapterLanguage)
+};
+
+DECLARE_MKX_STRING(KaxChapterCountry)
+};
+
+DECLARE_MKX_MASTER(KaxChapterProcess)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterProcessCodecID)
+};
+
+DECLARE_MKX_BINARY(KaxChapterProcessPrivate)
+};
+
+DECLARE_MKX_MASTER(KaxChapterProcessCommand)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterProcessTime)
+};
+
+DECLARE_MKX_BINARY(KaxChapterProcessData)
+};
+
+END_LIBMATROSKA_NAMESPACE
+
+#endif // LIBMATROSKA_CHAPTERS_H
-/****************************************************************************\r
-** libmatroska : parse Matroska files, see http://www.matroska.org/\r
-**\r
-** <file/class description>\r
-**\r
-** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.\r
-**\r
-** This file is part of libmatroska.\r
-**\r
-** This library is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU Lesser General Public\r
-** License as published by the Free Software Foundation; either\r
-** version 2.1 of the License, or (at your option) any later version.\r
-** \r
-** This library is distributed in the hope that it will be useful,\r
-** but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
-** Lesser General Public License for more details.\r
-** \r
-** You should have received a copy of the GNU Lesser General Public\r
-** License along with this library; if not, write to the Free Software\r
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
-**\r
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**\r
-** Contact license@matroska.org if any conditions of this licensing are\r
-** not clear to you.\r
-**\r
-**********************************************************************/\r
-\r
-/*!\r
- \file\r
- \version \$Id: KaxInfoData.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $\r
- \author Steve Lhomme <robux4 @ users.sf.net>\r
- \author John Cannon <spyder2555 @ users.sf.net>\r
- \author Moritz Bunkus <moritz @ bunkus.org>\r
-*/\r
-#ifndef LIBMATROSKA_INFO_DATA_H\r
-#define LIBMATROSKA_INFO_DATA_H\r
-\r
-#include "matroska/KaxTypes.h"\r
-#include "ebml/EbmlUInteger.h"\r
-#include "ebml/EbmlFloat.h"\r
-#include "ebml/EbmlUnicodeString.h"\r
-#include "ebml/EbmlBinary.h"\r
-#include "ebml/EbmlDate.h"\r
-#include "ebml/EbmlMaster.h"\r
-#include "matroska/KaxDefines.h"\r
-\r
-using namespace LIBEBML_NAMESPACE;\r
-\r
-START_LIBMATROSKA_NAMESPACE\r
-\r
-DECLARE_MKX_BINARY(KaxSegmentUID)\r
- public:\r
-#if LIBEBML_VERSION >= 0x010000\r
- KaxSegmentUID(EBML_DEF_CONS EBML_DEF_SEP EBML_EXTRA_PARAM);\r
-#endif\r
- virtual bool ValidateSize() const { return (GetSize() == 16);}\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxSegmentFilename)\r
-};\r
-\r
-DECLARE_MKX_CONTEXT(KaxPrevUID);\r
-class MATROSKA_DLL_API KaxPrevUID : public KaxSegmentUID {\r
- public:\r
- KaxPrevUID(EBML_EXTRA_PARAM);\r
- KaxPrevUID(const KaxPrevUID & ElementToClone) :KaxSegmentUID(ElementToClone){}\r
- virtual bool ValidateSize() const { return (GetSize() == 16);}\r
-\r
- EBML_CONCRETE_CLASS(KaxPrevUID)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxPrevFilename)\r
-};\r
-\r
-DECLARE_MKX_CONTEXT(KaxNextUID);\r
-class MATROSKA_DLL_API KaxNextUID : public KaxSegmentUID {\r
- public:\r
- KaxNextUID(EBML_EXTRA_PARAM);\r
- KaxNextUID(const KaxNextUID & ElementToClone) :KaxSegmentUID(ElementToClone){}\r
- virtual bool ValidateSize() const { return (GetSize() == 16);}\r
-\r
- EBML_CONCRETE_CLASS(KaxNextUID)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxNextFilename)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxSegmentFamily)\r
- public:\r
- virtual bool ValidateSize() const { return (GetSize() == 16);}\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxChapterTranslate)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterTranslateCodec)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxChapterTranslateEditionUID)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxChapterTranslateID)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTimecodeScale)\r
-};\r
-\r
-DECLARE_MKX_FLOAT(KaxDuration)\r
-};\r
-\r
-DECLARE_MKX_DATE(KaxDateUTC)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTitle)\r
-};\r
-\r
-END_LIBMATROSKA_NAMESPACE\r
-\r
-#endif // LIBMATROSKA_INFO_DATA_H\r
+/****************************************************************************
+** libmatroska : parse Matroska files, see http://www.matroska.org/
+**
+** <file/class description>
+**
+** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.
+**
+** This file is part of libmatroska.
+**
+** 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$
+ \author Steve Lhomme <robux4 @ users.sf.net>
+ \author John Cannon <spyder2555 @ users.sf.net>
+ \author Moritz Bunkus <moritz @ bunkus.org>
+*/
+#ifndef LIBMATROSKA_INFO_DATA_H
+#define LIBMATROSKA_INFO_DATA_H
+
+#include "matroska/KaxTypes.h"
+#include "ebml/EbmlUInteger.h"
+#include "ebml/EbmlFloat.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlDate.h"
+#include "ebml/EbmlMaster.h"
+#include "matroska/KaxDefines.h"
+
+using namespace LIBEBML_NAMESPACE;
+
+START_LIBMATROSKA_NAMESPACE
+
+DECLARE_MKX_BINARY(KaxSegmentUID)
+ public:
+#if LIBEBML_VERSION >= 0x010000
+ KaxSegmentUID(EBML_DEF_CONS EBML_DEF_SEP EBML_EXTRA_PARAM);
+#endif
+ virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
+};
+
+DECLARE_MKX_UNISTRING(KaxSegmentFilename)
+};
+
+DECLARE_MKX_CONTEXT(KaxPrevUID);
+class MATROSKA_DLL_API KaxPrevUID : public KaxSegmentUID {
+ public:
+ KaxPrevUID(EBML_EXTRA_PARAM);
+ KaxPrevUID(const KaxPrevUID & ElementToClone) :KaxSegmentUID(ElementToClone){}
+ virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
+
+ EBML_CONCRETE_CLASS(KaxPrevUID)
+};
+
+DECLARE_MKX_UNISTRING(KaxPrevFilename)
+};
+
+DECLARE_MKX_CONTEXT(KaxNextUID);
+class MATROSKA_DLL_API KaxNextUID : public KaxSegmentUID {
+ public:
+ KaxNextUID(EBML_EXTRA_PARAM);
+ KaxNextUID(const KaxNextUID & ElementToClone) :KaxSegmentUID(ElementToClone){}
+ virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
+
+ EBML_CONCRETE_CLASS(KaxNextUID)
+};
+
+DECLARE_MKX_UNISTRING(KaxNextFilename)
+};
+
+DECLARE_MKX_BINARY(KaxSegmentFamily)
+ public:
+ virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
+};
+
+DECLARE_MKX_MASTER(KaxChapterTranslate)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterTranslateCodec)
+};
+
+DECLARE_MKX_UINTEGER(KaxChapterTranslateEditionUID)
+};
+
+DECLARE_MKX_BINARY(KaxChapterTranslateID)
+};
+
+DECLARE_MKX_UINTEGER(KaxTimecodeScale)
+};
+
+DECLARE_MKX_FLOAT(KaxDuration)
+};
+
+DECLARE_MKX_DATE(KaxDateUTC)
+};
+
+DECLARE_MKX_UNISTRING(KaxTitle)
+};
+
+END_LIBMATROSKA_NAMESPACE
+
+#endif // LIBMATROSKA_INFO_DATA_H
-/****************************************************************************\r
-** libmatroska : parse Matroska files, see http://www.matroska.org/\r
-**\r
-** <file/class description>\r
-**\r
-** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.\r
-**\r
-** This file is part of libmatroska.\r
-**\r
-** This library is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU Lesser General Public\r
-** License as published by the Free Software Foundation; either\r
-** version 2.1 of the License, or (at your option) any later version.\r
-** \r
-** This library is distributed in the hope that it will be useful,\r
-** but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
-** Lesser General Public License for more details.\r
-** \r
-** You should have received a copy of the GNU Lesser General Public\r
-** License along with this library; if not, write to the Free Software\r
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
-**\r
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**\r
-** Contact license@matroska.org if any conditions of this licensing are\r
-** not clear to you.\r
-**\r
-**********************************************************************/\r
-\r
-/*!\r
- \file\r
- \version \$Id: KaxSeekHead.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $\r
- \author Steve Lhomme <robux4 @ users.sf.net>\r
-*/\r
-#ifndef LIBMATROSKA_SEEK_HEAD_H\r
-#define LIBMATROSKA_SEEK_HEAD_H\r
-\r
-#include "matroska/KaxTypes.h"\r
-#include "ebml/EbmlMaster.h"\r
-#include "ebml/EbmlBinary.h"\r
-#include "ebml/EbmlUInteger.h"\r
-#include "matroska/KaxDefines.h"\r
-\r
-using namespace LIBEBML_NAMESPACE;\r
-\r
-START_LIBMATROSKA_NAMESPACE\r
-\r
-class KaxSegment;\r
-class KaxSeek;\r
-\r
-DECLARE_MKX_MASTER(KaxSeekHead)\r
- public:\r
- /*!\r
- \brief add an element to index in the Meta Seek data\r
- \note the element should already be written in the file\r
- */\r
- void IndexThis(const EbmlElement & aElt, const KaxSegment & ParentSegment);\r
-\r
- KaxSeek * FindFirstOf(const EbmlCallbacks & Callbacks) const;\r
- KaxSeek * FindNextOf(const KaxSeek &aPrev) const;\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxSeek)\r
- public:\r
- int64 Location() const;\r
- bool IsEbmlId(const EbmlId & aId) const;\r
- bool IsEbmlId(const KaxSeek & aPoint) const;\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxSeekID)\r
- public:\r
- virtual bool ValidateSize() const {return GetSize() <= 4;}\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxSeekPosition)\r
-};\r
-\r
-END_LIBMATROSKA_NAMESPACE\r
-\r
-#endif // LIBMATROSKA_SEEK_HEAD_H\r
+/****************************************************************************
+** libmatroska : parse Matroska files, see http://www.matroska.org/
+**
+** <file/class description>
+**
+** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.
+**
+** This file is part of libmatroska.
+**
+** 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$
+ \author Steve Lhomme <robux4 @ users.sf.net>
+*/
+#ifndef LIBMATROSKA_SEEK_HEAD_H
+#define LIBMATROSKA_SEEK_HEAD_H
+
+#include "matroska/KaxTypes.h"
+#include "ebml/EbmlMaster.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlUInteger.h"
+#include "matroska/KaxDefines.h"
+
+using namespace LIBEBML_NAMESPACE;
+
+START_LIBMATROSKA_NAMESPACE
+
+class KaxSegment;
+class KaxSeek;
+
+DECLARE_MKX_MASTER(KaxSeekHead)
+ public:
+ /*!
+ \brief add an element to index in the Meta Seek data
+ \note the element should already be written in the file
+ */
+ void IndexThis(const EbmlElement & aElt, const KaxSegment & ParentSegment);
+
+ KaxSeek * FindFirstOf(const EbmlCallbacks & Callbacks) const;
+ KaxSeek * FindNextOf(const KaxSeek &aPrev) const;
+};
+
+DECLARE_MKX_MASTER(KaxSeek)
+ public:
+ int64 Location() const;
+ bool IsEbmlId(const EbmlId & aId) const;
+ bool IsEbmlId(const KaxSeek & aPoint) const;
+};
+
+DECLARE_MKX_BINARY(KaxSeekID)
+ public:
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() <= 4;}
+};
+
+DECLARE_MKX_UINTEGER(KaxSeekPosition)
+};
+
+END_LIBMATROSKA_NAMESPACE
+
+#endif // LIBMATROSKA_SEEK_HEAD_H
-/****************************************************************************\r
-** libmatroska : parse Matroska files, see http://www.matroska.org/\r
-**\r
-** <file/class MATROSKA_DLL_API description>\r
-**\r
-** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.\r
-**\r
-** This file is part of libmatroska.\r
-**\r
-** This library is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU Lesser General Public\r
-** License as published by the Free Software Foundation; either\r
-** version 2.1 of the License, or (at your option) any later version.\r
-** \r
-** This library is distributed in the hope that it will be useful,\r
-** but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
-** Lesser General Public License for more details.\r
-** \r
-** You should have received a copy of the GNU Lesser General Public\r
-** License along with this library; if not, write to the Free Software\r
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
-**\r
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**\r
-** Contact license@matroska.org if any conditions of this licensing are\r
-** not clear to you.\r
-**\r
-**********************************************************************/\r
-\r
-/*!\r
- \file\r
- \version \$Id: KaxTag.h,v 1.9 2004/04/14 23:26:17 robux4 Exp $\r
- \author Jory Stone <jcsston @ toughguy.net>\r
- \author Steve Lhomme <robux4 @ users.sf.net>\r
-*/\r
-#ifndef LIBMATROSKA_TAG_H\r
-#define LIBMATROSKA_TAG_H\r
-\r
-#include "matroska/KaxTypes.h"\r
-#include "ebml/EbmlMaster.h"\r
-#include "ebml/EbmlFloat.h"\r
-#include "ebml/EbmlSInteger.h"\r
-#include "ebml/EbmlUInteger.h"\r
-#include "ebml/EbmlString.h"\r
-#include "ebml/EbmlUnicodeString.h"\r
-#include "ebml/EbmlBinary.h"\r
-#include "matroska/KaxDefines.h"\r
-\r
-using namespace LIBEBML_NAMESPACE;\r
-\r
-START_LIBMATROSKA_NAMESPACE\r
-\r
-DECLARE_MKX_MASTER(KaxTag)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagTargets)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagGeneral)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagGenres)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagAudioSpecific)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagImageSpecific)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagTargetTypeValue)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagTargetType)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagTrackUID)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagEditionUID)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagChapterUID)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagAttachmentUID)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagArchivalLocation)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagAudioEncryption)\r
-};\r
-\r
-DECLARE_MKX_FLOAT(KaxTagAudioGain)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagAudioGenre)\r
-};\r
-\r
-DECLARE_MKX_FLOAT(KaxTagAudioPeak)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagBibliography)\r
-};\r
-\r
-DECLARE_MKX_FLOAT(KaxTagBPM)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagCaptureDPI)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagCaptureLightness)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagCapturePaletteSetting)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagCaptureSharpness)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagCropped)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagDiscTrack)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagEncoder)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagEncodeSettings)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagEqualisation)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagFile)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagInitialKey)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagKeywords)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagLanguage)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagLength)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMood)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagOfficialAudioFileURL)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagOfficialAudioSourceURL)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagOriginalDimensions)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagOriginalMediaType)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagPlayCounter)\r
-}; \r
-\r
-DECLARE_MKX_UINTEGER(KaxTagPlaylistDelay)\r
-};\r
-\r
-DECLARE_MKX_SINTEGER(KaxTagPopularimeter)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagProduct)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagRating)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagRecordLocation)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagSetPart)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagSource)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagSourceForm)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagSubGenre)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagSubject)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagUnsynchronisedText)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagUserDefinedURL)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagVideoGenre)\r
- public:\r
- virtual bool ValidateSize() const {return (GetSize() >= 2);}\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagSimple)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagName)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagLangue)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagDefault)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagString)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagBinary)\r
-};\r
-\r
-END_LIBMATROSKA_NAMESPACE\r
-\r
-#endif // LIBMATROSKA_TAG_H\r
+/****************************************************************************
+** libmatroska : parse Matroska files, see http://www.matroska.org/
+**
+** <file/class MATROSKA_DLL_API description>
+**
+** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.
+**
+** This file is part of libmatroska.
+**
+** 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$
+ \author Jory Stone <jcsston @ toughguy.net>
+ \author Steve Lhomme <robux4 @ users.sf.net>
+*/
+#ifndef LIBMATROSKA_TAG_H
+#define LIBMATROSKA_TAG_H
+
+#include "matroska/KaxTypes.h"
+#include "ebml/EbmlMaster.h"
+#include "ebml/EbmlFloat.h"
+#include "ebml/EbmlSInteger.h"
+#include "ebml/EbmlUInteger.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlBinary.h"
+#include "matroska/KaxDefines.h"
+
+using namespace LIBEBML_NAMESPACE;
+
+START_LIBMATROSKA_NAMESPACE
+
+DECLARE_MKX_MASTER(KaxTag)
+};
+
+DECLARE_MKX_MASTER(KaxTagTargets)
+};
+
+DECLARE_MKX_MASTER(KaxTagGeneral)
+};
+
+DECLARE_MKX_MASTER(KaxTagGenres)
+};
+
+DECLARE_MKX_MASTER(KaxTagAudioSpecific)
+};
+
+DECLARE_MKX_MASTER(KaxTagImageSpecific)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagTargetTypeValue)
+};
+
+DECLARE_MKX_STRING(KaxTagTargetType)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagTrackUID)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagEditionUID)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagChapterUID)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagAttachmentUID)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagArchivalLocation)
+};
+
+DECLARE_MKX_BINARY(KaxTagAudioEncryption)
+};
+
+DECLARE_MKX_FLOAT(KaxTagAudioGain)
+};
+
+DECLARE_MKX_STRING(KaxTagAudioGenre)
+};
+
+DECLARE_MKX_FLOAT(KaxTagAudioPeak)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagBibliography)
+};
+
+DECLARE_MKX_FLOAT(KaxTagBPM)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagCaptureDPI)
+};
+
+DECLARE_MKX_BINARY(KaxTagCaptureLightness)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagCapturePaletteSetting)
+};
+
+DECLARE_MKX_BINARY(KaxTagCaptureSharpness)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagCropped)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagDiscTrack)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagEncoder)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagEncodeSettings)
+};
+
+DECLARE_MKX_BINARY(KaxTagEqualisation)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagFile)
+};
+
+DECLARE_MKX_STRING(KaxTagInitialKey)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagKeywords)
+};
+
+DECLARE_MKX_STRING(KaxTagLanguage)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagLength)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMood)
+};
+
+DECLARE_MKX_STRING(KaxTagOfficialAudioFileURL)
+};
+
+DECLARE_MKX_STRING(KaxTagOfficialAudioSourceURL)
+};
+
+DECLARE_MKX_STRING(KaxTagOriginalDimensions)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagOriginalMediaType)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagPlayCounter)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagPlaylistDelay)
+};
+
+DECLARE_MKX_SINTEGER(KaxTagPopularimeter)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagProduct)
+};
+
+DECLARE_MKX_BINARY(KaxTagRating)
+};
+
+DECLARE_MKX_STRING(KaxTagRecordLocation)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagSetPart)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagSource)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagSourceForm)
+};
+
+DECLARE_MKX_STRING(KaxTagSubGenre)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagSubject)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagUnsynchronisedText)
+};
+
+DECLARE_MKX_STRING(KaxTagUserDefinedURL)
+};
+
+DECLARE_MKX_BINARY(KaxTagVideoGenre)
+ public:
+ virtual bool ValidateSize() const {return IsFiniteSize() && (GetSize() >= 2);}
+};
+
+DECLARE_MKX_MASTER(KaxTagSimple)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagName)
+};
+
+DECLARE_MKX_STRING(KaxTagLangue)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagDefault)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagString)
+};
+
+DECLARE_MKX_BINARY(KaxTagBinary)
+};
+
+END_LIBMATROSKA_NAMESPACE
+
+#endif // LIBMATROSKA_TAG_H
-/****************************************************************************\r
-** libmatroska : parse Matroska files, see http://www.matroska.org/\r
-**\r
-** <file/class MATROSKA_DLL_API description>\r
-**\r
-** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.\r
-**\r
-** This file is part of libmatroska.\r
-**\r
-** This library is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU Lesser General Public\r
-** License as published by the Free Software Foundation; either\r
-** version 2.1 of the License, or (at your option) any later version.\r
-** \r
-** This library is distributed in the hope that it will be useful,\r
-** but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
-** Lesser General Public License for more details.\r
-** \r
-** You should have received a copy of the GNU Lesser General Public\r
-** License along with this library; if not, write to the Free Software\r
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
-**\r
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**\r
-** Contact license@matroska.org if any conditions of this licensing are\r
-** not clear to you.\r
-**\r
-**********************************************************************/\r
-\r
-/*!\r
- \file\r
- \version \$Id: KaxTagMulti.h,v 1.9 2004/04/14 23:26:17 robux4 Exp $\r
- \author Jory Stone <jcsston @ toughguy.net>\r
- \author Steve Lhomme <robux4 @ users.sf.net>\r
-*/\r
-#ifndef LIBMATROSKA_TAGMULTI_H\r
-#define LIBMATROSKA_TAGMULTI_H\r
-\r
-#include "matroska/KaxTypes.h"\r
-#include "ebml/EbmlMaster.h"\r
-#include "ebml/EbmlDate.h"\r
-#include "ebml/EbmlFloat.h"\r
-#include "ebml/EbmlSInteger.h"\r
-#include "ebml/EbmlUInteger.h"\r
-#include "ebml/EbmlString.h"\r
-#include "ebml/EbmlUnicodeString.h"\r
-#include "ebml/EbmlBinary.h"\r
-#include "matroska/KaxDefines.h"\r
-\r
-using namespace LIBEBML_NAMESPACE;\r
-\r
-START_LIBMATROSKA_NAMESPACE\r
-\r
-enum KaxTagMultiCommercialTypes {\r
- KaxTagMultiCommercialType_FilePurchase = 1, //Information on where to purchase this file. This is akin to the WPAY tag in ID3.\r
- KaxTagMultiCommercialType_ItemPurchase, //Information on where to purchase this album. This is akin to the WCOM tag in ID3.\r
- KaxTagMultiCommercialType_Owner //Information on the purchase that occurred for this file. This is akin to the OWNE tag in ID3.\r
-};\r
-enum KaxTagMultiDateTypes {\r
- KaxTagMultiDateType_EncodingDate = 1, //The time that the encoding of this item was completed. This is akin to the TDEN tag in ID3.\r
- KaxTagMultiDateType_RecordingDate, //The time that the recording began, and finished. This is akin to the TDRC tag in ID3.\r
- KaxTagMultiDateType_ReleaseDate, //The time that the item was originaly released. This is akin to the TDRL tag in ID3.\r
- KaxTagMultiDateType_OriginalReleaseDate, //The time that the item was originaly released if it is a remake. This is akin to the TDOR tag in ID3.\r
- KaxTagMultiDateType_TaggingDate, //The time that the tags were done for this item. This is akin to the TDTG tag in ID3.\r
- KaxTagMultiDateType_DigitizingDate //The time that the item was tranfered to a digital medium. This is akin to the IDIT tag in RIFF\r
-};\r
-enum KaxTagMultiEntitiesTypes {\r
- KaxTagMultiEntitiesType_LyricistTextWriter = 1, //The person that wrote the words/script for this item. This is akin to the TEXT tag in ID3.\r
- KaxTagMultiEntitiesType_Composer, //The name of the composer of this item. This is akin to the TCOM tag in ID3.\r
- KaxTagMultiEntitiesType_LeadPerformerSoloist, //This is akin to the TPE1 tag in ID3.\r
- KaxTagMultiEntitiesType_BandOrchestraAccompaniment, //This is akin to the TPE2 tag in ID3.\r
- KaxTagMultiEntitiesType_OriginalLyricistTextWriter, //This is akin to the TOLY tag in ID3.\r
- KaxTagMultiEntitiesType_OriginalArtistPerformer, //This is akin to the TOPE tag in ID3.\r
- KaxTagMultiEntitiesType_OriginalAlbumMovieShowTitle, //This is akin to the TOAL tag in ID3.\r
- KaxTagMultiEntitiesType_ConductorPerformerRefinement, //This is akin to the TPE3 tag in ID3.\r
- KaxTagMultiEntitiesType_InterpretedRemixedBy, //This is akin to the TPE4 tag in ID3.\r
- KaxTagMultiEntitiesType_Director, //This is akin to the IART tag in RIFF\r
- KaxTagMultiEntitiesType_ProducedBy, //This is akin to the IPRO tag in Extended RIFF\r
- KaxTagMultiEntitiesType_Cinematographer, //This is akin to the ICNM tag in Extended RIFF\r
- KaxTagMultiEntitiesType_ProductionDesigner, //This is akin to the IPDS tag in Extended RIFF\r
- KaxTagMultiEntitiesType_CostumeDesigner, //This is akin to the ICDS tag in Extended RIFF\r
- KaxTagMultiEntitiesType_ProductionStudio, //This is akin to the ISTD tag in Extended RIFF\r
- KaxTagMultiEntitiesType_DistributedBy, //This is akin to the IDST tag in Extended RIFF\r
- KaxTagMultiEntitiesType_CommissionedBy, //This is akin to the ICMS tag in RIFF\r
- KaxTagMultiEntitiesType_Engineer, //This is akin to the IENG tag in RIFF\r
- KaxTagMultiEntitiesType_EditedBy, //This is akin to the IEDT tag in Extended RIFF\r
- KaxTagMultiEntitiesType_EncodedBy, //This is akin to the TENC tag in ID3.\r
- KaxTagMultiEntitiesType_RippedBy, //This is akin to the IRIP tag in Extended RIFF\r
- KaxTagMultiEntitiesType_InvolvedPeopleList, //A very general tag for everyone else that wants to be listed. This is akin to the TMCL tag in ID3.\r
- KaxTagMultiEntitiesType_InternetRadioStationName, //This is akin to the TSRN tag in ID3.\r
- KaxTagMultiEntitiesType_Publisher //This is akin to the TPUB tag in ID3.\r
-};\r
-\r
-enum KaxTagMultiIdentifierTypes {\r
- KaxTagMultiIdentifierType_ISRC = 1, //String, The International Standard Recording Code\r
- KaxTagMultiIdentifierType_CDIdentifier, //Binary, This is a binary dump of the TOC of the CDROM that this item was taken from. This holds the same information as the MCDI in ID3.\r
- KaxTagMultiIdentifierType_ISBN, //String, International Standard Book Number\r
- KaxTagMultiIdentifierType_Catalog, //String, sometimes the EAN/UPC, often some letters followed by some numbers\r
- KaxTagMultiIdentifierType_EAN, //String, EAN-13 bar code identifier\r
- KaxTagMultiIdentifierType_UPC, //String, UPC-A bar code identifier\r
- KaxTagMultiIdentifierType_LabelCode, //String, Typically printed as ________ (LC) xxxx) ~~~~~~~~ or _________ (LC) 0xxxx) ~~~~~~~~~ on CDs medias or covers, where xxxx is a 4-digit number.\r
- KaxTagMultiIdentifierType_LCCN, //String, Library of Congress Control Number\r
- KaxTagMultiIdentifierType_UniqueFileIdentifier, //Binary, This used for a dump of the UFID field in ID3. This field would only be used if the item was pulled from an MP3.\r
- CDROM_CD_TEXT_PACK_TOC_INFO2 //Binary\r
-};\r
-\r
-enum KaxTagMultiLegalTypes {\r
- KaxTagMultiLegalType_Copyright = 1, //The copyright information as per the copyright holder. This is akin to the TCOP tag in ID3.\r
- KaxTagMultiLegalType_ProductionCopyright, //The copyright information as per the production copyright holder. This is akin to the TPRO tag in ID3.\r
- KaxTagMultiLegalType_TermsOfUse //The terms of use for this item. This is akin to the USER tag in ID3.\r
-};\r
-\r
-enum KaxTagMultiTitleTypes {\r
- KaxTagMultiTitleType_TrackTitle = 1,\r
- //The title of this item. In the case of a track, the Name element should be identical to the Name element.\r
- //For example, for music you might label this "Canon in D", or for video's audio track you might use "English 5.1" This is akin to the TIT2 tag in ID3.\r
- KaxTagMultiTitleType_AlbumMovieShowTitle,\r
- //This is the name given to a grouping of tracks and/or chapters. \r
- //For example, all video, audio, and subtitle tracks for a movie would be grouped under this and be given the name of the movie. \r
- //All tracks for a particular CD would be grouped together under the title of the CD, or if all tracks for a CD were recorded as a single track, seperated by chapters, the same would apply.\r
- //You could use this to label episode 3 of The Simpsons. This is akin to the TALB tag in ID3.\r
- KaxTagMultiTitleType_SetTitle, //This would be used to label a set of ID 2. For example, season 13 of The Simpsons.\r
- KaxTagMultiTitleType_Series //This would be used to label a set of ID 3. For example, The Simpsons.\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiComment)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiCommentName)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiCommentComments)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiCommentLanguage)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiCommercial)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagCommercial)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagMultiCommercialType)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiCommercialAddress)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiCommercialURL)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiCommercialEmail)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiPrice)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiPriceCurrency)\r
-};\r
-\r
-DECLARE_MKX_FLOAT(KaxTagMultiPriceAmount)\r
-};\r
-\r
-DECLARE_MKX_DATE(KaxTagMultiPricePriceDate)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiDate)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagDate)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagMultiDateType)\r
-};\r
-\r
-DECLARE_MKX_DATE(KaxTagMultiDateDateBegin)\r
-};\r
-\r
-DECLARE_MKX_DATE(KaxTagMultiDateDateEnd)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiEntity)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagEntity)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagMultiEntityType)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiEntityName)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiEntityAddress)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiEntityURL)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiEntityEmail)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiIdentifier)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagIdentifier)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagMultiIdentifierType)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagMultiIdentifierBinary)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiIdentifierString)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiLegal)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagLegal)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagMultiLegalType)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiLegalContent)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiLegalURL)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiLegalAddress)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiTitle)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagTitle)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagMultiTitleType)\r
-};\r
-\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiTitleName)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiTitleSubTitle)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiTitleEdition)\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxTagMultiTitleAddress)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiTitleURL)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiTitleEmail)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagMultiTitleLanguage)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagMultiAttachment)\r
-};\r
-\r
-DECLARE_MKX_MASTER(KaxTagAttachment)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagAttachmentID)\r
-};\r
-\r
-#if 0\r
-DECLARE_MKX_FLOAT(KaxTagBPM)\r
-};\r
-\r
-DECLARE_MKX_SINTEGER(KaxTagPopularimeter)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagRating)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxTagSetPart)\r
-};\r
-\r
-DECLARE_MKX_STRING(KaxTagUserDefinedURL)\r
-};\r
-\r
-DECLARE_MKX_BINARY(KaxTagVideoSecondaryGenre)\r
- public:\r
- virtual bool ValidateSize() const {return (Size >= 4);\r
-};\r
-\r
-DECLARE_MKX_UNISTRING(KaxWritingApp)\r
-};\r
-#endif\r
-\r
-END_LIBMATROSKA_NAMESPACE\r
-\r
-#endif // LIBMATROSKA_TAGMULTI_H\r
+/****************************************************************************
+** libmatroska : parse Matroska files, see http://www.matroska.org/
+**
+** <file/class MATROSKA_DLL_API description>
+**
+** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.
+**
+** This file is part of libmatroska.
+**
+** 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$
+ \author Jory Stone <jcsston @ toughguy.net>
+ \author Steve Lhomme <robux4 @ users.sf.net>
+*/
+#ifndef LIBMATROSKA_TAGMULTI_H
+#define LIBMATROSKA_TAGMULTI_H
+
+#include "matroska/KaxTypes.h"
+#include "ebml/EbmlMaster.h"
+#include "ebml/EbmlDate.h"
+#include "ebml/EbmlFloat.h"
+#include "ebml/EbmlSInteger.h"
+#include "ebml/EbmlUInteger.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlBinary.h"
+#include "matroska/KaxDefines.h"
+
+using namespace LIBEBML_NAMESPACE;
+
+START_LIBMATROSKA_NAMESPACE
+
+enum KaxTagMultiCommercialTypes {
+ KaxTagMultiCommercialType_FilePurchase = 1, //Information on where to purchase this file. This is akin to the WPAY tag in ID3.
+ KaxTagMultiCommercialType_ItemPurchase, //Information on where to purchase this album. This is akin to the WCOM tag in ID3.
+ KaxTagMultiCommercialType_Owner //Information on the purchase that occurred for this file. This is akin to the OWNE tag in ID3.
+};
+enum KaxTagMultiDateTypes {
+ KaxTagMultiDateType_EncodingDate = 1, //The time that the encoding of this item was completed. This is akin to the TDEN tag in ID3.
+ KaxTagMultiDateType_RecordingDate, //The time that the recording began, and finished. This is akin to the TDRC tag in ID3.
+ KaxTagMultiDateType_ReleaseDate, //The time that the item was originaly released. This is akin to the TDRL tag in ID3.
+ KaxTagMultiDateType_OriginalReleaseDate, //The time that the item was originaly released if it is a remake. This is akin to the TDOR tag in ID3.
+ KaxTagMultiDateType_TaggingDate, //The time that the tags were done for this item. This is akin to the TDTG tag in ID3.
+ KaxTagMultiDateType_DigitizingDate //The time that the item was tranfered to a digital medium. This is akin to the IDIT tag in RIFF
+};
+enum KaxTagMultiEntitiesTypes {
+ KaxTagMultiEntitiesType_LyricistTextWriter = 1, //The person that wrote the words/script for this item. This is akin to the TEXT tag in ID3.
+ KaxTagMultiEntitiesType_Composer, //The name of the composer of this item. This is akin to the TCOM tag in ID3.
+ KaxTagMultiEntitiesType_LeadPerformerSoloist, //This is akin to the TPE1 tag in ID3.
+ KaxTagMultiEntitiesType_BandOrchestraAccompaniment, //This is akin to the TPE2 tag in ID3.
+ KaxTagMultiEntitiesType_OriginalLyricistTextWriter, //This is akin to the TOLY tag in ID3.
+ KaxTagMultiEntitiesType_OriginalArtistPerformer, //This is akin to the TOPE tag in ID3.
+ KaxTagMultiEntitiesType_OriginalAlbumMovieShowTitle, //This is akin to the TOAL tag in ID3.
+ KaxTagMultiEntitiesType_ConductorPerformerRefinement, //This is akin to the TPE3 tag in ID3.
+ KaxTagMultiEntitiesType_InterpretedRemixedBy, //This is akin to the TPE4 tag in ID3.
+ KaxTagMultiEntitiesType_Director, //This is akin to the IART tag in RIFF
+ KaxTagMultiEntitiesType_ProducedBy, //This is akin to the IPRO tag in Extended RIFF
+ KaxTagMultiEntitiesType_Cinematographer, //This is akin to the ICNM tag in Extended RIFF
+ KaxTagMultiEntitiesType_ProductionDesigner, //This is akin to the IPDS tag in Extended RIFF
+ KaxTagMultiEntitiesType_CostumeDesigner, //This is akin to the ICDS tag in Extended RIFF
+ KaxTagMultiEntitiesType_ProductionStudio, //This is akin to the ISTD tag in Extended RIFF
+ KaxTagMultiEntitiesType_DistributedBy, //This is akin to the IDST tag in Extended RIFF
+ KaxTagMultiEntitiesType_CommissionedBy, //This is akin to the ICMS tag in RIFF
+ KaxTagMultiEntitiesType_Engineer, //This is akin to the IENG tag in RIFF
+ KaxTagMultiEntitiesType_EditedBy, //This is akin to the IEDT tag in Extended RIFF
+ KaxTagMultiEntitiesType_EncodedBy, //This is akin to the TENC tag in ID3.
+ KaxTagMultiEntitiesType_RippedBy, //This is akin to the IRIP tag in Extended RIFF
+ KaxTagMultiEntitiesType_InvolvedPeopleList, //A very general tag for everyone else that wants to be listed. This is akin to the TMCL tag in ID3.
+ KaxTagMultiEntitiesType_InternetRadioStationName, //This is akin to the TSRN tag in ID3.
+ KaxTagMultiEntitiesType_Publisher //This is akin to the TPUB tag in ID3.
+};
+
+enum KaxTagMultiIdentifierTypes {
+ KaxTagMultiIdentifierType_ISRC = 1, //String, The International Standard Recording Code
+ KaxTagMultiIdentifierType_CDIdentifier, //Binary, This is a binary dump of the TOC of the CDROM that this item was taken from. This holds the same information as the MCDI in ID3.
+ KaxTagMultiIdentifierType_ISBN, //String, International Standard Book Number
+ KaxTagMultiIdentifierType_Catalog, //String, sometimes the EAN/UPC, often some letters followed by some numbers
+ KaxTagMultiIdentifierType_EAN, //String, EAN-13 bar code identifier
+ KaxTagMultiIdentifierType_UPC, //String, UPC-A bar code identifier
+ KaxTagMultiIdentifierType_LabelCode, //String, Typically printed as ________ (LC) xxxx) ~~~~~~~~ or _________ (LC) 0xxxx) ~~~~~~~~~ on CDs medias or covers, where xxxx is a 4-digit number.
+ KaxTagMultiIdentifierType_LCCN, //String, Library of Congress Control Number
+ KaxTagMultiIdentifierType_UniqueFileIdentifier, //Binary, This used for a dump of the UFID field in ID3. This field would only be used if the item was pulled from an MP3.
+ CDROM_CD_TEXT_PACK_TOC_INFO2 //Binary
+};
+
+enum KaxTagMultiLegalTypes {
+ KaxTagMultiLegalType_Copyright = 1, //The copyright information as per the copyright holder. This is akin to the TCOP tag in ID3.
+ KaxTagMultiLegalType_ProductionCopyright, //The copyright information as per the production copyright holder. This is akin to the TPRO tag in ID3.
+ KaxTagMultiLegalType_TermsOfUse //The terms of use for this item. This is akin to the USER tag in ID3.
+};
+
+enum KaxTagMultiTitleTypes {
+ KaxTagMultiTitleType_TrackTitle = 1,
+ //The title of this item. In the case of a track, the Name element should be identical to the Name element.
+ //For example, for music you might label this "Canon in D", or for video's audio track you might use "English 5.1" This is akin to the TIT2 tag in ID3.
+ KaxTagMultiTitleType_AlbumMovieShowTitle,
+ //This is the name given to a grouping of tracks and/or chapters.
+ //For example, all video, audio, and subtitle tracks for a movie would be grouped under this and be given the name of the movie.
+ //All tracks for a particular CD would be grouped together under the title of the CD, or if all tracks for a CD were recorded as a single track, seperated by chapters, the same would apply.
+ //You could use this to label episode 3 of The Simpsons. This is akin to the TALB tag in ID3.
+ KaxTagMultiTitleType_SetTitle, //This would be used to label a set of ID 2. For example, season 13 of The Simpsons.
+ KaxTagMultiTitleType_Series //This would be used to label a set of ID 3. For example, The Simpsons.
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiComment)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiCommentName)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiCommentComments)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiCommentLanguage)
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiCommercial)
+};
+
+DECLARE_MKX_MASTER(KaxTagCommercial)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagMultiCommercialType)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiCommercialAddress)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiCommercialURL)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiCommercialEmail)
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiPrice)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiPriceCurrency)
+};
+
+DECLARE_MKX_FLOAT(KaxTagMultiPriceAmount)
+};
+
+DECLARE_MKX_DATE(KaxTagMultiPricePriceDate)
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiDate)
+};
+
+DECLARE_MKX_MASTER(KaxTagDate)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagMultiDateType)
+};
+
+DECLARE_MKX_DATE(KaxTagMultiDateDateBegin)
+};
+
+DECLARE_MKX_DATE(KaxTagMultiDateDateEnd)
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiEntity)
+};
+
+DECLARE_MKX_MASTER(KaxTagEntity)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagMultiEntityType)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiEntityName)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiEntityAddress)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiEntityURL)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiEntityEmail)
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiIdentifier)
+};
+
+DECLARE_MKX_MASTER(KaxTagIdentifier)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagMultiIdentifierType)
+};
+
+DECLARE_MKX_BINARY(KaxTagMultiIdentifierBinary)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiIdentifierString)
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiLegal)
+};
+
+DECLARE_MKX_MASTER(KaxTagLegal)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagMultiLegalType)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiLegalContent)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiLegalURL)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiLegalAddress)
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiTitle)
+};
+
+DECLARE_MKX_MASTER(KaxTagTitle)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagMultiTitleType)
+};
+
+
+DECLARE_MKX_UNISTRING(KaxTagMultiTitleName)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiTitleSubTitle)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiTitleEdition)
+};
+
+DECLARE_MKX_UNISTRING(KaxTagMultiTitleAddress)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiTitleURL)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiTitleEmail)
+};
+
+DECLARE_MKX_STRING(KaxTagMultiTitleLanguage)
+};
+
+DECLARE_MKX_MASTER(KaxTagMultiAttachment)
+};
+
+DECLARE_MKX_MASTER(KaxTagAttachment)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagAttachmentID)
+};
+
+#if 0
+DECLARE_MKX_FLOAT(KaxTagBPM)
+};
+
+DECLARE_MKX_SINTEGER(KaxTagPopularimeter)
+};
+
+DECLARE_MKX_BINARY(KaxTagRating)
+};
+
+DECLARE_MKX_UINTEGER(KaxTagSetPart)
+};
+
+DECLARE_MKX_STRING(KaxTagUserDefinedURL)
+};
+
+DECLARE_MKX_BINARY(KaxTagVideoSecondaryGenre)
+ public:
+ virtual bool ValidateSize() const {return IsFiniteSize() && (Size >= 4);
+};
+
+DECLARE_MKX_UNISTRING(KaxWritingApp)
+};
+#endif
+
+END_LIBMATROSKA_NAMESPACE
+
+#endif // LIBMATROSKA_TAGMULTI_H
-/****************************************************************************\r
-** libmatroska : parse Matroska files, see http://www.matroska.org/\r
-**\r
-** <file/class MATROSKA_DLL_API description>\r
-**\r
-** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.\r
-**\r
-** This file is part of libmatroska.\r
-**\r
-** This library is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU Lesser General Public\r
-** License as published by the Free Software Foundation; either\r
-** version 2.1 of the License, or (at your option) any later version.\r
-** \r
-** This library is distributed in the hope that it will be useful,\r
-** but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
-** Lesser General Public License for more details.\r
-** \r
-** You should have received a copy of the GNU Lesser General Public\r
-** License along with this library; if not, write to the Free Software\r
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
-**\r
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**\r
-** Contact license@matroska.org if any conditions of this licensing are\r
-** not clear to you.\r
-**\r
-**********************************************************************/\r
-\r
-/*!\r
- \file\r
- \version \$Id: KaxTrackVideo.h,v 1.9 2004/04/14 23:26:17 robux4 Exp $\r
- \author Steve Lhomme <robux4 @ users.sf.net>\r
-*/\r
-#ifndef LIBMATROSKA_TRACK_VIDEO_H\r
-#define LIBMATROSKA_TRACK_VIDEO_H\r
-\r
-#include "matroska/KaxTypes.h"\r
-#include "ebml/EbmlMaster.h"\r
-#include "ebml/EbmlUInteger.h"\r
-#include "ebml/EbmlBinary.h"\r
-#include "ebml/EbmlFloat.h"\r
-#include "matroska/KaxDefines.h"\r
-\r
-using namespace LIBEBML_NAMESPACE;\r
-\r
-START_LIBMATROSKA_NAMESPACE\r
-\r
-DECLARE_MKX_MASTER(KaxTrackVideo)\r
-};\r
-\r
-#if MATROSKA_VERSION >= 2\r
-DECLARE_MKX_UINTEGER(KaxVideoFlagInterlaced)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoStereoMode)\r
-};\r
-#endif // MATROSKA_VERSION\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoPixelWidth)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoPixelHeight)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoPixelCropBottom)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoPixelCropTop)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoPixelCropLeft)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoPixelCropRight)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoDisplayWidth)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoDisplayHeight)\r
-};\r
-\r
-#if MATROSKA_VERSION >= 2\r
-DECLARE_MKX_UINTEGER(KaxVideoDisplayUnit)\r
-};\r
-\r
-DECLARE_MKX_UINTEGER(KaxVideoAspectRatio)\r
-};\r
-#endif // MATROSKA_VERSION\r
-\r
-DECLARE_MKX_BINARY(KaxVideoColourSpace)\r
- public:\r
- bool ValidateSize(void) const {return (GetSize() == 4);}\r
-};\r
-\r
-#if MATROSKA_VERSION >= 2\r
-DECLARE_MKX_FLOAT(KaxVideoGamma)\r
-};\r
-#endif // MATROSKA_VERSION\r
-\r
-DECLARE_MKX_FLOAT(KaxVideoFrameRate)\r
- public:\r
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);\r
-};\r
-\r
-\r
-END_LIBMATROSKA_NAMESPACE\r
-\r
-#endif // LIBMATROSKA_TRACK_VIDEO_H\r
+/****************************************************************************
+** libmatroska : parse Matroska files, see http://www.matroska.org/
+**
+** <file/class MATROSKA_DLL_API description>
+**
+** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved.
+**
+** This file is part of libmatroska.
+**
+** 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$
+ \author Steve Lhomme <robux4 @ users.sf.net>
+*/
+#ifndef LIBMATROSKA_TRACK_VIDEO_H
+#define LIBMATROSKA_TRACK_VIDEO_H
+
+#include "matroska/KaxTypes.h"
+#include "ebml/EbmlMaster.h"
+#include "ebml/EbmlUInteger.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlFloat.h"
+#include "matroska/KaxDefines.h"
+
+using namespace LIBEBML_NAMESPACE;
+
+START_LIBMATROSKA_NAMESPACE
+
+DECLARE_MKX_MASTER(KaxTrackVideo)
+};
+
+#if MATROSKA_VERSION >= 2
+DECLARE_MKX_UINTEGER(KaxVideoFlagInterlaced)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoStereoMode)
+};
+#endif // MATROSKA_VERSION
+
+DECLARE_MKX_UINTEGER(KaxVideoPixelWidth)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoPixelHeight)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoPixelCropBottom)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoPixelCropTop)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoPixelCropLeft)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoPixelCropRight)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoDisplayWidth)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoDisplayHeight)
+};
+
+#if MATROSKA_VERSION >= 2
+DECLARE_MKX_UINTEGER(KaxVideoDisplayUnit)
+};
+
+DECLARE_MKX_UINTEGER(KaxVideoAspectRatio)
+};
+#endif // MATROSKA_VERSION
+
+DECLARE_MKX_BINARY(KaxVideoColourSpace)
+ public:
+ bool ValidateSize(void) const {return IsFiniteSize() && (GetSize() == 4);}
+};
+
+#if MATROSKA_VERSION >= 2
+DECLARE_MKX_FLOAT(KaxVideoGamma)
+};
+#endif // MATROSKA_VERSION
+
+DECLARE_MKX_FLOAT(KaxVideoFrameRate)
+ public:
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
+};
+
+
+END_LIBMATROSKA_NAMESPACE
+
+#endif // LIBMATROSKA_TRACK_VIDEO_H