From e23d29d21bdcf9efa638d82a741b7cfb53599ce5 Mon Sep 17 00:00:00 2001 From: Cristian Morales Vega Date: Sun, 14 Apr 2013 16:34:22 +0100 Subject: [PATCH] Use Linux-style EOL for non Windows specific files --- LICENSE.LGPL | 1008 ++++++++++++------------ make/Doxyfile | 422 +++++----- make/linux/Makefile | 358 ++++----- make/linux/Makefile.rule | 196 ++--- make/linux/check_ids | 36 +- make/makedoc.sh | 14 +- matroska/FileKax.h | 326 ++++---- matroska/KaxConfig.h | 140 ++-- matroska/KaxSegment.h | 124 +-- matroska/KaxTypes.h | 118 +-- src/KaxSemantic.cpp | 1582 +++++++++++++++++++------------------- test/Makefile | 20 +- test/ebml/Makefile | 124 +-- 13 files changed, 2234 insertions(+), 2234 deletions(-) diff --git a/LICENSE.LGPL b/LICENSE.LGPL index cbee875..b1e3f5a 100644 --- a/LICENSE.LGPL +++ b/LICENSE.LGPL @@ -1,504 +1,504 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/make/Doxyfile b/make/Doxyfile index e9e0cb9..be25f52 100644 --- a/make/Doxyfile +++ b/make/Doxyfile @@ -1,211 +1,211 @@ -# Doxyfile 1.3 - -#--------------------------------------------------------------------------- -# General configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = libmatroska -PROJECT_NUMBER = 0.5.0 -OUTPUT_DIRECTORY = ../../doc/src -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = YES -EXTRACT_ALL = YES -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = YES -FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = YES -SHORT_NAMES = NO -HIDE_SCOPE_NAMES = NO -VERBATIM_HEADERS = YES -SHOW_INCLUDE_FILES = NO -JAVADOC_AUTOBRIEF = YES -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = YES -INHERIT_DOCS = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = NO -DISTRIBUTE_GROUP_DOC = NO -TAB_SIZE = 2 -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ALIASES = -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -SHOW_USED_FILES = YES -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = ../../libebml/src \ - ../../libebml/src/platform/win32 \ - ../../libebml/ebml \ - ../../libebml/ebml/c \ - ../src \ - ../matroska \ - ../matroska/c -FILE_PATTERNS = *.cpp \ - *.h -RECURSIVE = NO -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = NO -REFERENCES_RELATION = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = libmatroska.css -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = YES -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = YES -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = YES -USE_PDFLATEX = YES -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = YES -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = YES -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = YES -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_SCHEMA = -XML_DTD = -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::addtions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -TEMPLATE_RELATIONS = YES -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -GRAPHICAL_HIERARCHY = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 -MAX_DOT_GRAPH_DEPTH = 0 -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::addtions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO -CGI_NAME = search.cgi -CGI_URL = -DOC_URL = -DOC_ABSPATH = -BIN_ABSPATH = /usr/local/bin/ -EXT_DOC_PATHS = +# Doxyfile 1.3 + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = libmatroska +PROJECT_NUMBER = 0.5.0 +OUTPUT_DIRECTORY = ../../doc/src +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = YES +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +SHORT_NAMES = NO +HIDE_SCOPE_NAMES = NO +VERBATIM_HEADERS = YES +SHOW_INCLUDE_FILES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 2 +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ALIASES = +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SHOW_USED_FILES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../../libebml/src \ + ../../libebml/src/platform/win32 \ + ../../libebml/ebml \ + ../../libebml/ebml/c \ + ../src \ + ../matroska \ + ../matroska/c +FILE_PATTERNS = *.cpp \ + *.h +RECURSIVE = NO +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = libmatroska.css +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = YES +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = YES +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = YES +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = YES +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_SCHEMA = +XML_DTD = +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO +CGI_NAME = search.cgi +CGI_URL = +DOC_URL = +DOC_ABSPATH = +BIN_ABSPATH = /usr/local/bin/ +EXT_DOC_PATHS = diff --git a/make/linux/Makefile b/make/linux/Makefile index 69fee66..3ca7b0f 100644 --- a/make/linux/Makefile +++ b/make/linux/Makefile @@ -1,179 +1,179 @@ -# libmatroska core Makefile (used in cygwin) -# $Id: Makefile 1254 2006-06-02 14:32:52Z mosu $ -# Author: Steve Lhomme -# Author: Moritz Bunkus - -# -# The library is built without debug information. If you want -# debug information to be included then compile with -# 'make DEBUG=yes'. -# - -# Paths -# BeOS wants the libs and headers in /boot/home/config -ifeq (BeOS,$(shell uname -s)) -prefix=/boot/home/config -else -prefix=/usr/local -endif -libdir=$(prefix)/lib -includedir=$(prefix)/include/matroska - -# Programs -CROSS = -CXX = $(CROSS)g++ -LD = $(CXX) -AR = $(CROSS)ar -RANLIB = $(CROSS)ranlib -INSTALL = install -INSTALL_OPTS = -m 644 -INSTALL_OPTS_LIB = -m 644 -INSTALL_DIR_OPTS = -m 755 - -CWD=$(shell pwd) - -# Options -LIBEBML_INCLUDE_DIR=$(CWD)/../../../libebml -LIBEBML_LIB_DIR=$(CWD)/../../../libebml/make/linux -EXTENSION=.cpp - -ifeq (yes,$(DEBUG)) -DEBUGFLAGS=-g -DDEBUG -endif - -ifeq (Darwin,$(shell uname -s)) -link=static -else -link=both -endif - -targets_both = staticlib sharedlib -targets_shared = sharedlib -targets_static = staticlib - -SRC_DIR=$(CWD)/../../src/ -INCLUDE_DIR=$(CWD)/../../matroska -MUX_SRC_DIR=$(CWD)/../../test/mux/ -TAG_SRC_DIR=$(CWD)/../../test/tags/ - -# Libraries -INCLUDE=-I$(CWD)/../.. -I$(LIBEBML_INCLUDE_DIR) -LIBS= -MUX_LIBS=-lmatroska -lebml $(LIBICONV) - -# Names -LIBRARY=libmatroska.a -LIBRARY_SO=libmatroska.so -LIBRARY_SO_VER=libmatroska.so.6 - -# source-files -sources:=$(wildcard ${SRC_DIR}*$(EXTENSION)) - -# header files; replace .cxx extension with .h -headers:=$(patsubst %$(EXTENSION),%.h,$(sources)) - -# object files; replace .cxx extension with .o -objects:=$(patsubst %$(EXTENSION),%.o,$(sources)) - -objects_so:=$(patsubst %$(EXTENSION),%.lo,$(sources)) - -WARNINGFLAGS=-Wall -Wextra -Wno-unknown-pragmas -D_GNU_SOURCE -Wshadow -COMPILEFLAGS=$(DEBUGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(WARNINGFLAGS) $(INCLUDE) -LINKFLAGS=-L. -L$(LIBEBML_LIB_DIR) $(LDFLAGS) -DEPENDFLAGS = $(CXXFLAGS) $(INCLUDE) - -all: $(targets_$(link)) - -staticlib: $(LIBRARY) - -sharedlib: $(LIBRARY_SO) - -lib: - @echo "Use the 'staticlib', 'sharedlib' or 'all' targets." - @false - -# Build rules -%.o: %$(EXTENSION) - $(CXX) -c $(COMPILEFLAGS) -o $@ $< - -%.lo: %$(EXTENSION) - $(CXX) -c $(COMPILEFLAGS) -fPIC -o $@ $< - -$(LIBRARY): $(objects) - $(AR) rcvu $@ $(objects) - $(RANLIB) $@ - -$(LIBRARY_SO): $(objects_so) - $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -lebml - rm -f $(LIBRARY_SO) - ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO) - -clean: cleantest - rm -f $(objects) $(objects_so) - rm -f $(LIBRARY) - rm -f $(LIBRARY_SO) - rm -f $(LIBRARY_SO_VER) - rm -f CORE - -cleantest: - rm -f test6 test8 test9 test6.o test8.o test9.o - -distclean dist-clean: clean - rm -f .depend - -depend: - @echo Calculating dependecies: - @rm -f .depend - @touch .depend - @for i in $(sources); do \ - o="`echo $$i | sed -e 's/\.c$$/.o/' -e 's/\.cpp$$/.o/'`" ; \ - echo ' ' $$i: $$o ; \ - $(CXX) $(DEPENDFLAGS) -MM -MT $$o $$i >> .depend ; \ - done - -test: test6 test9 - -test6: test6.o $(LIBRARY) $(LIBRARY_SO) - $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS) - -test6.o: $(MUX_SRC_DIR)test6.cpp - $(CXX) -c $(COMPILEFLAGS) -o $@ $< - -test8: test8.o $(LIBRARY) $(LIBRARY_SO) - $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS) - -test8.o: $(MUX_SRC_DIR)test8.cpp - $(CXX) -c $(COMPILEFLAGS) -o $@ $< - -test9: test9.o $(LIBRARY) $(LIBRARY_SO) - $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS) - -test9.o: $(TAG_SRC_DIR)test9.cpp - $(CXX) -c $(COMPILEFLAGS) -o $@ $< - -install: $(targets_$(link):%=install_%) install_headers - -install_headers: - $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(includedir) - for i in $(INCLUDE_DIR)/*.h; do \ - $(INSTALL) $(INSTALL_OPTS) $$i $(DESTDIR)$(includedir) ; \ - done - $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(includedir)/c - for i in $(INCLUDE_DIR)/c/*.h; do \ - $(INSTALL) $(INSTALL_OPTS) $$i $(DESTDIR)$(includedir)/c ; \ - done - -install_staticlib: $(LIBRARY) - $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(libdir) - $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY) $(DESTDIR)$(libdir) - -install_sharedlib: $(LIBRARY_SO) - $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(libdir) - $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY_SO_VER) $(DESTDIR)$(libdir) - ln -fs $(LIBRARY_SO_VER) $(DESTDIR)$(libdir)/$(LIBRARY_SO) - -ifneq ($(wildcard .depend),) -include .depend -endif - -# DO NOT DELETE +# libmatroska core Makefile (used in cygwin) +# $Id: Makefile 1254 2006-06-02 14:32:52Z mosu $ +# Author: Steve Lhomme +# Author: Moritz Bunkus + +# +# The library is built without debug information. If you want +# debug information to be included then compile with +# 'make DEBUG=yes'. +# + +# Paths +# BeOS wants the libs and headers in /boot/home/config +ifeq (BeOS,$(shell uname -s)) +prefix=/boot/home/config +else +prefix=/usr/local +endif +libdir=$(prefix)/lib +includedir=$(prefix)/include/matroska + +# Programs +CROSS = +CXX = $(CROSS)g++ +LD = $(CXX) +AR = $(CROSS)ar +RANLIB = $(CROSS)ranlib +INSTALL = install +INSTALL_OPTS = -m 644 +INSTALL_OPTS_LIB = -m 644 +INSTALL_DIR_OPTS = -m 755 + +CWD=$(shell pwd) + +# Options +LIBEBML_INCLUDE_DIR=$(CWD)/../../../libebml +LIBEBML_LIB_DIR=$(CWD)/../../../libebml/make/linux +EXTENSION=.cpp + +ifeq (yes,$(DEBUG)) +DEBUGFLAGS=-g -DDEBUG +endif + +ifeq (Darwin,$(shell uname -s)) +link=static +else +link=both +endif + +targets_both = staticlib sharedlib +targets_shared = sharedlib +targets_static = staticlib + +SRC_DIR=$(CWD)/../../src/ +INCLUDE_DIR=$(CWD)/../../matroska +MUX_SRC_DIR=$(CWD)/../../test/mux/ +TAG_SRC_DIR=$(CWD)/../../test/tags/ + +# Libraries +INCLUDE=-I$(CWD)/../.. -I$(LIBEBML_INCLUDE_DIR) +LIBS= +MUX_LIBS=-lmatroska -lebml $(LIBICONV) + +# Names +LIBRARY=libmatroska.a +LIBRARY_SO=libmatroska.so +LIBRARY_SO_VER=libmatroska.so.6 + +# source-files +sources:=$(wildcard ${SRC_DIR}*$(EXTENSION)) + +# header files; replace .cxx extension with .h +headers:=$(patsubst %$(EXTENSION),%.h,$(sources)) + +# object files; replace .cxx extension with .o +objects:=$(patsubst %$(EXTENSION),%.o,$(sources)) + +objects_so:=$(patsubst %$(EXTENSION),%.lo,$(sources)) + +WARNINGFLAGS=-Wall -Wextra -Wno-unknown-pragmas -D_GNU_SOURCE -Wshadow +COMPILEFLAGS=$(DEBUGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(WARNINGFLAGS) $(INCLUDE) +LINKFLAGS=-L. -L$(LIBEBML_LIB_DIR) $(LDFLAGS) +DEPENDFLAGS = $(CXXFLAGS) $(INCLUDE) + +all: $(targets_$(link)) + +staticlib: $(LIBRARY) + +sharedlib: $(LIBRARY_SO) + +lib: + @echo "Use the 'staticlib', 'sharedlib' or 'all' targets." + @false + +# Build rules +%.o: %$(EXTENSION) + $(CXX) -c $(COMPILEFLAGS) -o $@ $< + +%.lo: %$(EXTENSION) + $(CXX) -c $(COMPILEFLAGS) -fPIC -o $@ $< + +$(LIBRARY): $(objects) + $(AR) rcvu $@ $(objects) + $(RANLIB) $@ + +$(LIBRARY_SO): $(objects_so) + $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -lebml + rm -f $(LIBRARY_SO) + ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO) + +clean: cleantest + rm -f $(objects) $(objects_so) + rm -f $(LIBRARY) + rm -f $(LIBRARY_SO) + rm -f $(LIBRARY_SO_VER) + rm -f CORE + +cleantest: + rm -f test6 test8 test9 test6.o test8.o test9.o + +distclean dist-clean: clean + rm -f .depend + +depend: + @echo Calculating dependecies: + @rm -f .depend + @touch .depend + @for i in $(sources); do \ + o="`echo $$i | sed -e 's/\.c$$/.o/' -e 's/\.cpp$$/.o/'`" ; \ + echo ' ' $$i: $$o ; \ + $(CXX) $(DEPENDFLAGS) -MM -MT $$o $$i >> .depend ; \ + done + +test: test6 test9 + +test6: test6.o $(LIBRARY) $(LIBRARY_SO) + $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS) + +test6.o: $(MUX_SRC_DIR)test6.cpp + $(CXX) -c $(COMPILEFLAGS) -o $@ $< + +test8: test8.o $(LIBRARY) $(LIBRARY_SO) + $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS) + +test8.o: $(MUX_SRC_DIR)test8.cpp + $(CXX) -c $(COMPILEFLAGS) -o $@ $< + +test9: test9.o $(LIBRARY) $(LIBRARY_SO) + $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS) + +test9.o: $(TAG_SRC_DIR)test9.cpp + $(CXX) -c $(COMPILEFLAGS) -o $@ $< + +install: $(targets_$(link):%=install_%) install_headers + +install_headers: + $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(includedir) + for i in $(INCLUDE_DIR)/*.h; do \ + $(INSTALL) $(INSTALL_OPTS) $$i $(DESTDIR)$(includedir) ; \ + done + $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(includedir)/c + for i in $(INCLUDE_DIR)/c/*.h; do \ + $(INSTALL) $(INSTALL_OPTS) $$i $(DESTDIR)$(includedir)/c ; \ + done + +install_staticlib: $(LIBRARY) + $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(libdir) + $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY) $(DESTDIR)$(libdir) + +install_sharedlib: $(LIBRARY_SO) + $(INSTALL) $(INSTALL_DIR_OPTS) -d $(DESTDIR)$(libdir) + $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY_SO_VER) $(DESTDIR)$(libdir) + ln -fs $(LIBRARY_SO_VER) $(DESTDIR)$(libdir)/$(LIBRARY_SO) + +ifneq ($(wildcard .depend),) +include .depend +endif + +# DO NOT DELETE diff --git a/make/linux/Makefile.rule b/make/linux/Makefile.rule index 2b9b7e2..21c2b5a 100644 --- a/make/linux/Makefile.rule +++ b/make/linux/Makefile.rule @@ -1,98 +1,98 @@ -## -## This Makefile is made for cygwin, but might probably work on any standard UNIX too -## - -#**************************************************************************** - -# DEBUG can be set to YES to include debugging info, or NO otherwise -DEBUG = YES - -# PROFILE can be set to YES to include profiling info, or NO otherwise -PROFILE = NO - -#**************************************************************************** - -CC = gcc -CXX = g++ -LD = gcc -AR = ar rcvu -RANLIB = ranlib -DEPEND = makedepend -INDENT =indent --gnu-style -ut -ts6 -br -npsl -npcs -DELETE =rm -f - -GLOBAL_CFLAGS = -Wall -Wno-unknown-pragmas -Wno-format -DEBUG_CFLAGS = -g -O0 -DDEBUG ${GLOBAL_CFLAGS} -RELEASE_CFLAGS = -O2 ${GLOBAL_CFLAGS} - -P_OPTIONS = -pedantic - -LIBS = - -DEBUG_CXXFLAGS = ${DEBUG_CFLAGS} -RELEASE_CXXFLAGS = ${RELEASE_CFLAGS} - -DEBUG_LDFLAGS = -g -RELEASE_LDFLAGS = - -ifeq (YES, ${DEBUG}) - CFLAGS = ${DEBUG_CFLAGS} ${INCS} ${P_OPTIONS} - CXXFLAGS = ${DEBUG_CXXFLAGS} ${INCS} ${P_OPTIONS} - LDFLAGS = ${DEBUG_LDFLAGS} - DEPENDFLAGS = ${DEBUG_CFLAGS} ${INCS} -else - CFLAGS = ${RELEASE_CFLAGS} ${INCS} ${P_OPTIONS} - CXXFLAGS = ${RELEASE_CXXFLAGS} ${INCS} ${P_OPTIONS} - LDFLAGS = ${RELEASE_LDFLAGS} - DEPENDFLAGS = ${RELEASE_CFLAGS} ${INCS} -endif - -ifeq (YES, ${PROFILE}) - CFLAGS := ${CFLAGS} -pg - CXXFLAGS := ${CXXFLAGS} -pg - LDFLAGS := ${LDFLAGS} -pg -endif - -#**************************************************************************** -# Preprocessor directives -#**************************************************************************** - -ifeq (YES, ${PROFILE}) - DEFS = -else - DEFS = -endif - -#**************************************************************************** -# Include paths -#**************************************************************************** - -#INCS := -I/usr/include/g++-2 -I/usr/local/include -#INCS = - - -#**************************************************************************** -# Makefile code common to all platforms -#**************************************************************************** - -CFLAGS := ${CFLAGS} ${DEFS} -CXXFLAGS := ${CXXFLAGS} ${DEFS} - -#**************************************************************************** -# General rules -#**************************************************************************** - -indent: - $(INDENT) --line-length 100 ${SRCS} ${SRCS_HEADERS} - $(DELETE) *.*~ - -indent80: - $(INDENT) --line-length 80 ${SRCS} ${SRCS_HEADERS} - $(DELETE) *.*~ - -clean: - rm -f core *.o *.so *.a *.exe - -# what are the source dependencies -depend: $(SRCS) - $(DEPEND) $(DEPENDFLAGS) $(SRCS) +## +## This Makefile is made for cygwin, but might probably work on any standard UNIX too +## + +#**************************************************************************** + +# DEBUG can be set to YES to include debugging info, or NO otherwise +DEBUG = YES + +# PROFILE can be set to YES to include profiling info, or NO otherwise +PROFILE = NO + +#**************************************************************************** + +CC = gcc +CXX = g++ +LD = gcc +AR = ar rcvu +RANLIB = ranlib +DEPEND = makedepend +INDENT =indent --gnu-style -ut -ts6 -br -npsl -npcs +DELETE =rm -f + +GLOBAL_CFLAGS = -Wall -Wno-unknown-pragmas -Wno-format +DEBUG_CFLAGS = -g -O0 -DDEBUG ${GLOBAL_CFLAGS} +RELEASE_CFLAGS = -O2 ${GLOBAL_CFLAGS} + +P_OPTIONS = -pedantic + +LIBS = + +DEBUG_CXXFLAGS = ${DEBUG_CFLAGS} +RELEASE_CXXFLAGS = ${RELEASE_CFLAGS} + +DEBUG_LDFLAGS = -g +RELEASE_LDFLAGS = + +ifeq (YES, ${DEBUG}) + CFLAGS = ${DEBUG_CFLAGS} ${INCS} ${P_OPTIONS} + CXXFLAGS = ${DEBUG_CXXFLAGS} ${INCS} ${P_OPTIONS} + LDFLAGS = ${DEBUG_LDFLAGS} + DEPENDFLAGS = ${DEBUG_CFLAGS} ${INCS} +else + CFLAGS = ${RELEASE_CFLAGS} ${INCS} ${P_OPTIONS} + CXXFLAGS = ${RELEASE_CXXFLAGS} ${INCS} ${P_OPTIONS} + LDFLAGS = ${RELEASE_LDFLAGS} + DEPENDFLAGS = ${RELEASE_CFLAGS} ${INCS} +endif + +ifeq (YES, ${PROFILE}) + CFLAGS := ${CFLAGS} -pg + CXXFLAGS := ${CXXFLAGS} -pg + LDFLAGS := ${LDFLAGS} -pg +endif + +#**************************************************************************** +# Preprocessor directives +#**************************************************************************** + +ifeq (YES, ${PROFILE}) + DEFS = +else + DEFS = +endif + +#**************************************************************************** +# Include paths +#**************************************************************************** + +#INCS := -I/usr/include/g++-2 -I/usr/local/include +#INCS = + + +#**************************************************************************** +# Makefile code common to all platforms +#**************************************************************************** + +CFLAGS := ${CFLAGS} ${DEFS} +CXXFLAGS := ${CXXFLAGS} ${DEFS} + +#**************************************************************************** +# General rules +#**************************************************************************** + +indent: + $(INDENT) --line-length 100 ${SRCS} ${SRCS_HEADERS} + $(DELETE) *.*~ + +indent80: + $(INDENT) --line-length 80 ${SRCS} ${SRCS_HEADERS} + $(DELETE) *.*~ + +clean: + rm -f core *.o *.so *.a *.exe + +# what are the source dependencies +depend: $(SRCS) + $(DEPEND) $(DEPENDFLAGS) $(SRCS) diff --git a/make/linux/check_ids b/make/linux/check_ids index 26d27a9..30767fc 100644 --- a/make/linux/check_ids +++ b/make/linux/check_ids @@ -1,18 +1,18 @@ -#!/bin/sh - -# A small script that looks for duplicate EBML IDs in all of libmatroska's -# source files. - -echo 'Duplicate IDs:' -grep -h '^EbmlId.*_TheId' ../../src/*cpp | \ - sed -e 's/TheId/TheId /' | \ - awk '{ print $3 }' | \ - sed -e 's/(//' -e 's/,//' | \ - sort | \ - uniq -d | \ -( while read id ; do - echo '' - echo ${id}: - grep -i $id ../../src/*cpp - done ) - +#!/bin/sh + +# A small script that looks for duplicate EBML IDs in all of libmatroska's +# source files. + +echo 'Duplicate IDs:' +grep -h '^EbmlId.*_TheId' ../../src/*cpp | \ + sed -e 's/TheId/TheId /' | \ + awk '{ print $3 }' | \ + sed -e 's/(//' -e 's/,//' | \ + sort | \ + uniq -d | \ +( while read id ; do + echo '' + echo ${id}: + grep -i $id ../../src/*cpp + done ) + diff --git a/make/makedoc.sh b/make/makedoc.sh index 13f8571..6bdbdbc 100644 --- a/make/makedoc.sh +++ b/make/makedoc.sh @@ -1,7 +1,7 @@ -#!/usr/bin/sh -# you should have "doxygen" in your path -# http://www.doxygen.org/ - -echo make Documentation - -doxygen Doxyfile > Doxygen.log.txt 2> Doxygen.err.txt +#!/usr/bin/sh +# you should have "doxygen" in your path +# http://www.doxygen.org/ + +echo make Documentation + +doxygen Doxyfile > Doxygen.log.txt 2> Doxygen.err.txt diff --git a/matroska/FileKax.h b/matroska/FileKax.h index 3aa8ea8..af138e4 100644 --- a/matroska/FileKax.h +++ b/matroska/FileKax.h @@ -1,163 +1,163 @@ -/**************************************************************************** -** libmatroska : parse Matroska files, see http://www.matroska.org/ -** -** -** -** 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: FileKax.h,v 1.5 2004/04/14 23:26:17 robux4 Exp $ - \author Steve Lhomme -*/ -#ifndef LIBMATROSKA_FILE_H -#define LIBMATROSKA_FILE_H - -//#include - -#include "matroska/KaxTypes.h" -#include "ebml/IOCallback.h" -//#include "MainHeader.h" -//#include "TrackType.h" -//#include "StreamInfo.h" -//#include "Cluster.h" -//#include "CodecHeader.h" - -using namespace LIBEBML_NAMESPACE; - -START_LIBMATROSKA_NAMESPACE - -//class Track; -//class Frame; - -/*! - \class MATROSKA_DLL_API FileMatroska - \brief General container of all the parameters and data of an Matroska file - \todo Handle the filename and next filename - \todo Handle the IOCallback selection/type -*/ -class MATROSKA_DLL_API FileMatroska { - public: - FileMatroska(IOCallback & output); - ~FileMatroska(); -#ifdef OLD - filepos_t RenderHead(const std::string & aEncoderApp); - uint32 ReadHead(); - uint32 ReadTracks(); - uint32 ReadCodec(); - void Close(const uint32 aTimeLength); - - inline void type_SetInfo(const std::string & aStr) {myMainHeader.type_SetInfo(aStr);} - inline void type_SetAds(const std::string & aStr) {myMainHeader.type_SetAds(aStr);} - inline void type_SetSize(const std::string & aStr) {myMainHeader.type_SetSize(aStr);} - inline void type_SetSize(uint64 aSize) {myMainHeader.type_SetSize(aSize);} - - inline uint8 GetTrackNumber() const { return myTracks.size(); } - - void track_SetName(Track * aTrack, const std::string & aName); - void track_SetLaced(Track * aTrack, bool bLaced = true); - - Track * CreateTrack(const track_type aType); - inline Track * GetTrack(const uint8 aTrackNb) const - { - if (aTrackNb > myTracks.size()) - return NULL; - else - return myTracks[aTrackNb-1]; - } - - void Track_GetInfo(const Track * aTrack, TrackInfo & aTrackInfo) const; - - void Track_SetInfo_Audio(Track * aTrack, const TrackInfoAudio & aTrackInfo); - void Track_GetInfo_Audio(const Track * aTrack, TrackInfoAudio & aTrackInfo) const; - - void Track_SetInfo_Video(Track * aTrack, const TrackInfoVideo & aTrackInfo); - void Track_GetInfo_Video(const Track * aTrack, TrackInfoVideo & aTrackInfo) const; - - void SelectReadingTrack(Track * aTrack, bool select = true); - - /*! - \return wether the frame has been added or not - */ - bool AddFrame(Track * aTrack, const uint32 aTimecode, const binary *aFrame, const uint32 aFrameSize, - bool aKeyFrame = true, bool aBFrame = false); - - /*! - \return wether the frame has been read or not - */ - bool ReadFrame(Track * & aTrack, uint32 & aTimecode, const binary * & aFrame, uint32 & aFrameSize, - bool & aKeyFrame, bool & aBFrame); - - /* - Render the pending cluster to file - */ - void Flush(); - - void SetMaxClusterSize(const uint32 value); - void SetMinClusterSize(const uint32 value) {myMinClusterSize = value;} - - protected: - MainHeader myMainHeader; - - std::vector myTracks; - std::vector mySelectedTracks; - -// Track *findTrack(Track * aTrack) const; - - Cluster myCurrWriteCluster; /// \todo merge with the write one ? - uint32 myReadBlockNumber; - Cluster myCurrReadCluster; - binary * myCurrReadBlock; ///< The buffer containing the current read block - uint32 myCurrReadBlockSize; ///< The size of the buffer containing the current read block - uint8 myCurrReadBlockTrack; ///< The track number of the current track to read - - uint32 myMaxClusterSize; - uint32 myMinClusterSize; - - StreamInfo myStreamInfo; - - CodecHeader myCodecHeader; - - inline bool IsMyTrack(const Track * aTrack) const; - inline bool IsReadingTrack(const uint8 aTrackNum) const; -#endif // OLD - IOCallback & myFile; - -}; - -END_LIBMATROSKA_NAMESPACE - -#ifdef __cplusplus -extern "C" { -#endif - -MATROSKA_DLL_API void matroska_init(); -MATROSKA_DLL_API void matroska_done(); - -#ifdef __cplusplus -} -#endif - -#endif // FILE_KAX_HPP +/**************************************************************************** +** libmatroska : parse Matroska files, see http://www.matroska.org/ +** +** +** +** 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: FileKax.h,v 1.5 2004/04/14 23:26:17 robux4 Exp $ + \author Steve Lhomme +*/ +#ifndef LIBMATROSKA_FILE_H +#define LIBMATROSKA_FILE_H + +//#include + +#include "matroska/KaxTypes.h" +#include "ebml/IOCallback.h" +//#include "MainHeader.h" +//#include "TrackType.h" +//#include "StreamInfo.h" +//#include "Cluster.h" +//#include "CodecHeader.h" + +using namespace LIBEBML_NAMESPACE; + +START_LIBMATROSKA_NAMESPACE + +//class Track; +//class Frame; + +/*! + \class MATROSKA_DLL_API FileMatroska + \brief General container of all the parameters and data of an Matroska file + \todo Handle the filename and next filename + \todo Handle the IOCallback selection/type +*/ +class MATROSKA_DLL_API FileMatroska { + public: + FileMatroska(IOCallback & output); + ~FileMatroska(); +#ifdef OLD + filepos_t RenderHead(const std::string & aEncoderApp); + uint32 ReadHead(); + uint32 ReadTracks(); + uint32 ReadCodec(); + void Close(const uint32 aTimeLength); + + inline void type_SetInfo(const std::string & aStr) {myMainHeader.type_SetInfo(aStr);} + inline void type_SetAds(const std::string & aStr) {myMainHeader.type_SetAds(aStr);} + inline void type_SetSize(const std::string & aStr) {myMainHeader.type_SetSize(aStr);} + inline void type_SetSize(uint64 aSize) {myMainHeader.type_SetSize(aSize);} + + inline uint8 GetTrackNumber() const { return myTracks.size(); } + + void track_SetName(Track * aTrack, const std::string & aName); + void track_SetLaced(Track * aTrack, bool bLaced = true); + + Track * CreateTrack(const track_type aType); + inline Track * GetTrack(const uint8 aTrackNb) const + { + if (aTrackNb > myTracks.size()) + return NULL; + else + return myTracks[aTrackNb-1]; + } + + void Track_GetInfo(const Track * aTrack, TrackInfo & aTrackInfo) const; + + void Track_SetInfo_Audio(Track * aTrack, const TrackInfoAudio & aTrackInfo); + void Track_GetInfo_Audio(const Track * aTrack, TrackInfoAudio & aTrackInfo) const; + + void Track_SetInfo_Video(Track * aTrack, const TrackInfoVideo & aTrackInfo); + void Track_GetInfo_Video(const Track * aTrack, TrackInfoVideo & aTrackInfo) const; + + void SelectReadingTrack(Track * aTrack, bool select = true); + + /*! + \return wether the frame has been added or not + */ + bool AddFrame(Track * aTrack, const uint32 aTimecode, const binary *aFrame, const uint32 aFrameSize, + bool aKeyFrame = true, bool aBFrame = false); + + /*! + \return wether the frame has been read or not + */ + bool ReadFrame(Track * & aTrack, uint32 & aTimecode, const binary * & aFrame, uint32 & aFrameSize, + bool & aKeyFrame, bool & aBFrame); + + /* + Render the pending cluster to file + */ + void Flush(); + + void SetMaxClusterSize(const uint32 value); + void SetMinClusterSize(const uint32 value) {myMinClusterSize = value;} + + protected: + MainHeader myMainHeader; + + std::vector myTracks; + std::vector mySelectedTracks; + +// Track *findTrack(Track * aTrack) const; + + Cluster myCurrWriteCluster; /// \todo merge with the write one ? + uint32 myReadBlockNumber; + Cluster myCurrReadCluster; + binary * myCurrReadBlock; ///< The buffer containing the current read block + uint32 myCurrReadBlockSize; ///< The size of the buffer containing the current read block + uint8 myCurrReadBlockTrack; ///< The track number of the current track to read + + uint32 myMaxClusterSize; + uint32 myMinClusterSize; + + StreamInfo myStreamInfo; + + CodecHeader myCodecHeader; + + inline bool IsMyTrack(const Track * aTrack) const; + inline bool IsReadingTrack(const uint8 aTrackNum) const; +#endif // OLD + IOCallback & myFile; + +}; + +END_LIBMATROSKA_NAMESPACE + +#ifdef __cplusplus +extern "C" { +#endif + +MATROSKA_DLL_API void matroska_init(); +MATROSKA_DLL_API void matroska_done(); + +#ifdef __cplusplus +} +#endif + +#endif // FILE_KAX_HPP diff --git a/matroska/KaxConfig.h b/matroska/KaxConfig.h index b1b419a..7740b66 100644 --- a/matroska/KaxConfig.h +++ b/matroska/KaxConfig.h @@ -1,70 +1,70 @@ -/**************************************************************************** -** libmatroska : parse Matroska files, see http://www.matroska.org/ -** -** -** -** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved. -** -** This library is free software; you can redistribute it and/or -** modify it under the terms of the GNU Lesser General Public -** License as published by the Free Software Foundation; either -** version 2.1 of the License, or (at your option) any later version. -** -** This library is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -** Lesser General Public License for more details. -** -** You should have received a copy of the GNU Lesser General Public -** License along with this library; if not, write to the Free Software -** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -** -** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.** -** Contact license@matroska.org if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ - -/*! - \file - \version \$Id: KaxConfig.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $ - \author Steve Lhomme - \author Moritz Bunkus -*/ -#ifndef LIBMATROSKA_CONFIG_H -#define LIBMATROSKA_CONFIG_H - -#define LIBMATROSKA_NAMESPACE libmatroska - -#if defined(NO_NAMESPACE) // for older GCC -# define START_LIBMATROSKA_NAMESPACE -# define END_LIBMATROSKA_NAMESPACE -#else // NO_NAMESPACE -# define START_LIBMATROSKA_NAMESPACE namespace LIBMATROSKA_NAMESPACE { -# define END_LIBMATROSKA_NAMESPACE }; -#endif // NO_NAMESPACE - -// There are special implementations for certain platforms. For example on Windows -// we use the Win32 file API. here we set the appropriate macros. -#if defined(_WIN32)||defined(WIN32) - -# if defined(MATROSKA_DLL) -# if defined(MATROSKA_DLL_EXPORT) -# define MATROSKA_DLL_API __declspec(dllexport) -# else // MATROSKA_DLL_EXPORT -# define MATROSKA_DLL_API __declspec(dllimport) -# endif // MATROSKA_DLL_EXPORT -# else // MATROSKA_DLL -# define MATROSKA_DLL_API -# endif // MATROSKA_DLL - -#else -# define MATROSKA_DLL_API -#endif - -#if !defined(MATROSKA_VERSION) -#define MATROSKA_VERSION 2 -#endif // MATROSKA_VERSION - - -#endif // LIBMATROSKA_CONFIG_H +/**************************************************************************** +** libmatroska : parse Matroska files, see http://www.matroska.org/ +** +** +** +** Copyright (C) 2002-2010 Steve Lhomme. All rights reserved. +** +** This library is free software; you can redistribute it and/or +** modify it under the terms of the GNU Lesser General Public +** License as published by the Free Software Foundation; either +** version 2.1 of the License, or (at your option) any later version. +** +** This library is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** Lesser General Public License for more details. +** +** You should have received a copy of the GNU Lesser General Public +** License along with this library; if not, write to the Free Software +** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +** +** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.** +** Contact license@matroska.org if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +/*! + \file + \version \$Id: KaxConfig.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $ + \author Steve Lhomme + \author Moritz Bunkus +*/ +#ifndef LIBMATROSKA_CONFIG_H +#define LIBMATROSKA_CONFIG_H + +#define LIBMATROSKA_NAMESPACE libmatroska + +#if defined(NO_NAMESPACE) // for older GCC +# define START_LIBMATROSKA_NAMESPACE +# define END_LIBMATROSKA_NAMESPACE +#else // NO_NAMESPACE +# define START_LIBMATROSKA_NAMESPACE namespace LIBMATROSKA_NAMESPACE { +# define END_LIBMATROSKA_NAMESPACE }; +#endif // NO_NAMESPACE + +// There are special implementations for certain platforms. For example on Windows +// we use the Win32 file API. here we set the appropriate macros. +#if defined(_WIN32)||defined(WIN32) + +# if defined(MATROSKA_DLL) +# if defined(MATROSKA_DLL_EXPORT) +# define MATROSKA_DLL_API __declspec(dllexport) +# else // MATROSKA_DLL_EXPORT +# define MATROSKA_DLL_API __declspec(dllimport) +# endif // MATROSKA_DLL_EXPORT +# else // MATROSKA_DLL +# define MATROSKA_DLL_API +# endif // MATROSKA_DLL + +#else +# define MATROSKA_DLL_API +#endif + +#if !defined(MATROSKA_VERSION) +#define MATROSKA_VERSION 2 +#endif // MATROSKA_VERSION + + +#endif // LIBMATROSKA_CONFIG_H diff --git a/matroska/KaxSegment.h b/matroska/KaxSegment.h index 8eb1995..84423b9 100644 --- a/matroska/KaxSegment.h +++ b/matroska/KaxSegment.h @@ -1,62 +1,62 @@ -/**************************************************************************** -** libmatroska : parse Matroska files, see http://www.matroska.org/ -** -** -** -** 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: KaxSegment.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $ - \author Steve Lhomme -*/ -#ifndef LIBMATROSKA_SEGMENT_H -#define LIBMATROSKA_SEGMENT_H - -#include "matroska/KaxTypes.h" -#include "ebml/EbmlMaster.h" -#include "matroska/KaxDefines.h" - -using namespace LIBEBML_NAMESPACE; - -START_LIBMATROSKA_NAMESPACE - -DECLARE_MKX_MASTER_CONS(KaxSegment) - public: - /*! - \brief give the position of the element in the segment - */ - uint64 GetRelativePosition(const EbmlElement & Elt) const; - uint64 GetRelativePosition(uint64 aGlobalPosition) const; - - /*! - \brief give the position of the element in the file - */ - uint64 GetGlobalPosition(uint64 aRelativePosition) const; -}; - -END_LIBMATROSKA_NAMESPACE - -#endif // LIBMATROSKA_SEGMENT_H +/**************************************************************************** +** libmatroska : parse Matroska files, see http://www.matroska.org/ +** +** +** +** 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: KaxSegment.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $ + \author Steve Lhomme +*/ +#ifndef LIBMATROSKA_SEGMENT_H +#define LIBMATROSKA_SEGMENT_H + +#include "matroska/KaxTypes.h" +#include "ebml/EbmlMaster.h" +#include "matroska/KaxDefines.h" + +using namespace LIBEBML_NAMESPACE; + +START_LIBMATROSKA_NAMESPACE + +DECLARE_MKX_MASTER_CONS(KaxSegment) + public: + /*! + \brief give the position of the element in the segment + */ + uint64 GetRelativePosition(const EbmlElement & Elt) const; + uint64 GetRelativePosition(uint64 aGlobalPosition) const; + + /*! + \brief give the position of the element in the file + */ + uint64 GetGlobalPosition(uint64 aRelativePosition) const; +}; + +END_LIBMATROSKA_NAMESPACE + +#endif // LIBMATROSKA_SEGMENT_H diff --git a/matroska/KaxTypes.h b/matroska/KaxTypes.h index 4fbcb0b..0a90361 100644 --- a/matroska/KaxTypes.h +++ b/matroska/KaxTypes.h @@ -1,59 +1,59 @@ -/**************************************************************************** -** libmatroska : parse Matroska files, see http://www.matroska.org/ -** -** -** -** 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: KaxTypes.h,v 1.4 2004/04/14 23:26:17 robux4 Exp $ -*/ -#ifndef LIBMATROSKA_TYPES_H -#define LIBMATROSKA_TYPES_H - -#include "matroska/KaxConfig.h" -#include "ebml/EbmlTypes.h" -#include "matroska/c/libmatroska_t.h" - -START_LIBMATROSKA_NAMESPACE - -enum LacingType { - LACING_NONE = 0, - LACING_XIPH, - LACING_FIXED, - LACING_EBML, - LACING_AUTO -}; - -enum BlockBlobType { - BLOCK_BLOB_NO_SIMPLE = 0, - BLOCK_BLOB_SIMPLE_AUTO, - BLOCK_BLOB_ALWAYS_SIMPLE, -}; - -END_LIBMATROSKA_NAMESPACE - -#endif // LIBMATROSKA_TYPES_H +/**************************************************************************** +** libmatroska : parse Matroska files, see http://www.matroska.org/ +** +** +** +** 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: KaxTypes.h,v 1.4 2004/04/14 23:26:17 robux4 Exp $ +*/ +#ifndef LIBMATROSKA_TYPES_H +#define LIBMATROSKA_TYPES_H + +#include "matroska/KaxConfig.h" +#include "ebml/EbmlTypes.h" +#include "matroska/c/libmatroska_t.h" + +START_LIBMATROSKA_NAMESPACE + +enum LacingType { + LACING_NONE = 0, + LACING_XIPH, + LACING_FIXED, + LACING_EBML, + LACING_AUTO +}; + +enum BlockBlobType { + BLOCK_BLOB_NO_SIMPLE = 0, + BLOCK_BLOB_SIMPLE_AUTO, + BLOCK_BLOB_ALWAYS_SIMPLE, +}; + +END_LIBMATROSKA_NAMESPACE + +#endif // LIBMATROSKA_TYPES_H diff --git a/src/KaxSemantic.cpp b/src/KaxSemantic.cpp index 4b9563b..ab8d111 100644 --- a/src/KaxSemantic.cpp +++ b/src/KaxSemantic.cpp @@ -1,791 +1,791 @@ -/********************************************************************** -** DO NOT EDIT, GENERATED WITH DATA2LIB -** -** libmatroska : parse Matroska files, see http://www.matroska.org/ -** -** Copyright (c) 2002-2010, Matroska (non-profit organisation) -** 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. -** -**********************************************************************/ - -#include "matroska/KaxContexts.h" -#include "matroska/KaxSemantic.h" -#include "matroska/KaxSegment.h" -#include "matroska/KaxSeekHead.h" -#include "matroska/KaxCluster.h" -#include "matroska/KaxTracks.h" -#include "matroska/KaxCues.h" -#include "matroska/KaxInfoData.h" -#include "matroska/KaxBlockData.h" -#include "matroska/KaxCuesData.h" - -START_LIBMATROSKA_NAMESPACE - -DEFINE_START_SEMANTIC(KaxSegment) -DEFINE_SEMANTIC_ITEM(false, false, KaxSeekHead) -DEFINE_SEMANTIC_ITEM(true, false, KaxInfo) -DEFINE_SEMANTIC_ITEM(false, false, KaxCluster) -DEFINE_SEMANTIC_ITEM(false, false, KaxTracks) -DEFINE_SEMANTIC_ITEM(false, true, KaxCues) -DEFINE_SEMANTIC_ITEM(false, true, KaxAttachments) -DEFINE_SEMANTIC_ITEM(false, true, KaxChapters) -DEFINE_SEMANTIC_ITEM(false, false, KaxTags) -DEFINE_END_SEMANTIC(KaxSegment) - -DEFINE_MKX_MASTER_ORPHAN(KaxSegment, 0x18538067, 4, "Segment"); - -DEFINE_START_SEMANTIC(KaxSeekHead) -DEFINE_SEMANTIC_ITEM(true, false, KaxSeek) -DEFINE_END_SEMANTIC(KaxSeekHead) - -DEFINE_MKX_MASTER(KaxSeekHead, 0x114D9B74, 4, KaxSegment, "SeekHeader"); - -DEFINE_START_SEMANTIC(KaxSeek) -DEFINE_SEMANTIC_ITEM(true, true, KaxSeekID) -DEFINE_SEMANTIC_ITEM(true, true, KaxSeekPosition) -DEFINE_END_SEMANTIC(KaxSeek) - -DEFINE_MKX_MASTER(KaxSeek, 0x4DBB, 2, KaxSeekHead, "SeekPoint"); -DEFINE_MKX_BINARY (KaxSeekID, 0x53AB, 2, KaxSeek, "SeekID"); -DEFINE_MKX_UINTEGER(KaxSeekPosition, 0x53AC, 2, KaxSeek, "SeekPosition"); - -DEFINE_START_SEMANTIC(KaxInfo) -DEFINE_SEMANTIC_ITEM(false, true, KaxSegmentUID) -DEFINE_SEMANTIC_ITEM(false, true, KaxSegmentFilename) -DEFINE_SEMANTIC_ITEM(false, true, KaxPrevUID) -DEFINE_SEMANTIC_ITEM(false, true, KaxPrevFilename) -DEFINE_SEMANTIC_ITEM(false, true, KaxNextUID) -DEFINE_SEMANTIC_ITEM(false, true, KaxNextFilename) -DEFINE_SEMANTIC_ITEM(false, false, KaxSegmentFamily) -DEFINE_SEMANTIC_ITEM(false, false, KaxChapterTranslate) -DEFINE_SEMANTIC_ITEM(true, true, KaxTimecodeScale) -DEFINE_SEMANTIC_ITEM(false, true, KaxDuration) -DEFINE_SEMANTIC_ITEM(false, true, KaxDateUTC) -DEFINE_SEMANTIC_ITEM(false, true, KaxTitle) -DEFINE_SEMANTIC_ITEM(true, true, KaxMuxingApp) -DEFINE_SEMANTIC_ITEM(true, true, KaxWritingApp) -DEFINE_END_SEMANTIC(KaxInfo) - -DEFINE_MKX_MASTER(KaxInfo, 0x1549A966, 4, KaxSegment, "Info"); -DEFINE_MKX_BINARY (KaxSegmentUID, 0x73A4, 2, KaxInfo, "SegmentUID"); -DEFINE_MKX_UNISTRING(KaxSegmentFilename, 0x7384, 2, KaxInfo, "SegmentFilename"); -DEFINE_MKX_BINARY_CONS(KaxPrevUID, 0x3CB923, 3, KaxInfo, "PrevUID"); -DEFINE_MKX_UNISTRING(KaxPrevFilename, 0x3C83AB, 3, KaxInfo, "PrevFilename"); -DEFINE_MKX_BINARY_CONS(KaxNextUID, 0x3EB923, 3, KaxInfo, "NextUID"); -DEFINE_MKX_UNISTRING(KaxNextFilename, 0x3E83BB, 3, KaxInfo, "NextFilename"); -DEFINE_MKX_BINARY (KaxSegmentFamily, 0x4444, 2, KaxInfo, "SegmentFamily"); - -DEFINE_START_SEMANTIC(KaxChapterTranslate) -DEFINE_SEMANTIC_ITEM(false, false, KaxChapterTranslateEditionUID) -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTranslateCodec) -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTranslateID) -DEFINE_END_SEMANTIC(KaxChapterTranslate) - -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"); -DEFINE_MKX_UNISTRING(KaxMuxingApp, 0x4D80, 2, KaxInfo, "MuxingApp"); -DEFINE_MKX_UNISTRING(KaxWritingApp, 0x5741, 2, KaxInfo, "WritingApp"); - -DEFINE_START_SEMANTIC(KaxCluster) -DEFINE_SEMANTIC_ITEM(true, true, KaxClusterTimecode) -DEFINE_SEMANTIC_ITEM(false, true, KaxClusterSilentTracks) -DEFINE_SEMANTIC_ITEM(false, true, KaxClusterPosition) -DEFINE_SEMANTIC_ITEM(false, true, KaxClusterPrevSize) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, false, KaxSimpleBlock) -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(false, false, KaxBlockGroup) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, false, KaxEncryptedBlock) // not supported -#endif // MATROSKA_VERSION -DEFINE_END_SEMANTIC(KaxCluster) - -DEFINE_MKX_MASTER_CONS(KaxCluster, 0x1F43B675, 4, KaxSegment, "Cluster"); -DEFINE_MKX_UINTEGER(KaxClusterTimecode, 0xE7, 1, KaxCluster, "ClusterTimecode"); - -DEFINE_START_SEMANTIC(KaxClusterSilentTracks) -DEFINE_SEMANTIC_ITEM(false, false, KaxClusterSilentTrackNumber) -DEFINE_END_SEMANTIC(KaxClusterSilentTracks) - -DEFINE_MKX_MASTER(KaxClusterSilentTracks, 0x5854, 2, KaxCluster, "ClusterSilentTracks"); -DEFINE_MKX_UINTEGER(KaxClusterSilentTrackNumber, 0x58D7, 2, KaxClusterSilentTracks, "ClusterSilentTrackNumber"); -DEFINE_MKX_UINTEGER(KaxClusterPosition, 0xA7, 1, KaxCluster, "ClusterPosition"); -DEFINE_MKX_UINTEGER(KaxClusterPrevSize, 0xAB, 1, KaxCluster, "ClusterPrevSize"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_BINARY_CONS(KaxSimpleBlock, 0xA3, 1, KaxCluster, "SimpleBlock"); -#endif - -DEFINE_START_SEMANTIC(KaxBlockGroup) -DEFINE_SEMANTIC_ITEM(true, true, KaxBlock) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxBlockVirtual) // not supported -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(false, true, KaxBlockAdditions) -DEFINE_SEMANTIC_ITEM(false, true, KaxBlockDuration) -DEFINE_SEMANTIC_ITEM(true, true, KaxReferencePriority) -DEFINE_SEMANTIC_ITEM(false, false, KaxReferenceBlock) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxReferenceVirtual) // not supported -DEFINE_SEMANTIC_ITEM(false, true, KaxCodecState) -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(false, true, KaxSlices) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxReferenceFrame) // DivX specific -#endif // MATROSKA_VERSION -DEFINE_END_SEMANTIC(KaxBlockGroup) - -DEFINE_MKX_MASTER_CONS(KaxBlockGroup, 0xA0, 1, KaxCluster, "BlockGroup"); -DEFINE_MKX_BINARY_CONS(KaxBlock, 0xA1, 1, KaxBlockGroup, "Block"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_BINARY_CONS(KaxBlockVirtual, 0xA2, 1, KaxBlockGroup, "BlockVirtual"); -#endif - -DEFINE_START_SEMANTIC(KaxBlockAdditions) -DEFINE_SEMANTIC_ITEM(true, false, KaxBlockMore) -DEFINE_END_SEMANTIC(KaxBlockAdditions) - -DEFINE_MKX_MASTER(KaxBlockAdditions, 0x75A1, 2, KaxBlockGroup, "BlockAdditions"); - -DEFINE_START_SEMANTIC(KaxBlockMore) -DEFINE_SEMANTIC_ITEM(true, true, KaxBlockAddID) -DEFINE_SEMANTIC_ITEM(true, true, KaxBlockAdditional) -DEFINE_END_SEMANTIC(KaxBlockMore) - -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"); -DEFINE_MKX_UINTEGER(KaxBlockDuration, 0x9B, 1, KaxBlockGroup, "BlockDuration"); -DEFINE_MKX_UINTEGER_DEF(KaxReferencePriority, 0xFA, 1, KaxBlockGroup, "FlagReferenced", 0); -DEFINE_MKX_SINTEGER_CONS(KaxReferenceBlock, 0xFB, 1, KaxBlockGroup, "ReferenceBlock"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_SINTEGER(KaxReferenceVirtual, 0xFD, 1, KaxBlockGroup, "ReferenceVirtual"); -DEFINE_MKX_BINARY (KaxCodecState, 0xA4, 1, KaxBlockGroup, "CodecState"); -#endif - -DEFINE_START_SEMANTIC(KaxSlices) -DEFINE_SEMANTIC_ITEM(false, false, KaxTimeSlice) -DEFINE_END_SEMANTIC(KaxSlices) - -DEFINE_MKX_MASTER(KaxSlices, 0x8E, 1, KaxBlockGroup, "Slices"); - -DEFINE_START_SEMANTIC(KaxTimeSlice) -DEFINE_SEMANTIC_ITEM(false, true, KaxSliceLaceNumber) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxSliceFrameNumber) // not supported -DEFINE_SEMANTIC_ITEM(false, true, KaxSliceBlockAddID) // not supported -DEFINE_SEMANTIC_ITEM(false, true, KaxSliceDelay) // not supported -DEFINE_SEMANTIC_ITEM(false, true, KaxSliceDuration) // not supported -#endif // MATROSKA_VERSION -DEFINE_END_SEMANTIC(KaxTimeSlice) - -DEFINE_MKX_MASTER(KaxTimeSlice, 0xE8, 1, KaxSlices, "TimeSlice"); -DEFINE_MKX_UINTEGER_DEF(KaxSliceLaceNumber, 0xCC, 1, KaxTimeSlice, "SliceLaceNumber", 0); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_UINTEGER_DEF(KaxSliceFrameNumber, 0xCD, 1, KaxTimeSlice, "SliceFrameNumber", 0); -DEFINE_MKX_UINTEGER_DEF(KaxSliceBlockAddID, 0xCB, 1, KaxTimeSlice, "SliceBlockAddID", 0); -DEFINE_MKX_UINTEGER_DEF(KaxSliceDelay, 0xCE, 1, KaxTimeSlice, "SliceDelay", 0); -DEFINE_MKX_UINTEGER_DEF(KaxSliceDuration, 0xCF, 1, KaxTimeSlice, "SliceDuration", 0); - -DEFINE_START_SEMANTIC(KaxReferenceFrame) -DEFINE_SEMANTIC_ITEM(true, true, KaxReferenceOffset) // DivX specific -DEFINE_SEMANTIC_ITEM(true, true, KaxReferenceTimeCode) // DivX specific -DEFINE_END_SEMANTIC(KaxReferenceFrame) - -DEFINE_MKX_MASTER(KaxReferenceFrame, 0xC8, 1, KaxBlockGroup, "ReferenceFrame"); -DEFINE_MKX_UINTEGER(KaxReferenceOffset, 0xC9, 1, KaxReferenceFrame, "ReferenceOffset"); -DEFINE_MKX_UINTEGER(KaxReferenceTimeCode, 0xCA, 1, KaxReferenceFrame, "ReferenceTimeCode"); -DEFINE_MKX_BINARY (KaxEncryptedBlock, 0xAF, 1, KaxCluster, "EncryptedBlock"); -#endif - -DEFINE_START_SEMANTIC(KaxTracks) -DEFINE_SEMANTIC_ITEM(true, false, KaxTrackEntry) -DEFINE_END_SEMANTIC(KaxTracks) - -DEFINE_MKX_MASTER(KaxTracks, 0x1654AE6B, 4, KaxSegment, "Tracks"); - -DEFINE_START_SEMANTIC(KaxTrackEntry) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackNumber) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackUID) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackType) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagEnabled) -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagDefault) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagForced) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagLacing) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackMinCache) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackMaxCache) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackDefaultDuration) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackDefaultDecodedFieldDuration) -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTimecodeScale) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackOffset) // not supported -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(true, true, KaxMaxBlockAdditionID) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackName) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackLanguage) -DEFINE_SEMANTIC_ITEM(true, true, KaxCodecID) -DEFINE_SEMANTIC_ITEM(false, true, KaxCodecPrivate) -DEFINE_SEMANTIC_ITEM(false, true, KaxCodecName) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackAttachmentLink) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxCodecSettings) // not supported -DEFINE_SEMANTIC_ITEM(false, false, KaxCodecInfoURL) // not supported -DEFINE_SEMANTIC_ITEM(false, false, KaxCodecDownloadURL) // not supported -DEFINE_SEMANTIC_ITEM(true, true, KaxCodecDecodeAll) -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(false, false, KaxTrackOverlay) -DEFINE_SEMANTIC_ITEM(false, false, KaxTrackTranslate) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackVideo) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackAudio) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackOperation) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrickTrackUID) // DivX specific -DEFINE_SEMANTIC_ITEM(false, true, KaxTrickTrackSegmentUID) // DivX specific -DEFINE_SEMANTIC_ITEM(false, true, KaxTrickTrackFlag) // DivX specific -DEFINE_SEMANTIC_ITEM(false, true, KaxTrickMasterTrackUID) // DivX specific -DEFINE_SEMANTIC_ITEM(false, true, KaxTrickMasterTrackSegmentUID) // DivX specific -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncodings) -DEFINE_END_SEMANTIC(KaxTrackEntry) - -DEFINE_MKX_MASTER_CONS(KaxTrackEntry, 0xAE, 1, KaxTracks, "TrackEntry"); -DEFINE_MKX_UINTEGER(KaxTrackNumber, 0xD7, 1, KaxTrackEntry, "TrackNumber"); -DEFINE_MKX_UINTEGER(KaxTrackUID, 0x73C5, 2, KaxTrackEntry, "TrackUID"); -DEFINE_MKX_UINTEGER(KaxTrackType, 0x83, 1, KaxTrackEntry, "TrackType"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagEnabled, 0xB9, 1, KaxTrackEntry, "TrackFlagEnabled", 1); -#endif -DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagDefault, 0x88, 1, KaxTrackEntry, "TrackFlagDefault", 1); -DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagForced, 0x55AA, 2, KaxTrackEntry, "TrackFlagForced", 0); -DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagLacing, 0x9C, 1, KaxTrackEntry, "TrackFlagLacing", 1); -DEFINE_MKX_UINTEGER_DEF(KaxTrackMinCache, 0x6DE7, 2, KaxTrackEntry, "TrackMinCache", 0); -DEFINE_MKX_UINTEGER(KaxTrackMaxCache, 0x6DF8, 2, KaxTrackEntry, "TrackMaxCache"); -DEFINE_MKX_UINTEGER(KaxTrackDefaultDuration, 0x23E383, 3, KaxTrackEntry, "TrackDefaultDuration"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_UINTEGER(KaxTrackDefaultDecodedFieldDuration, 0x234E7A, 3, KaxTrackEntry, "TrackDefaultDecodedFieldDuration"); -#endif -DEFINE_MKX_FLOAT_DEF(KaxTrackTimecodeScale, 0x23314F, 3, KaxTrackEntry, "TrackTimecodeScale", 1); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_SINTEGER_DEF(KaxTrackOffset, 0x537F, 2, KaxTrackEntry, "TrackOffset", 0); -#endif -DEFINE_MKX_UINTEGER_DEF(KaxMaxBlockAdditionID, 0x55EE, 2, KaxTrackEntry, "MaxBlockAdditionID", 0); -DEFINE_MKX_UNISTRING(KaxTrackName, 0x536E, 2, KaxTrackEntry, "TrackName"); -DEFINE_MKX_STRING_DEF(KaxTrackLanguage, 0x22B59C, 3, KaxTrackEntry, "TrackLanguage", "eng"); -DEFINE_MKX_STRING(KaxCodecID, 0x86, 1, KaxTrackEntry, "CodecID"); -DEFINE_MKX_BINARY (KaxCodecPrivate, 0x63A2, 2, KaxTrackEntry, "CodecPrivate"); -DEFINE_MKX_UNISTRING(KaxCodecName, 0x258688, 3, KaxTrackEntry, "CodecName"); -DEFINE_MKX_UINTEGER(KaxTrackAttachmentLink, 0x7446, 2, KaxTrackEntry, "TrackAttachmentLink"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_UNISTRING(KaxCodecSettings, 0x3A9697, 3, KaxTrackEntry, "CodecSettings"); -DEFINE_MKX_STRING(KaxCodecInfoURL, 0x3B4040, 3, KaxTrackEntry, "CodecInfoURL"); -DEFINE_MKX_STRING(KaxCodecDownloadURL, 0x26B240, 3, KaxTrackEntry, "CodecDownloadURL"); -DEFINE_MKX_UINTEGER_DEF(KaxCodecDecodeAll, 0xAA, 1, KaxTrackEntry, "CodecDecodeAll", 1); -#endif -DEFINE_MKX_UINTEGER(KaxTrackOverlay, 0x6FAB, 2, KaxTrackEntry, "TrackOverlay"); - -DEFINE_START_SEMANTIC(KaxTrackTranslate) -DEFINE_SEMANTIC_ITEM(false, false, KaxTrackTranslateEditionUID) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTranslateCodec) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTranslateTrackID) -DEFINE_END_SEMANTIC(KaxTrackTranslate) - -DEFINE_MKX_MASTER(KaxTrackTranslate, 0x6624, 2, KaxTrackEntry, "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_START_SEMANTIC(KaxTrackVideo) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(true, true, KaxVideoFlagInterlaced) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoStereoMode) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoAlphaMode) -DEFINE_SEMANTIC_ITEM(false, true, KaxOldStereoMode) // not supported -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(true, true, KaxVideoPixelWidth) -DEFINE_SEMANTIC_ITEM(true, true, KaxVideoPixelHeight) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropBottom) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropTop) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropLeft) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropRight) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayWidth) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayHeight) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayUnit) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoAspectRatio) -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoColourSpace) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoGamma) // not supported -DEFINE_SEMANTIC_ITEM(false, true, KaxVideoFrameRate) // not supported -#endif // MATROSKA_VERSION -DEFINE_END_SEMANTIC(KaxTrackVideo) - -DEFINE_MKX_MASTER(KaxTrackVideo, 0xE0, 1, KaxTrackEntry, "TrackVideo"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_UINTEGER_DEF(KaxVideoFlagInterlaced, 0x9A, 1, KaxTrackVideo, "VideoFlagInterlaced", 0); -DEFINE_MKX_UINTEGER_DEF(KaxVideoStereoMode, 0x53B8, 2, KaxTrackVideo, "VideoStereoMode", 0); -DEFINE_MKX_UINTEGER_DEF(KaxVideoAlphaMode, 0x53C0, 2, KaxTrackVideo, "VideoAlphaMode", 0); -DEFINE_MKX_UINTEGER(KaxOldStereoMode, 0x53B9, 2, KaxTrackVideo, "OldStereoMode"); -#endif -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_UINTEGER_DEF(KaxVideoDisplayUnit, 0x54B2, 2, KaxTrackVideo, "VideoDisplayUnit", 0); -DEFINE_MKX_UINTEGER_DEF(KaxVideoAspectRatio, 0x54B3, 2, KaxTrackVideo, "VideoAspectRatio", 0); -DEFINE_MKX_BINARY (KaxVideoColourSpace, 0x2EB524, 3, KaxTrackVideo, "VideoColourSpace"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_FLOAT(KaxVideoGamma, 0x2FB523, 3, KaxTrackVideo, "VideoGamma"); -DEFINE_MKX_FLOAT(KaxVideoFrameRate, 0x2383E3, 3, KaxTrackVideo, "VideoFrameRate"); -#endif - -DEFINE_START_SEMANTIC(KaxTrackAudio) -DEFINE_SEMANTIC_ITEM(true, true, KaxAudioSamplingFreq) -DEFINE_SEMANTIC_ITEM(false, true, KaxAudioOutputSamplingFreq) -DEFINE_SEMANTIC_ITEM(true, true, KaxAudioChannels) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxAudioPosition) // not supported -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(false, true, KaxAudioBitDepth) -DEFINE_END_SEMANTIC(KaxTrackAudio) - -DEFINE_MKX_MASTER(KaxTrackAudio, 0xE1, 1, KaxTrackEntry, "TrackAudio"); -DEFINE_MKX_FLOAT_DEF(KaxAudioSamplingFreq, 0xB5, 1, KaxTrackAudio, "AudioSamplingFreq", 8000); -DEFINE_MKX_FLOAT(KaxAudioOutputSamplingFreq, 0x78B5, 2, KaxTrackAudio, "AudioOutputSamplingFreq"); -DEFINE_MKX_UINTEGER_DEF(KaxAudioChannels, 0x9F, 1, KaxTrackAudio, "AudioChannels", 1); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_BINARY (KaxAudioPosition, 0x7D7B, 2, KaxTrackAudio, "AudioPosition"); -#endif -DEFINE_MKX_UINTEGER(KaxAudioBitDepth, 0x6264, 2, KaxTrackAudio, "AudioBitDepth"); -#if MATROSKA_VERSION >= 2 - -DEFINE_START_SEMANTIC(KaxTrackOperation) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackCombinePlanes) -DEFINE_SEMANTIC_ITEM(false, true, KaxTrackJoinBlocks) -DEFINE_END_SEMANTIC(KaxTrackOperation) - -DEFINE_MKX_MASTER(KaxTrackOperation, 0xE2, 1, KaxTrackEntry, "TrackOperation"); - -DEFINE_START_SEMANTIC(KaxTrackCombinePlanes) -DEFINE_SEMANTIC_ITEM(true, false, KaxTrackPlane) -DEFINE_END_SEMANTIC(KaxTrackCombinePlanes) - -DEFINE_MKX_MASTER(KaxTrackCombinePlanes, 0xE3, 1, KaxTrackOperation, "TrackCombinePlanes"); - -DEFINE_START_SEMANTIC(KaxTrackPlane) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackPlaneUID) -DEFINE_SEMANTIC_ITEM(true, true, KaxTrackPlaneType) -DEFINE_END_SEMANTIC(KaxTrackPlane) - -DEFINE_MKX_MASTER(KaxTrackPlane, 0xE4, 1, KaxTrackCombinePlanes, "TrackPlane"); -DEFINE_MKX_UINTEGER(KaxTrackPlaneUID, 0xE5, 1, KaxTrackPlane, "TrackPlaneUID"); -DEFINE_MKX_UINTEGER(KaxTrackPlaneType, 0xE6, 1, KaxTrackPlane, "TrackPlaneType"); - -DEFINE_START_SEMANTIC(KaxTrackJoinBlocks) -DEFINE_SEMANTIC_ITEM(true, false, KaxTrackJoinUID) -DEFINE_END_SEMANTIC(KaxTrackJoinBlocks) - -DEFINE_MKX_MASTER(KaxTrackJoinBlocks, 0xE9, 1, KaxTrackOperation, "TrackJoinBlocks"); -DEFINE_MKX_UINTEGER(KaxTrackJoinUID, 0xED, 1, KaxTrackJoinBlocks, "TrackJoinUID"); -DEFINE_MKX_UINTEGER(KaxTrickTrackUID, 0xC0, 1, KaxTrackEntry, "TrickTrackUID"); -DEFINE_MKX_BINARY (KaxTrickTrackSegmentUID, 0xC1, 1, KaxTrackEntry, "TrickTrackSegmentUID"); -DEFINE_MKX_UINTEGER_DEF(KaxTrickTrackFlag, 0xC6, 1, KaxTrackEntry, "TrickTrackFlag", 0); -DEFINE_MKX_UINTEGER(KaxTrickMasterTrackUID, 0xC7, 1, KaxTrackEntry, "TrickMasterTrackUID"); -DEFINE_MKX_BINARY (KaxTrickMasterTrackSegmentUID, 0xC4, 1, KaxTrackEntry, "TrickMasterTrackSegmentUID"); -#endif - -DEFINE_START_SEMANTIC(KaxContentEncodings) -DEFINE_SEMANTIC_ITEM(true, false, KaxContentEncoding) -DEFINE_END_SEMANTIC(KaxContentEncodings) - -DEFINE_MKX_MASTER(KaxContentEncodings, 0x6D80, 2, KaxTrackEntry, "ContentEncodings"); - -DEFINE_START_SEMANTIC(KaxContentEncoding) -DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingOrder) -DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingScope) -DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingType) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentCompression) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncryption) -DEFINE_END_SEMANTIC(KaxContentEncoding) - -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_START_SEMANTIC(KaxContentCompression) -DEFINE_SEMANTIC_ITEM(true, true, KaxContentCompAlgo) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentCompSettings) -DEFINE_END_SEMANTIC(KaxContentCompression) - -DEFINE_MKX_MASTER(KaxContentCompression, 0x5034, 2, KaxContentEncoding, "ContentCompression"); -DEFINE_MKX_UINTEGER_DEF(KaxContentCompAlgo, 0x4254, 2, KaxContentCompression, "ContentCompAlgo", 0); -DEFINE_MKX_BINARY (KaxContentCompSettings, 0x4255, 2, KaxContentCompression, "ContentCompSettings"); - -DEFINE_START_SEMANTIC(KaxContentEncryption) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncAlgo) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncKeyID) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentSignature) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigKeyID) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigAlgo) -DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigHashAlgo) -DEFINE_END_SEMANTIC(KaxContentEncryption) - -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); - -DEFINE_START_SEMANTIC(KaxCues) -DEFINE_SEMANTIC_ITEM(true, false, KaxCuePoint) -DEFINE_END_SEMANTIC(KaxCues) - -DEFINE_MKX_MASTER(KaxCues, 0x1C53BB6B, 4, KaxSegment, "Cues"); - -DEFINE_START_SEMANTIC(KaxCuePoint) -DEFINE_SEMANTIC_ITEM(true, true, KaxCueTime) -DEFINE_SEMANTIC_ITEM(true, false, KaxCueTrackPositions) -DEFINE_END_SEMANTIC(KaxCuePoint) - -DEFINE_MKX_MASTER(KaxCuePoint, 0xBB, 1, KaxCues, "CuePoint"); -DEFINE_MKX_UINTEGER(KaxCueTime, 0xB3, 1, KaxCuePoint, "CueTime"); - -DEFINE_START_SEMANTIC(KaxCueTrackPositions) -DEFINE_SEMANTIC_ITEM(true, true, KaxCueTrack) -DEFINE_SEMANTIC_ITEM(true, true, KaxCueClusterPosition) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxCueRelativePosition) -DEFINE_SEMANTIC_ITEM(false, true, KaxCueDuration) -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(false, true, KaxCueBlockNumber) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxCueCodecState) -DEFINE_SEMANTIC_ITEM(false, false, KaxCueReference) -#endif // MATROSKA_VERSION -DEFINE_END_SEMANTIC(KaxCueTrackPositions) - -DEFINE_MKX_MASTER(KaxCueTrackPositions, 0xB7, 1, KaxCuePoint, "CueTrackPositions"); -DEFINE_MKX_UINTEGER(KaxCueTrack, 0xF7, 1, KaxCueTrackPositions, "CueTrack"); -DEFINE_MKX_UINTEGER(KaxCueClusterPosition, 0xF1, 1, KaxCueTrackPositions, "CueClusterPosition"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_UINTEGER(KaxCueRelativePosition, 0xF0, 1, KaxCueTrackPositions, "CueRelativePosition"); -DEFINE_MKX_UINTEGER(KaxCueDuration, 0xB2, 1, KaxCueTrackPositions, "CueDuration"); -#endif -DEFINE_MKX_UINTEGER_DEF(KaxCueBlockNumber, 0x5378, 2, KaxCueTrackPositions, "CueBlockNumber", 1); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_UINTEGER_DEF(KaxCueCodecState, 0xEA, 1, KaxCueTrackPositions, "CueCodecState", 0); - -DEFINE_START_SEMANTIC(KaxCueReference) -DEFINE_SEMANTIC_ITEM(true, true, KaxCueRefTime) -DEFINE_SEMANTIC_ITEM(true, true, KaxCueRefCluster) // not supported -DEFINE_SEMANTIC_ITEM(false, true, KaxCueRefNumber) // not supported -DEFINE_SEMANTIC_ITEM(false, true, KaxCueRefCodecState) // not supported -DEFINE_END_SEMANTIC(KaxCueReference) - -DEFINE_MKX_MASTER(KaxCueReference, 0xDB, 1, KaxCueTrackPositions, "CueReference"); -DEFINE_MKX_UINTEGER(KaxCueRefTime, 0x96, 1, KaxCueReference, "CueRefTime"); -DEFINE_MKX_UINTEGER(KaxCueRefCluster, 0x97, 1, KaxCueReference, "CueRefCluster"); -DEFINE_MKX_UINTEGER_DEF(KaxCueRefNumber, 0x535F, 2, KaxCueReference, "CueRefNumber", 1); -DEFINE_MKX_UINTEGER_DEF(KaxCueRefCodecState, 0xEB, 1, KaxCueReference, "CueRefCodecState", 0); -#endif - -DEFINE_START_SEMANTIC(KaxAttachments) -DEFINE_SEMANTIC_ITEM(true, false, KaxAttached) -DEFINE_END_SEMANTIC(KaxAttachments) - -DEFINE_MKX_MASTER_CONS(KaxAttachments, 0x1941A469, 4, KaxSegment, "Attachments"); - -DEFINE_START_SEMANTIC(KaxAttached) -DEFINE_SEMANTIC_ITEM(false, true, KaxFileDescription) -DEFINE_SEMANTIC_ITEM(true, true, KaxFileName) -DEFINE_SEMANTIC_ITEM(true, true, KaxMimeType) -DEFINE_SEMANTIC_ITEM(true, true, KaxFileData) -DEFINE_SEMANTIC_ITEM(true, true, KaxFileUID) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxFileReferral) // not supported -DEFINE_SEMANTIC_ITEM(false, true, KaxFileUsedStartTime) // DivX specific -DEFINE_SEMANTIC_ITEM(false, true, KaxFileUsedEndTime) // DivX specific -#endif // MATROSKA_VERSION -DEFINE_END_SEMANTIC(KaxAttached) - -DEFINE_MKX_MASTER_CONS(KaxAttached, 0x61A7, 2, KaxAttachments, "AttachedFile"); -DEFINE_MKX_UNISTRING(KaxFileDescription, 0x467E, 2, KaxAttached, "FileDescription"); -DEFINE_MKX_UNISTRING(KaxFileName, 0x466E, 2, KaxAttached, "FileName"); -DEFINE_MKX_STRING(KaxMimeType, 0x4660, 2, KaxAttached, "FileMimeType"); -DEFINE_MKX_BINARY (KaxFileData, 0x465C, 2, KaxAttached, "FileData"); -DEFINE_MKX_UINTEGER(KaxFileUID, 0x46AE, 2, KaxAttached, "FileUID"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_BINARY (KaxFileReferral, 0x4675, 2, KaxAttached, "FileReferral"); -DEFINE_MKX_UINTEGER(KaxFileUsedStartTime, 0x4661, 2, KaxAttached, "FileUsedStartTime"); -DEFINE_MKX_UINTEGER(KaxFileUsedEndTime, 0x4662, 2, KaxAttached, "FileUsedEndTime"); -#endif - -DEFINE_START_SEMANTIC(KaxChapters) -DEFINE_SEMANTIC_ITEM(true, false, KaxEditionEntry) -DEFINE_END_SEMANTIC(KaxChapters) - -DEFINE_MKX_MASTER(KaxChapters, 0x1043A770, 4, KaxSegment, "Chapters"); - -DEFINE_START_SEMANTIC(KaxEditionEntry) -DEFINE_SEMANTIC_ITEM(false, true, KaxEditionUID) -DEFINE_SEMANTIC_ITEM(true, true, KaxEditionFlagHidden) -DEFINE_SEMANTIC_ITEM(true, true, KaxEditionFlagDefault) -DEFINE_SEMANTIC_ITEM(false, true, KaxEditionFlagOrdered) -DEFINE_SEMANTIC_ITEM(true, false, KaxChapterAtom) -DEFINE_END_SEMANTIC(KaxEditionEntry) - -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_START_SEMANTIC(KaxChapterAtom) -DEFINE_SEMANTIC_ITEM(false, false, KaxChapterAtom) // recursive -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterUID) -#if MATROSKA_VERSION >= 2 -DEFINE_SEMANTIC_ITEM(false, true, KaxChapterStringUID) -#endif // MATROSKA_VERSION -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTimeStart) -DEFINE_SEMANTIC_ITEM(false, true, KaxChapterTimeEnd) -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterFlagHidden) -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterFlagEnabled) -DEFINE_SEMANTIC_ITEM(false, true, KaxChapterSegmentUID) -DEFINE_SEMANTIC_ITEM(false, true, KaxChapterSegmentEditionUID) -DEFINE_SEMANTIC_ITEM(false, true, KaxChapterPhysicalEquiv) -DEFINE_SEMANTIC_ITEM(false, true, KaxChapterTrack) -DEFINE_SEMANTIC_ITEM(false, false, KaxChapterDisplay) -DEFINE_SEMANTIC_ITEM(false, false, KaxChapterProcess) -DEFINE_END_SEMANTIC(KaxChapterAtom) - -DEFINE_MKX_MASTER(KaxChapterAtom, 0xB6, 1, KaxEditionEntry, "ChapterAtom"); -DEFINE_MKX_UINTEGER(KaxChapterUID, 0x73C4, 2, KaxChapterAtom, "ChapterUID"); -#if MATROSKA_VERSION >= 2 -DEFINE_MKX_UNISTRING(KaxChapterStringUID, 0x5654, 2, KaxChapterAtom, "ChapterStringUID"); -#endif -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_UINTEGER(KaxChapterSegmentEditionUID, 0x6EBC, 2, KaxChapterAtom, "ChapterSegmentEditionUID"); -DEFINE_MKX_UINTEGER(KaxChapterPhysicalEquiv, 0x63C3, 2, KaxChapterAtom, "ChapterPhysicalEquiv"); - -DEFINE_START_SEMANTIC(KaxChapterTrack) -DEFINE_SEMANTIC_ITEM(true, false, KaxChapterTrackNumber) -DEFINE_END_SEMANTIC(KaxChapterTrack) - -DEFINE_MKX_MASTER(KaxChapterTrack, 0x8F, 1, KaxChapterAtom, "ChapterTrack"); -DEFINE_MKX_UINTEGER(KaxChapterTrackNumber, 0x89, 1, KaxChapterTrack, "ChapterTrackNumber"); - -DEFINE_START_SEMANTIC(KaxChapterDisplay) -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterString) -DEFINE_SEMANTIC_ITEM(true, false, KaxChapterLanguage) -DEFINE_SEMANTIC_ITEM(false, false, KaxChapterCountry) -DEFINE_END_SEMANTIC(KaxChapterDisplay) - -DEFINE_MKX_MASTER(KaxChapterDisplay, 0x80, 1, KaxChapterAtom, "ChapterDisplay"); -DEFINE_MKX_UNISTRING(KaxChapterString, 0x85, 1, KaxChapterDisplay, "ChapterString"); -DEFINE_MKX_STRING_DEF(KaxChapterLanguage, 0x437C, 2, KaxChapterDisplay, "ChapterLanguage", "eng"); -DEFINE_MKX_STRING(KaxChapterCountry, 0x437E, 2, KaxChapterDisplay, "ChapterCountry"); - -DEFINE_START_SEMANTIC(KaxChapterProcess) -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessCodecID) -DEFINE_SEMANTIC_ITEM(false, true, KaxChapterProcessPrivate) -DEFINE_SEMANTIC_ITEM(false, false, KaxChapterProcessCommand) -DEFINE_END_SEMANTIC(KaxChapterProcess) - -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_START_SEMANTIC(KaxChapterProcessCommand) -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessTime) -DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessData) -DEFINE_END_SEMANTIC(KaxChapterProcessCommand) - -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_START_SEMANTIC(KaxTags) -DEFINE_SEMANTIC_ITEM(true, false, KaxTag) -DEFINE_END_SEMANTIC(KaxTags) - -DEFINE_MKX_MASTER(KaxTags, 0x1254C367, 4, KaxSegment, "Tags"); - -DEFINE_START_SEMANTIC(KaxTag) -DEFINE_SEMANTIC_ITEM(true, true, KaxTagTargets) -DEFINE_SEMANTIC_ITEM(true, false, KaxTagSimple) -DEFINE_END_SEMANTIC(KaxTag) - -DEFINE_MKX_MASTER(KaxTag, 0x7373, 2, KaxTags, "Tag"); - -DEFINE_START_SEMANTIC(KaxTagTargets) -DEFINE_SEMANTIC_ITEM(false, true, KaxTagTargetTypeValue) -DEFINE_SEMANTIC_ITEM(false, true, KaxTagTargetType) -DEFINE_SEMANTIC_ITEM(false, false, KaxTagTrackUID) -DEFINE_SEMANTIC_ITEM(false, false, KaxTagEditionUID) -DEFINE_SEMANTIC_ITEM(false, false, KaxTagChapterUID) -DEFINE_SEMANTIC_ITEM(false, false, KaxTagAttachmentUID) -DEFINE_END_SEMANTIC(KaxTagTargets) - -DEFINE_MKX_MASTER(KaxTagTargets, 0x63C0, 2, KaxTag, "TagTargets"); -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_START_SEMANTIC(KaxTagSimple) -DEFINE_SEMANTIC_ITEM(false, false, KaxTagSimple) // recursive -DEFINE_SEMANTIC_ITEM(true, true, KaxTagName) -DEFINE_SEMANTIC_ITEM(true, true, KaxTagLangue) -DEFINE_SEMANTIC_ITEM(true, true, KaxTagDefault) -DEFINE_SEMANTIC_ITEM(false, true, KaxTagString) -DEFINE_SEMANTIC_ITEM(false, true, KaxTagBinary) -DEFINE_END_SEMANTIC(KaxTagSimple) - -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"); - -filepos_t KaxBlockVirtual::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxReferenceVirtual::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxSliceFrameNumber::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxSliceBlockAddID::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxSliceDelay::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxSliceDuration::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxEncryptedBlock::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxTrackTimecodeScale::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxTrackOffset::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxCodecSettings::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxCodecInfoURL::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxCodecDownloadURL::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxOldStereoMode::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxVideoGamma::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxVideoFrameRate::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxAudioPosition::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxCueRefCluster::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxCueRefNumber::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxCueRefCodecState::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -filepos_t KaxFileReferral::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { - assert(false); // no you are not allowed to use this element ! - return 0; -} - -END_LIBMATROSKA_NAMESPACE +/********************************************************************** +** DO NOT EDIT, GENERATED WITH DATA2LIB +** +** libmatroska : parse Matroska files, see http://www.matroska.org/ +** +** Copyright (c) 2002-2010, Matroska (non-profit organisation) +** 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. +** +**********************************************************************/ + +#include "matroska/KaxContexts.h" +#include "matroska/KaxSemantic.h" +#include "matroska/KaxSegment.h" +#include "matroska/KaxSeekHead.h" +#include "matroska/KaxCluster.h" +#include "matroska/KaxTracks.h" +#include "matroska/KaxCues.h" +#include "matroska/KaxInfoData.h" +#include "matroska/KaxBlockData.h" +#include "matroska/KaxCuesData.h" + +START_LIBMATROSKA_NAMESPACE + +DEFINE_START_SEMANTIC(KaxSegment) +DEFINE_SEMANTIC_ITEM(false, false, KaxSeekHead) +DEFINE_SEMANTIC_ITEM(true, false, KaxInfo) +DEFINE_SEMANTIC_ITEM(false, false, KaxCluster) +DEFINE_SEMANTIC_ITEM(false, false, KaxTracks) +DEFINE_SEMANTIC_ITEM(false, true, KaxCues) +DEFINE_SEMANTIC_ITEM(false, true, KaxAttachments) +DEFINE_SEMANTIC_ITEM(false, true, KaxChapters) +DEFINE_SEMANTIC_ITEM(false, false, KaxTags) +DEFINE_END_SEMANTIC(KaxSegment) + +DEFINE_MKX_MASTER_ORPHAN(KaxSegment, 0x18538067, 4, "Segment"); + +DEFINE_START_SEMANTIC(KaxSeekHead) +DEFINE_SEMANTIC_ITEM(true, false, KaxSeek) +DEFINE_END_SEMANTIC(KaxSeekHead) + +DEFINE_MKX_MASTER(KaxSeekHead, 0x114D9B74, 4, KaxSegment, "SeekHeader"); + +DEFINE_START_SEMANTIC(KaxSeek) +DEFINE_SEMANTIC_ITEM(true, true, KaxSeekID) +DEFINE_SEMANTIC_ITEM(true, true, KaxSeekPosition) +DEFINE_END_SEMANTIC(KaxSeek) + +DEFINE_MKX_MASTER(KaxSeek, 0x4DBB, 2, KaxSeekHead, "SeekPoint"); +DEFINE_MKX_BINARY (KaxSeekID, 0x53AB, 2, KaxSeek, "SeekID"); +DEFINE_MKX_UINTEGER(KaxSeekPosition, 0x53AC, 2, KaxSeek, "SeekPosition"); + +DEFINE_START_SEMANTIC(KaxInfo) +DEFINE_SEMANTIC_ITEM(false, true, KaxSegmentUID) +DEFINE_SEMANTIC_ITEM(false, true, KaxSegmentFilename) +DEFINE_SEMANTIC_ITEM(false, true, KaxPrevUID) +DEFINE_SEMANTIC_ITEM(false, true, KaxPrevFilename) +DEFINE_SEMANTIC_ITEM(false, true, KaxNextUID) +DEFINE_SEMANTIC_ITEM(false, true, KaxNextFilename) +DEFINE_SEMANTIC_ITEM(false, false, KaxSegmentFamily) +DEFINE_SEMANTIC_ITEM(false, false, KaxChapterTranslate) +DEFINE_SEMANTIC_ITEM(true, true, KaxTimecodeScale) +DEFINE_SEMANTIC_ITEM(false, true, KaxDuration) +DEFINE_SEMANTIC_ITEM(false, true, KaxDateUTC) +DEFINE_SEMANTIC_ITEM(false, true, KaxTitle) +DEFINE_SEMANTIC_ITEM(true, true, KaxMuxingApp) +DEFINE_SEMANTIC_ITEM(true, true, KaxWritingApp) +DEFINE_END_SEMANTIC(KaxInfo) + +DEFINE_MKX_MASTER(KaxInfo, 0x1549A966, 4, KaxSegment, "Info"); +DEFINE_MKX_BINARY (KaxSegmentUID, 0x73A4, 2, KaxInfo, "SegmentUID"); +DEFINE_MKX_UNISTRING(KaxSegmentFilename, 0x7384, 2, KaxInfo, "SegmentFilename"); +DEFINE_MKX_BINARY_CONS(KaxPrevUID, 0x3CB923, 3, KaxInfo, "PrevUID"); +DEFINE_MKX_UNISTRING(KaxPrevFilename, 0x3C83AB, 3, KaxInfo, "PrevFilename"); +DEFINE_MKX_BINARY_CONS(KaxNextUID, 0x3EB923, 3, KaxInfo, "NextUID"); +DEFINE_MKX_UNISTRING(KaxNextFilename, 0x3E83BB, 3, KaxInfo, "NextFilename"); +DEFINE_MKX_BINARY (KaxSegmentFamily, 0x4444, 2, KaxInfo, "SegmentFamily"); + +DEFINE_START_SEMANTIC(KaxChapterTranslate) +DEFINE_SEMANTIC_ITEM(false, false, KaxChapterTranslateEditionUID) +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTranslateCodec) +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTranslateID) +DEFINE_END_SEMANTIC(KaxChapterTranslate) + +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"); +DEFINE_MKX_UNISTRING(KaxMuxingApp, 0x4D80, 2, KaxInfo, "MuxingApp"); +DEFINE_MKX_UNISTRING(KaxWritingApp, 0x5741, 2, KaxInfo, "WritingApp"); + +DEFINE_START_SEMANTIC(KaxCluster) +DEFINE_SEMANTIC_ITEM(true, true, KaxClusterTimecode) +DEFINE_SEMANTIC_ITEM(false, true, KaxClusterSilentTracks) +DEFINE_SEMANTIC_ITEM(false, true, KaxClusterPosition) +DEFINE_SEMANTIC_ITEM(false, true, KaxClusterPrevSize) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, false, KaxSimpleBlock) +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(false, false, KaxBlockGroup) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, false, KaxEncryptedBlock) // not supported +#endif // MATROSKA_VERSION +DEFINE_END_SEMANTIC(KaxCluster) + +DEFINE_MKX_MASTER_CONS(KaxCluster, 0x1F43B675, 4, KaxSegment, "Cluster"); +DEFINE_MKX_UINTEGER(KaxClusterTimecode, 0xE7, 1, KaxCluster, "ClusterTimecode"); + +DEFINE_START_SEMANTIC(KaxClusterSilentTracks) +DEFINE_SEMANTIC_ITEM(false, false, KaxClusterSilentTrackNumber) +DEFINE_END_SEMANTIC(KaxClusterSilentTracks) + +DEFINE_MKX_MASTER(KaxClusterSilentTracks, 0x5854, 2, KaxCluster, "ClusterSilentTracks"); +DEFINE_MKX_UINTEGER(KaxClusterSilentTrackNumber, 0x58D7, 2, KaxClusterSilentTracks, "ClusterSilentTrackNumber"); +DEFINE_MKX_UINTEGER(KaxClusterPosition, 0xA7, 1, KaxCluster, "ClusterPosition"); +DEFINE_MKX_UINTEGER(KaxClusterPrevSize, 0xAB, 1, KaxCluster, "ClusterPrevSize"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_BINARY_CONS(KaxSimpleBlock, 0xA3, 1, KaxCluster, "SimpleBlock"); +#endif + +DEFINE_START_SEMANTIC(KaxBlockGroup) +DEFINE_SEMANTIC_ITEM(true, true, KaxBlock) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxBlockVirtual) // not supported +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(false, true, KaxBlockAdditions) +DEFINE_SEMANTIC_ITEM(false, true, KaxBlockDuration) +DEFINE_SEMANTIC_ITEM(true, true, KaxReferencePriority) +DEFINE_SEMANTIC_ITEM(false, false, KaxReferenceBlock) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxReferenceVirtual) // not supported +DEFINE_SEMANTIC_ITEM(false, true, KaxCodecState) +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(false, true, KaxSlices) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxReferenceFrame) // DivX specific +#endif // MATROSKA_VERSION +DEFINE_END_SEMANTIC(KaxBlockGroup) + +DEFINE_MKX_MASTER_CONS(KaxBlockGroup, 0xA0, 1, KaxCluster, "BlockGroup"); +DEFINE_MKX_BINARY_CONS(KaxBlock, 0xA1, 1, KaxBlockGroup, "Block"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_BINARY_CONS(KaxBlockVirtual, 0xA2, 1, KaxBlockGroup, "BlockVirtual"); +#endif + +DEFINE_START_SEMANTIC(KaxBlockAdditions) +DEFINE_SEMANTIC_ITEM(true, false, KaxBlockMore) +DEFINE_END_SEMANTIC(KaxBlockAdditions) + +DEFINE_MKX_MASTER(KaxBlockAdditions, 0x75A1, 2, KaxBlockGroup, "BlockAdditions"); + +DEFINE_START_SEMANTIC(KaxBlockMore) +DEFINE_SEMANTIC_ITEM(true, true, KaxBlockAddID) +DEFINE_SEMANTIC_ITEM(true, true, KaxBlockAdditional) +DEFINE_END_SEMANTIC(KaxBlockMore) + +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"); +DEFINE_MKX_UINTEGER(KaxBlockDuration, 0x9B, 1, KaxBlockGroup, "BlockDuration"); +DEFINE_MKX_UINTEGER_DEF(KaxReferencePriority, 0xFA, 1, KaxBlockGroup, "FlagReferenced", 0); +DEFINE_MKX_SINTEGER_CONS(KaxReferenceBlock, 0xFB, 1, KaxBlockGroup, "ReferenceBlock"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_SINTEGER(KaxReferenceVirtual, 0xFD, 1, KaxBlockGroup, "ReferenceVirtual"); +DEFINE_MKX_BINARY (KaxCodecState, 0xA4, 1, KaxBlockGroup, "CodecState"); +#endif + +DEFINE_START_SEMANTIC(KaxSlices) +DEFINE_SEMANTIC_ITEM(false, false, KaxTimeSlice) +DEFINE_END_SEMANTIC(KaxSlices) + +DEFINE_MKX_MASTER(KaxSlices, 0x8E, 1, KaxBlockGroup, "Slices"); + +DEFINE_START_SEMANTIC(KaxTimeSlice) +DEFINE_SEMANTIC_ITEM(false, true, KaxSliceLaceNumber) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxSliceFrameNumber) // not supported +DEFINE_SEMANTIC_ITEM(false, true, KaxSliceBlockAddID) // not supported +DEFINE_SEMANTIC_ITEM(false, true, KaxSliceDelay) // not supported +DEFINE_SEMANTIC_ITEM(false, true, KaxSliceDuration) // not supported +#endif // MATROSKA_VERSION +DEFINE_END_SEMANTIC(KaxTimeSlice) + +DEFINE_MKX_MASTER(KaxTimeSlice, 0xE8, 1, KaxSlices, "TimeSlice"); +DEFINE_MKX_UINTEGER_DEF(KaxSliceLaceNumber, 0xCC, 1, KaxTimeSlice, "SliceLaceNumber", 0); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_UINTEGER_DEF(KaxSliceFrameNumber, 0xCD, 1, KaxTimeSlice, "SliceFrameNumber", 0); +DEFINE_MKX_UINTEGER_DEF(KaxSliceBlockAddID, 0xCB, 1, KaxTimeSlice, "SliceBlockAddID", 0); +DEFINE_MKX_UINTEGER_DEF(KaxSliceDelay, 0xCE, 1, KaxTimeSlice, "SliceDelay", 0); +DEFINE_MKX_UINTEGER_DEF(KaxSliceDuration, 0xCF, 1, KaxTimeSlice, "SliceDuration", 0); + +DEFINE_START_SEMANTIC(KaxReferenceFrame) +DEFINE_SEMANTIC_ITEM(true, true, KaxReferenceOffset) // DivX specific +DEFINE_SEMANTIC_ITEM(true, true, KaxReferenceTimeCode) // DivX specific +DEFINE_END_SEMANTIC(KaxReferenceFrame) + +DEFINE_MKX_MASTER(KaxReferenceFrame, 0xC8, 1, KaxBlockGroup, "ReferenceFrame"); +DEFINE_MKX_UINTEGER(KaxReferenceOffset, 0xC9, 1, KaxReferenceFrame, "ReferenceOffset"); +DEFINE_MKX_UINTEGER(KaxReferenceTimeCode, 0xCA, 1, KaxReferenceFrame, "ReferenceTimeCode"); +DEFINE_MKX_BINARY (KaxEncryptedBlock, 0xAF, 1, KaxCluster, "EncryptedBlock"); +#endif + +DEFINE_START_SEMANTIC(KaxTracks) +DEFINE_SEMANTIC_ITEM(true, false, KaxTrackEntry) +DEFINE_END_SEMANTIC(KaxTracks) + +DEFINE_MKX_MASTER(KaxTracks, 0x1654AE6B, 4, KaxSegment, "Tracks"); + +DEFINE_START_SEMANTIC(KaxTrackEntry) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackNumber) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackUID) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackType) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagEnabled) +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagDefault) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagForced) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackFlagLacing) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackMinCache) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackMaxCache) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackDefaultDuration) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackDefaultDecodedFieldDuration) +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTimecodeScale) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackOffset) // not supported +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(true, true, KaxMaxBlockAdditionID) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackName) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackLanguage) +DEFINE_SEMANTIC_ITEM(true, true, KaxCodecID) +DEFINE_SEMANTIC_ITEM(false, true, KaxCodecPrivate) +DEFINE_SEMANTIC_ITEM(false, true, KaxCodecName) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackAttachmentLink) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxCodecSettings) // not supported +DEFINE_SEMANTIC_ITEM(false, false, KaxCodecInfoURL) // not supported +DEFINE_SEMANTIC_ITEM(false, false, KaxCodecDownloadURL) // not supported +DEFINE_SEMANTIC_ITEM(true, true, KaxCodecDecodeAll) +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(false, false, KaxTrackOverlay) +DEFINE_SEMANTIC_ITEM(false, false, KaxTrackTranslate) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackVideo) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackAudio) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackOperation) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrickTrackUID) // DivX specific +DEFINE_SEMANTIC_ITEM(false, true, KaxTrickTrackSegmentUID) // DivX specific +DEFINE_SEMANTIC_ITEM(false, true, KaxTrickTrackFlag) // DivX specific +DEFINE_SEMANTIC_ITEM(false, true, KaxTrickMasterTrackUID) // DivX specific +DEFINE_SEMANTIC_ITEM(false, true, KaxTrickMasterTrackSegmentUID) // DivX specific +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncodings) +DEFINE_END_SEMANTIC(KaxTrackEntry) + +DEFINE_MKX_MASTER_CONS(KaxTrackEntry, 0xAE, 1, KaxTracks, "TrackEntry"); +DEFINE_MKX_UINTEGER(KaxTrackNumber, 0xD7, 1, KaxTrackEntry, "TrackNumber"); +DEFINE_MKX_UINTEGER(KaxTrackUID, 0x73C5, 2, KaxTrackEntry, "TrackUID"); +DEFINE_MKX_UINTEGER(KaxTrackType, 0x83, 1, KaxTrackEntry, "TrackType"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagEnabled, 0xB9, 1, KaxTrackEntry, "TrackFlagEnabled", 1); +#endif +DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagDefault, 0x88, 1, KaxTrackEntry, "TrackFlagDefault", 1); +DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagForced, 0x55AA, 2, KaxTrackEntry, "TrackFlagForced", 0); +DEFINE_MKX_UINTEGER_DEF(KaxTrackFlagLacing, 0x9C, 1, KaxTrackEntry, "TrackFlagLacing", 1); +DEFINE_MKX_UINTEGER_DEF(KaxTrackMinCache, 0x6DE7, 2, KaxTrackEntry, "TrackMinCache", 0); +DEFINE_MKX_UINTEGER(KaxTrackMaxCache, 0x6DF8, 2, KaxTrackEntry, "TrackMaxCache"); +DEFINE_MKX_UINTEGER(KaxTrackDefaultDuration, 0x23E383, 3, KaxTrackEntry, "TrackDefaultDuration"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_UINTEGER(KaxTrackDefaultDecodedFieldDuration, 0x234E7A, 3, KaxTrackEntry, "TrackDefaultDecodedFieldDuration"); +#endif +DEFINE_MKX_FLOAT_DEF(KaxTrackTimecodeScale, 0x23314F, 3, KaxTrackEntry, "TrackTimecodeScale", 1); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_SINTEGER_DEF(KaxTrackOffset, 0x537F, 2, KaxTrackEntry, "TrackOffset", 0); +#endif +DEFINE_MKX_UINTEGER_DEF(KaxMaxBlockAdditionID, 0x55EE, 2, KaxTrackEntry, "MaxBlockAdditionID", 0); +DEFINE_MKX_UNISTRING(KaxTrackName, 0x536E, 2, KaxTrackEntry, "TrackName"); +DEFINE_MKX_STRING_DEF(KaxTrackLanguage, 0x22B59C, 3, KaxTrackEntry, "TrackLanguage", "eng"); +DEFINE_MKX_STRING(KaxCodecID, 0x86, 1, KaxTrackEntry, "CodecID"); +DEFINE_MKX_BINARY (KaxCodecPrivate, 0x63A2, 2, KaxTrackEntry, "CodecPrivate"); +DEFINE_MKX_UNISTRING(KaxCodecName, 0x258688, 3, KaxTrackEntry, "CodecName"); +DEFINE_MKX_UINTEGER(KaxTrackAttachmentLink, 0x7446, 2, KaxTrackEntry, "TrackAttachmentLink"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_UNISTRING(KaxCodecSettings, 0x3A9697, 3, KaxTrackEntry, "CodecSettings"); +DEFINE_MKX_STRING(KaxCodecInfoURL, 0x3B4040, 3, KaxTrackEntry, "CodecInfoURL"); +DEFINE_MKX_STRING(KaxCodecDownloadURL, 0x26B240, 3, KaxTrackEntry, "CodecDownloadURL"); +DEFINE_MKX_UINTEGER_DEF(KaxCodecDecodeAll, 0xAA, 1, KaxTrackEntry, "CodecDecodeAll", 1); +#endif +DEFINE_MKX_UINTEGER(KaxTrackOverlay, 0x6FAB, 2, KaxTrackEntry, "TrackOverlay"); + +DEFINE_START_SEMANTIC(KaxTrackTranslate) +DEFINE_SEMANTIC_ITEM(false, false, KaxTrackTranslateEditionUID) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTranslateCodec) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackTranslateTrackID) +DEFINE_END_SEMANTIC(KaxTrackTranslate) + +DEFINE_MKX_MASTER(KaxTrackTranslate, 0x6624, 2, KaxTrackEntry, "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_START_SEMANTIC(KaxTrackVideo) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(true, true, KaxVideoFlagInterlaced) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoStereoMode) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoAlphaMode) +DEFINE_SEMANTIC_ITEM(false, true, KaxOldStereoMode) // not supported +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(true, true, KaxVideoPixelWidth) +DEFINE_SEMANTIC_ITEM(true, true, KaxVideoPixelHeight) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropBottom) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropTop) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropLeft) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoPixelCropRight) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayWidth) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayHeight) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoDisplayUnit) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoAspectRatio) +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoColourSpace) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoGamma) // not supported +DEFINE_SEMANTIC_ITEM(false, true, KaxVideoFrameRate) // not supported +#endif // MATROSKA_VERSION +DEFINE_END_SEMANTIC(KaxTrackVideo) + +DEFINE_MKX_MASTER(KaxTrackVideo, 0xE0, 1, KaxTrackEntry, "TrackVideo"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_UINTEGER_DEF(KaxVideoFlagInterlaced, 0x9A, 1, KaxTrackVideo, "VideoFlagInterlaced", 0); +DEFINE_MKX_UINTEGER_DEF(KaxVideoStereoMode, 0x53B8, 2, KaxTrackVideo, "VideoStereoMode", 0); +DEFINE_MKX_UINTEGER_DEF(KaxVideoAlphaMode, 0x53C0, 2, KaxTrackVideo, "VideoAlphaMode", 0); +DEFINE_MKX_UINTEGER(KaxOldStereoMode, 0x53B9, 2, KaxTrackVideo, "OldStereoMode"); +#endif +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_UINTEGER_DEF(KaxVideoDisplayUnit, 0x54B2, 2, KaxTrackVideo, "VideoDisplayUnit", 0); +DEFINE_MKX_UINTEGER_DEF(KaxVideoAspectRatio, 0x54B3, 2, KaxTrackVideo, "VideoAspectRatio", 0); +DEFINE_MKX_BINARY (KaxVideoColourSpace, 0x2EB524, 3, KaxTrackVideo, "VideoColourSpace"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_FLOAT(KaxVideoGamma, 0x2FB523, 3, KaxTrackVideo, "VideoGamma"); +DEFINE_MKX_FLOAT(KaxVideoFrameRate, 0x2383E3, 3, KaxTrackVideo, "VideoFrameRate"); +#endif + +DEFINE_START_SEMANTIC(KaxTrackAudio) +DEFINE_SEMANTIC_ITEM(true, true, KaxAudioSamplingFreq) +DEFINE_SEMANTIC_ITEM(false, true, KaxAudioOutputSamplingFreq) +DEFINE_SEMANTIC_ITEM(true, true, KaxAudioChannels) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxAudioPosition) // not supported +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(false, true, KaxAudioBitDepth) +DEFINE_END_SEMANTIC(KaxTrackAudio) + +DEFINE_MKX_MASTER(KaxTrackAudio, 0xE1, 1, KaxTrackEntry, "TrackAudio"); +DEFINE_MKX_FLOAT_DEF(KaxAudioSamplingFreq, 0xB5, 1, KaxTrackAudio, "AudioSamplingFreq", 8000); +DEFINE_MKX_FLOAT(KaxAudioOutputSamplingFreq, 0x78B5, 2, KaxTrackAudio, "AudioOutputSamplingFreq"); +DEFINE_MKX_UINTEGER_DEF(KaxAudioChannels, 0x9F, 1, KaxTrackAudio, "AudioChannels", 1); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_BINARY (KaxAudioPosition, 0x7D7B, 2, KaxTrackAudio, "AudioPosition"); +#endif +DEFINE_MKX_UINTEGER(KaxAudioBitDepth, 0x6264, 2, KaxTrackAudio, "AudioBitDepth"); +#if MATROSKA_VERSION >= 2 + +DEFINE_START_SEMANTIC(KaxTrackOperation) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackCombinePlanes) +DEFINE_SEMANTIC_ITEM(false, true, KaxTrackJoinBlocks) +DEFINE_END_SEMANTIC(KaxTrackOperation) + +DEFINE_MKX_MASTER(KaxTrackOperation, 0xE2, 1, KaxTrackEntry, "TrackOperation"); + +DEFINE_START_SEMANTIC(KaxTrackCombinePlanes) +DEFINE_SEMANTIC_ITEM(true, false, KaxTrackPlane) +DEFINE_END_SEMANTIC(KaxTrackCombinePlanes) + +DEFINE_MKX_MASTER(KaxTrackCombinePlanes, 0xE3, 1, KaxTrackOperation, "TrackCombinePlanes"); + +DEFINE_START_SEMANTIC(KaxTrackPlane) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackPlaneUID) +DEFINE_SEMANTIC_ITEM(true, true, KaxTrackPlaneType) +DEFINE_END_SEMANTIC(KaxTrackPlane) + +DEFINE_MKX_MASTER(KaxTrackPlane, 0xE4, 1, KaxTrackCombinePlanes, "TrackPlane"); +DEFINE_MKX_UINTEGER(KaxTrackPlaneUID, 0xE5, 1, KaxTrackPlane, "TrackPlaneUID"); +DEFINE_MKX_UINTEGER(KaxTrackPlaneType, 0xE6, 1, KaxTrackPlane, "TrackPlaneType"); + +DEFINE_START_SEMANTIC(KaxTrackJoinBlocks) +DEFINE_SEMANTIC_ITEM(true, false, KaxTrackJoinUID) +DEFINE_END_SEMANTIC(KaxTrackJoinBlocks) + +DEFINE_MKX_MASTER(KaxTrackJoinBlocks, 0xE9, 1, KaxTrackOperation, "TrackJoinBlocks"); +DEFINE_MKX_UINTEGER(KaxTrackJoinUID, 0xED, 1, KaxTrackJoinBlocks, "TrackJoinUID"); +DEFINE_MKX_UINTEGER(KaxTrickTrackUID, 0xC0, 1, KaxTrackEntry, "TrickTrackUID"); +DEFINE_MKX_BINARY (KaxTrickTrackSegmentUID, 0xC1, 1, KaxTrackEntry, "TrickTrackSegmentUID"); +DEFINE_MKX_UINTEGER_DEF(KaxTrickTrackFlag, 0xC6, 1, KaxTrackEntry, "TrickTrackFlag", 0); +DEFINE_MKX_UINTEGER(KaxTrickMasterTrackUID, 0xC7, 1, KaxTrackEntry, "TrickMasterTrackUID"); +DEFINE_MKX_BINARY (KaxTrickMasterTrackSegmentUID, 0xC4, 1, KaxTrackEntry, "TrickMasterTrackSegmentUID"); +#endif + +DEFINE_START_SEMANTIC(KaxContentEncodings) +DEFINE_SEMANTIC_ITEM(true, false, KaxContentEncoding) +DEFINE_END_SEMANTIC(KaxContentEncodings) + +DEFINE_MKX_MASTER(KaxContentEncodings, 0x6D80, 2, KaxTrackEntry, "ContentEncodings"); + +DEFINE_START_SEMANTIC(KaxContentEncoding) +DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingOrder) +DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingScope) +DEFINE_SEMANTIC_ITEM(true, true, KaxContentEncodingType) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentCompression) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncryption) +DEFINE_END_SEMANTIC(KaxContentEncoding) + +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_START_SEMANTIC(KaxContentCompression) +DEFINE_SEMANTIC_ITEM(true, true, KaxContentCompAlgo) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentCompSettings) +DEFINE_END_SEMANTIC(KaxContentCompression) + +DEFINE_MKX_MASTER(KaxContentCompression, 0x5034, 2, KaxContentEncoding, "ContentCompression"); +DEFINE_MKX_UINTEGER_DEF(KaxContentCompAlgo, 0x4254, 2, KaxContentCompression, "ContentCompAlgo", 0); +DEFINE_MKX_BINARY (KaxContentCompSettings, 0x4255, 2, KaxContentCompression, "ContentCompSettings"); + +DEFINE_START_SEMANTIC(KaxContentEncryption) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncAlgo) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentEncKeyID) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentSignature) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigKeyID) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigAlgo) +DEFINE_SEMANTIC_ITEM(false, true, KaxContentSigHashAlgo) +DEFINE_END_SEMANTIC(KaxContentEncryption) + +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); + +DEFINE_START_SEMANTIC(KaxCues) +DEFINE_SEMANTIC_ITEM(true, false, KaxCuePoint) +DEFINE_END_SEMANTIC(KaxCues) + +DEFINE_MKX_MASTER(KaxCues, 0x1C53BB6B, 4, KaxSegment, "Cues"); + +DEFINE_START_SEMANTIC(KaxCuePoint) +DEFINE_SEMANTIC_ITEM(true, true, KaxCueTime) +DEFINE_SEMANTIC_ITEM(true, false, KaxCueTrackPositions) +DEFINE_END_SEMANTIC(KaxCuePoint) + +DEFINE_MKX_MASTER(KaxCuePoint, 0xBB, 1, KaxCues, "CuePoint"); +DEFINE_MKX_UINTEGER(KaxCueTime, 0xB3, 1, KaxCuePoint, "CueTime"); + +DEFINE_START_SEMANTIC(KaxCueTrackPositions) +DEFINE_SEMANTIC_ITEM(true, true, KaxCueTrack) +DEFINE_SEMANTIC_ITEM(true, true, KaxCueClusterPosition) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxCueRelativePosition) +DEFINE_SEMANTIC_ITEM(false, true, KaxCueDuration) +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(false, true, KaxCueBlockNumber) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxCueCodecState) +DEFINE_SEMANTIC_ITEM(false, false, KaxCueReference) +#endif // MATROSKA_VERSION +DEFINE_END_SEMANTIC(KaxCueTrackPositions) + +DEFINE_MKX_MASTER(KaxCueTrackPositions, 0xB7, 1, KaxCuePoint, "CueTrackPositions"); +DEFINE_MKX_UINTEGER(KaxCueTrack, 0xF7, 1, KaxCueTrackPositions, "CueTrack"); +DEFINE_MKX_UINTEGER(KaxCueClusterPosition, 0xF1, 1, KaxCueTrackPositions, "CueClusterPosition"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_UINTEGER(KaxCueRelativePosition, 0xF0, 1, KaxCueTrackPositions, "CueRelativePosition"); +DEFINE_MKX_UINTEGER(KaxCueDuration, 0xB2, 1, KaxCueTrackPositions, "CueDuration"); +#endif +DEFINE_MKX_UINTEGER_DEF(KaxCueBlockNumber, 0x5378, 2, KaxCueTrackPositions, "CueBlockNumber", 1); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_UINTEGER_DEF(KaxCueCodecState, 0xEA, 1, KaxCueTrackPositions, "CueCodecState", 0); + +DEFINE_START_SEMANTIC(KaxCueReference) +DEFINE_SEMANTIC_ITEM(true, true, KaxCueRefTime) +DEFINE_SEMANTIC_ITEM(true, true, KaxCueRefCluster) // not supported +DEFINE_SEMANTIC_ITEM(false, true, KaxCueRefNumber) // not supported +DEFINE_SEMANTIC_ITEM(false, true, KaxCueRefCodecState) // not supported +DEFINE_END_SEMANTIC(KaxCueReference) + +DEFINE_MKX_MASTER(KaxCueReference, 0xDB, 1, KaxCueTrackPositions, "CueReference"); +DEFINE_MKX_UINTEGER(KaxCueRefTime, 0x96, 1, KaxCueReference, "CueRefTime"); +DEFINE_MKX_UINTEGER(KaxCueRefCluster, 0x97, 1, KaxCueReference, "CueRefCluster"); +DEFINE_MKX_UINTEGER_DEF(KaxCueRefNumber, 0x535F, 2, KaxCueReference, "CueRefNumber", 1); +DEFINE_MKX_UINTEGER_DEF(KaxCueRefCodecState, 0xEB, 1, KaxCueReference, "CueRefCodecState", 0); +#endif + +DEFINE_START_SEMANTIC(KaxAttachments) +DEFINE_SEMANTIC_ITEM(true, false, KaxAttached) +DEFINE_END_SEMANTIC(KaxAttachments) + +DEFINE_MKX_MASTER_CONS(KaxAttachments, 0x1941A469, 4, KaxSegment, "Attachments"); + +DEFINE_START_SEMANTIC(KaxAttached) +DEFINE_SEMANTIC_ITEM(false, true, KaxFileDescription) +DEFINE_SEMANTIC_ITEM(true, true, KaxFileName) +DEFINE_SEMANTIC_ITEM(true, true, KaxMimeType) +DEFINE_SEMANTIC_ITEM(true, true, KaxFileData) +DEFINE_SEMANTIC_ITEM(true, true, KaxFileUID) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxFileReferral) // not supported +DEFINE_SEMANTIC_ITEM(false, true, KaxFileUsedStartTime) // DivX specific +DEFINE_SEMANTIC_ITEM(false, true, KaxFileUsedEndTime) // DivX specific +#endif // MATROSKA_VERSION +DEFINE_END_SEMANTIC(KaxAttached) + +DEFINE_MKX_MASTER_CONS(KaxAttached, 0x61A7, 2, KaxAttachments, "AttachedFile"); +DEFINE_MKX_UNISTRING(KaxFileDescription, 0x467E, 2, KaxAttached, "FileDescription"); +DEFINE_MKX_UNISTRING(KaxFileName, 0x466E, 2, KaxAttached, "FileName"); +DEFINE_MKX_STRING(KaxMimeType, 0x4660, 2, KaxAttached, "FileMimeType"); +DEFINE_MKX_BINARY (KaxFileData, 0x465C, 2, KaxAttached, "FileData"); +DEFINE_MKX_UINTEGER(KaxFileUID, 0x46AE, 2, KaxAttached, "FileUID"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_BINARY (KaxFileReferral, 0x4675, 2, KaxAttached, "FileReferral"); +DEFINE_MKX_UINTEGER(KaxFileUsedStartTime, 0x4661, 2, KaxAttached, "FileUsedStartTime"); +DEFINE_MKX_UINTEGER(KaxFileUsedEndTime, 0x4662, 2, KaxAttached, "FileUsedEndTime"); +#endif + +DEFINE_START_SEMANTIC(KaxChapters) +DEFINE_SEMANTIC_ITEM(true, false, KaxEditionEntry) +DEFINE_END_SEMANTIC(KaxChapters) + +DEFINE_MKX_MASTER(KaxChapters, 0x1043A770, 4, KaxSegment, "Chapters"); + +DEFINE_START_SEMANTIC(KaxEditionEntry) +DEFINE_SEMANTIC_ITEM(false, true, KaxEditionUID) +DEFINE_SEMANTIC_ITEM(true, true, KaxEditionFlagHidden) +DEFINE_SEMANTIC_ITEM(true, true, KaxEditionFlagDefault) +DEFINE_SEMANTIC_ITEM(false, true, KaxEditionFlagOrdered) +DEFINE_SEMANTIC_ITEM(true, false, KaxChapterAtom) +DEFINE_END_SEMANTIC(KaxEditionEntry) + +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_START_SEMANTIC(KaxChapterAtom) +DEFINE_SEMANTIC_ITEM(false, false, KaxChapterAtom) // recursive +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterUID) +#if MATROSKA_VERSION >= 2 +DEFINE_SEMANTIC_ITEM(false, true, KaxChapterStringUID) +#endif // MATROSKA_VERSION +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterTimeStart) +DEFINE_SEMANTIC_ITEM(false, true, KaxChapterTimeEnd) +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterFlagHidden) +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterFlagEnabled) +DEFINE_SEMANTIC_ITEM(false, true, KaxChapterSegmentUID) +DEFINE_SEMANTIC_ITEM(false, true, KaxChapterSegmentEditionUID) +DEFINE_SEMANTIC_ITEM(false, true, KaxChapterPhysicalEquiv) +DEFINE_SEMANTIC_ITEM(false, true, KaxChapterTrack) +DEFINE_SEMANTIC_ITEM(false, false, KaxChapterDisplay) +DEFINE_SEMANTIC_ITEM(false, false, KaxChapterProcess) +DEFINE_END_SEMANTIC(KaxChapterAtom) + +DEFINE_MKX_MASTER(KaxChapterAtom, 0xB6, 1, KaxEditionEntry, "ChapterAtom"); +DEFINE_MKX_UINTEGER(KaxChapterUID, 0x73C4, 2, KaxChapterAtom, "ChapterUID"); +#if MATROSKA_VERSION >= 2 +DEFINE_MKX_UNISTRING(KaxChapterStringUID, 0x5654, 2, KaxChapterAtom, "ChapterStringUID"); +#endif +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_UINTEGER(KaxChapterSegmentEditionUID, 0x6EBC, 2, KaxChapterAtom, "ChapterSegmentEditionUID"); +DEFINE_MKX_UINTEGER(KaxChapterPhysicalEquiv, 0x63C3, 2, KaxChapterAtom, "ChapterPhysicalEquiv"); + +DEFINE_START_SEMANTIC(KaxChapterTrack) +DEFINE_SEMANTIC_ITEM(true, false, KaxChapterTrackNumber) +DEFINE_END_SEMANTIC(KaxChapterTrack) + +DEFINE_MKX_MASTER(KaxChapterTrack, 0x8F, 1, KaxChapterAtom, "ChapterTrack"); +DEFINE_MKX_UINTEGER(KaxChapterTrackNumber, 0x89, 1, KaxChapterTrack, "ChapterTrackNumber"); + +DEFINE_START_SEMANTIC(KaxChapterDisplay) +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterString) +DEFINE_SEMANTIC_ITEM(true, false, KaxChapterLanguage) +DEFINE_SEMANTIC_ITEM(false, false, KaxChapterCountry) +DEFINE_END_SEMANTIC(KaxChapterDisplay) + +DEFINE_MKX_MASTER(KaxChapterDisplay, 0x80, 1, KaxChapterAtom, "ChapterDisplay"); +DEFINE_MKX_UNISTRING(KaxChapterString, 0x85, 1, KaxChapterDisplay, "ChapterString"); +DEFINE_MKX_STRING_DEF(KaxChapterLanguage, 0x437C, 2, KaxChapterDisplay, "ChapterLanguage", "eng"); +DEFINE_MKX_STRING(KaxChapterCountry, 0x437E, 2, KaxChapterDisplay, "ChapterCountry"); + +DEFINE_START_SEMANTIC(KaxChapterProcess) +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessCodecID) +DEFINE_SEMANTIC_ITEM(false, true, KaxChapterProcessPrivate) +DEFINE_SEMANTIC_ITEM(false, false, KaxChapterProcessCommand) +DEFINE_END_SEMANTIC(KaxChapterProcess) + +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_START_SEMANTIC(KaxChapterProcessCommand) +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessTime) +DEFINE_SEMANTIC_ITEM(true, true, KaxChapterProcessData) +DEFINE_END_SEMANTIC(KaxChapterProcessCommand) + +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_START_SEMANTIC(KaxTags) +DEFINE_SEMANTIC_ITEM(true, false, KaxTag) +DEFINE_END_SEMANTIC(KaxTags) + +DEFINE_MKX_MASTER(KaxTags, 0x1254C367, 4, KaxSegment, "Tags"); + +DEFINE_START_SEMANTIC(KaxTag) +DEFINE_SEMANTIC_ITEM(true, true, KaxTagTargets) +DEFINE_SEMANTIC_ITEM(true, false, KaxTagSimple) +DEFINE_END_SEMANTIC(KaxTag) + +DEFINE_MKX_MASTER(KaxTag, 0x7373, 2, KaxTags, "Tag"); + +DEFINE_START_SEMANTIC(KaxTagTargets) +DEFINE_SEMANTIC_ITEM(false, true, KaxTagTargetTypeValue) +DEFINE_SEMANTIC_ITEM(false, true, KaxTagTargetType) +DEFINE_SEMANTIC_ITEM(false, false, KaxTagTrackUID) +DEFINE_SEMANTIC_ITEM(false, false, KaxTagEditionUID) +DEFINE_SEMANTIC_ITEM(false, false, KaxTagChapterUID) +DEFINE_SEMANTIC_ITEM(false, false, KaxTagAttachmentUID) +DEFINE_END_SEMANTIC(KaxTagTargets) + +DEFINE_MKX_MASTER(KaxTagTargets, 0x63C0, 2, KaxTag, "TagTargets"); +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_START_SEMANTIC(KaxTagSimple) +DEFINE_SEMANTIC_ITEM(false, false, KaxTagSimple) // recursive +DEFINE_SEMANTIC_ITEM(true, true, KaxTagName) +DEFINE_SEMANTIC_ITEM(true, true, KaxTagLangue) +DEFINE_SEMANTIC_ITEM(true, true, KaxTagDefault) +DEFINE_SEMANTIC_ITEM(false, true, KaxTagString) +DEFINE_SEMANTIC_ITEM(false, true, KaxTagBinary) +DEFINE_END_SEMANTIC(KaxTagSimple) + +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"); + +filepos_t KaxBlockVirtual::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxReferenceVirtual::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxSliceFrameNumber::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxSliceBlockAddID::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxSliceDelay::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxSliceDuration::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxEncryptedBlock::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxTrackTimecodeScale::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxTrackOffset::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxCodecSettings::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxCodecInfoURL::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxCodecDownloadURL::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxOldStereoMode::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxVideoGamma::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxVideoFrameRate::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxAudioPosition::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxCueRefCluster::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxCueRefNumber::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxCueRefCodecState::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +filepos_t KaxFileReferral::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + +END_LIBMATROSKA_NAMESPACE diff --git a/test/Makefile b/test/Makefile index 479436e..5d70369 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,10 +1,10 @@ -## libmatroska Makefile -## (c) 2002 Steve Lhomme -## This software is licensed under the LGPL, see LGPL.txt - -all: endian - echo "Making endianess tests" - (cd endian; make) -clean: - echo "Cleaning all tests" - (cd endian; make $@) +## libmatroska Makefile +## (c) 2002 Steve Lhomme +## This software is licensed under the LGPL, see LGPL.txt + +all: endian + echo "Making endianess tests" + (cd endian; make) +clean: + echo "Cleaning all tests" + (cd endian; make $@) diff --git a/test/ebml/Makefile b/test/ebml/Makefile index 5e6658e..67f18ea 100644 --- a/test/ebml/Makefile +++ b/test/ebml/Makefile @@ -1,62 +1,62 @@ -# libmatroska core Makefile (used in cygwin) -# $Id: Makefile 640 2004-07-09 21:05:36Z mosu $ - -# Options -EXTENSION=.cpp -CXXFLAGS=-g -DDEBUG -Wall -Wno-unknown-pragmas -DWIN32 -I../../src/ -LDFLAGS= - -SRC_DIR=../../src/ - -# Programs -CXX=g++ -c -LD=g++ -DEP=$(CXX) -MM -DEPEND = makedepend -AR = ar rcvu -RANLIB = ranlib - -# Librarires -INCLUDE= -LIBS= - -# Names -PROGRAM=test00 - -# source-files -sources:=$(wildcard ${SRC_DIR}*$(EXTENSION)) - -# header files; replace .cxx extension with .h -headers:=$(patsubst %$(EXTENSION),%.hpp,$(sources)) - -# files holding dependency information; replace .cxx extension with .dep -dependencies:=$(patsubst %$(EXTENSION),%.dep,$(sources)) - -# object files; replace .cxx extension with .o -objects:=$(patsubst %$(EXTENSION),%.o,$(sources)) - -OBJ=$(objects) test00.o - -DEPENDFLAGS = ${CXXFLAGS} ${INCLUDE} - -# Build rules -%.o: %$(EXTENSION) - $(CXX) $(CXXFLAGS) $(INCLUDE) -o $@ $< - -$(PROGRAM): $(OBJ) -# $(AR) $@ $(objects) -# $(RANLIB) $@ - $(LD) $(LDFLAGS) -o $@ $^ $(LIBS) - ${LD} -o $@ ${LDFLAGS} ${OBJ} ${LIBS} ${EXTRA_LIBS} - -clean: - rm -f $(OBJ) - rm -f $(dependencies) - rm -f $(PROGRAM) - rm -f CORE - -# what are the source dependencies -depend: $(sources) - $(DEPEND) $(DEPENDFLAGS) $(sources) - -# DO NOT DELETE +# libmatroska core Makefile (used in cygwin) +# $Id: Makefile 640 2004-07-09 21:05:36Z mosu $ + +# Options +EXTENSION=.cpp +CXXFLAGS=-g -DDEBUG -Wall -Wno-unknown-pragmas -DWIN32 -I../../src/ +LDFLAGS= + +SRC_DIR=../../src/ + +# Programs +CXX=g++ -c +LD=g++ +DEP=$(CXX) -MM +DEPEND = makedepend +AR = ar rcvu +RANLIB = ranlib + +# Librarires +INCLUDE= +LIBS= + +# Names +PROGRAM=test00 + +# source-files +sources:=$(wildcard ${SRC_DIR}*$(EXTENSION)) + +# header files; replace .cxx extension with .h +headers:=$(patsubst %$(EXTENSION),%.hpp,$(sources)) + +# files holding dependency information; replace .cxx extension with .dep +dependencies:=$(patsubst %$(EXTENSION),%.dep,$(sources)) + +# object files; replace .cxx extension with .o +objects:=$(patsubst %$(EXTENSION),%.o,$(sources)) + +OBJ=$(objects) test00.o + +DEPENDFLAGS = ${CXXFLAGS} ${INCLUDE} + +# Build rules +%.o: %$(EXTENSION) + $(CXX) $(CXXFLAGS) $(INCLUDE) -o $@ $< + +$(PROGRAM): $(OBJ) +# $(AR) $@ $(objects) +# $(RANLIB) $@ + $(LD) $(LDFLAGS) -o $@ $^ $(LIBS) + ${LD} -o $@ ${LDFLAGS} ${OBJ} ${LIBS} ${EXTRA_LIBS} + +clean: + rm -f $(OBJ) + rm -f $(dependencies) + rm -f $(PROGRAM) + rm -f CORE + +# what are the source dependencies +depend: $(sources) + $(DEPEND) $(DEPENDFLAGS) $(sources) + +# DO NOT DELETE -- 2.50.1