summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/CMakeLists.txt26
-rw-r--r--doc/Doxyfile.in1784
-rw-r--r--doc/Makefile.am62
-rw-r--r--doc/Makefile.in774
-rw-r--r--doc/doxygen.footer.html15
-rw-r--r--doc/images/Makefile.am25
-rw-r--r--doc/images/Makefile.in557
-rw-r--r--doc/images/logo.svg431
-rw-r--r--doc/images/logo130.gifbin0 -> 3895 bytes
-rw-r--r--doc/isoflac.txt666
10 files changed, 4340 insertions, 0 deletions
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
new file mode 100644
index 0000000..df1f277
--- /dev/null
+++ b/doc/CMakeLists.txt
@@ -0,0 +1,26 @@
+cmake_minimum_required(VERSION 3.9)
+
+find_package(Doxygen)
+
+if (NOT DOXYGEN_FOUND)
+ return()
+endif()
+
+option(BUILD_DOXYGEN "Enable API documentation building via Doxygen" ON)
+
+if (NOT BUILD_DOXYGEN)
+ return()
+endif()
+
+set(top_srcdir "${PROJECT_SOURCE_DIR}")
+configure_file(Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+
+
+add_custom_target(FLAC-doxygen ALL
+ COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Generating API documentation with Doxygen"
+ VERBATIM )
+
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/api/"
+ DESTINATION "${CMAKE_INSTALL_DOCDIR}/api")
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
new file mode 100644
index 0000000..8133ea3
--- /dev/null
+++ b/doc/Doxyfile.in
@@ -0,0 +1,1784 @@
+# Doxyfile 1.7.6.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or sequence of words) that should
+# identify the project. Note that if you do not use Doxywizard you need
+# to put quotes around the project name if it contains spaces.
+
+PROJECT_NAME = FLAC
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = 1.4.3
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer
+# a quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF = Free Lossless Audio Codec
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is
+# included in the documentation. The maximum height of the logo should not
+# exceed 55 pixels and the maximum width should not exceed 200 pixels.
+# Doxygen will copy the logo to the output directory.
+
+PROJECT_LOGO =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = doxytmp
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = NO
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH = ..
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful if your file system
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES = "assert=\par Assertions:" \
+ "default=\par Default Value:"
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding
+# "class=itcl::class" will allow you to use the command class in the
+# itcl::class meaning.
+
+TCL_SUBST =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also makes the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = YES
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
+# unions are shown inside the group in which they are included (e.g. using
+# @ingroup) instead of on a separate page (for HTML and Man pages) or
+# section (for LaTeX and RTF).
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
+# unions with only public data fields will be shown inline in the documentation
+# of the scope in which they are defined (i.e. file, namespace, or group
+# documentation), provided this scope is documented. If set to NO (the default),
+# structs, classes, and unions are shown on a separate page (for HTML and Man
+# pages) or section (for LaTeX and RTF).
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penalty.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will roughly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols.
+
+SYMBOL_CACHE_SIZE = 0
+
+# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
+# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
+# their name and scope. Since this can be an expensive process and often the
+# same symbol appear multiple times in the code, doxygen keeps a cache of
+# pre-resolved symbols. If the cache is too small doxygen will become slower.
+# If the cache is too large, memory is wasted. The cache size is given by this
+# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols.
+
+LOOKUP_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespaces are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = NO
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = YES
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
+# do proper type resolution of all parameters of a function it will reject a
+# match between the prototype and the implementation of a member function even
+# if there is only one candidate or it is obvious which candidate to choose
+# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
+# will still accept a match between prototype and implementation in such cases.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or macro consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and macros in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files
+# containing the references data. This must be a list of .bib files. The
+# .bib extension is automatically appended if omitted. Using this command
+# requires the bibtex tool to be installed. See also
+# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
+# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
+# feature you need bibtex and perl available in the search path.
+
+CITE_BIB_FILES =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# The WARN_NO_PARAMDOC option can be enabled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = @top_srcdir@/include/FLAC \
+ @top_srcdir@/include/FLAC++
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
+# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
+# *.f90 *.f *.for *.vhd *.vhdl
+
+FILE_PATTERNS =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty or if
+# non of the patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
+# and it is also possible to disable source filtering for a specific pattern
+# using *.ext= (so without naming a filter). This option only has effect when
+# FILTER_SOURCE_FILES is enabled.
+
+FILTER_SOURCE_PATTERNS =
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header. Note that when using a custom header you are responsible
+# for the proper inclusion of any scripts and style sheets that doxygen
+# needs, which is dependent on the configuration options used.
+# It is advised to generate a default header using "doxygen -w html
+# header.html footer.html stylesheet.css YourConfigFile" and then modify
+# that header. Note that the header is subject to change so you typically
+# have to redo this when upgrading to a newer version of doxygen or when
+# changing the value of configuration settings such as GENERATE_TREEVIEW!
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER = @top_srcdir@/doc/doxygen.footer.html
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# style sheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that
+# the files will be copied as-is; there are no commands or markers available.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the style sheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP = YES
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+
+GENERATE_DOCSET = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+# will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
+# at top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it. Since the tabs have the same information as the
+# navigation tree you can set this option to NO if you already set
+# GENERATE_TREEVIEW to YES.
+
+DISABLE_INDEX = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+# Since the tree basically has the same information as the tab index you
+# could consider to set DISABLE_INDEX to NO when enabling this option.
+
+GENERATE_TREEVIEW = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
+# (range [0,1..20]) that doxygen will group on one line in the generated HTML
+# documentation. Note that a value of 0 will completely suppress the enum
+# values from appearing in the overview section.
+
+ENUM_VALUES_PER_LINE = 4
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
+# (see http://www.mathjax.org) which uses client side Javascript for the
+# rendering instead of using prerendered bitmaps. Use this if you do not
+# have LaTeX installed or if you want to formulas look prettier in the HTML
+# output. When enabled you also need to install MathJax separately and
+# configure the path to it using the MATHJAX_RELPATH option.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you need to specify the location relative to the
+# HTML output directory using the MATHJAX_RELPATH option. The destination
+# directory should contain the MathJax.js script. For instance, if the mathjax
+# directory is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the
+# mathjax.org site, so you can quickly see the result without installing
+# MathJax, but it is strongly recommended to install a local copy of MathJax
+# before deployment.
+
+MATHJAX_RELPATH = http://www.mathjax.org/mathjax
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
+# names that should be enabled during MathJax rendering.
+
+MATHJAX_EXTENSIONS =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvantages are that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
+# the generated latex document. The footer should contain everything after
+# the last chapter. If it is left blank doxygen will generate a
+# standard footer. Notice: only use this tag if you know what you are doing!
+
+LATEX_FOOTER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
+# http://en.wikipedia.org/wiki/BibTeX for more info.
+
+LATEX_BIB_STYLE = plain
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load style sheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = YES
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# pointed to by INCLUDE_PATH will be searched when a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED = FLAC__NO_DLL
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition that
+# overrules the definition found in the source code.
+
+EXPAND_AS_DEFINED = FLAC_API \
+ FLACPP_API
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all references to function-like macros
+# that are alone on a line, have an all uppercase name, and do not end with a
+# semicolon, because these will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE = FLAC.tag
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option also works with HAVE_DOT disabled, but it is recommended to
+# install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS = 0
+
+# By default doxygen will use the Helvetica font for all dot files that
+# doxygen generates. When you want a differently looking font you can specify
+# the font name using DOT_FONTNAME. You need to make sure dot is able to find
+# the font, which can be done by putting it in a standard location or by setting
+# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
+# directory containing the font.
+
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the Helvetica font.
+# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
+# set the path where dot can find it.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will generate a graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are svg, png, jpg, or gif.
+# If left blank png will be used. If you choose svg you need to set
+# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
+# visible in IE 9+ (other browsers do not have this requirement).
+
+DOT_IMAGE_FORMAT = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+# Note that this requires a modern browser other than Internet Explorer.
+# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
+# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
+# visible. Older versions of IE do not have SVG support.
+
+INTERACTIVE_SVG = NO
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the
+# \mscfile command).
+
+MSCFILE_DIRS =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..55395ca
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,62 @@
+# flac - Command-line FLAC encoder/decoder
+# Copyright (C) 2002-2009 Josh Coalson
+# Copyright (C) 2011-2023 Xiph.Org Foundation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+SUBDIRS = . images
+
+if FLaC__HAS_DOXYGEN
+all-local: Doxyfile
+FLAC.tag: Doxyfile
+ doxygen Doxyfile
+ rm -rf api
+ mv doxytmp/html api
+ rm -rf doxytmp
+
+doc_DATA = \
+ FLAC.tag
+else
+if FLaC__HAS_PREBUILT_DOXYGEN
+doc_DATA = \
+ FLAC.tag
+endif
+endif
+
+EXTRA_DIST = Doxyfile.in doxygen.footer.html \
+ isoflac.txt $(doc_DATA) CMakeLists.txt \
+ api
+
+if FLaC__HAS_DOXYGEN
+# The install targets don't copy whole directories so we have to
+# handle 'api/' specially:
+install-data-local:
+ $(mkinstalldirs) $(DESTDIR)$(docdir)/api
+ (cd $(builddir)/api && $(INSTALL_DATA) * $(DESTDIR)$(docdir)/api)
+uninstall-local:
+ rm -rf $(DESTDIR)$(docdir)/api
+distclean-local:
+ rm -rf FLAC.tag api doxytmp
+endif
+
+if FLaC__HAS_PREBUILT_DOXYGEN
+# The install targets don't copy whole directories so we have to
+# handle 'api/' specially:
+install-data-local:
+ $(mkinstalldirs) $(DESTDIR)$(docdir)/api
+ (cd $(srcdir)/api && $(INSTALL_DATA) * $(DESTDIR)$(docdir)/api)
+uninstall-local:
+ rm -rf $(DESTDIR)$(docdir)/api
+endif
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 0000000..6beaaf8
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,774 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# flac - Command-line FLAC encoder/decoder
+# Copyright (C) 2002-2009 Josh Coalson
+# Copyright (C) 2011-2023 Xiph.Org Foundation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \
+ $(top_srcdir)/m4/add_cxxflags.m4 \
+ $(top_srcdir)/m4/ax_add_fortify_source.m4 \
+ $(top_srcdir)/m4/ax_check_compile_flag.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/bswap.m4 $(top_srcdir)/m4/clang.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/gcc_version.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/ogg.m4 \
+ $(top_srcdir)/m4/really_gcc.m4 \
+ $(top_srcdir)/m4/stack_protect.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = Doxyfile
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(docdir)"
+DATA = $(doc_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir distdir-am
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_64_BIT_WORDS = @ENABLE_64_BIT_WORDS@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLAC__HAS_OGG = @FLAC__HAS_OGG@
+FLAC__TEST_LEVEL = @FLAC__TEST_LEVEL@
+FLAC__TEST_WITH_VALGRIND = @FLAC__TEST_WITH_VALGRIND@
+GCC_MAJOR_VERSION = @GCC_MAJOR_VERSION@
+GCC_MINOR_VERSION = @GCC_MINOR_VERSION@
+GCC_VERSION = @GCC_VERSION@
+GIT_COMMIT_VERSION_HASH = @GIT_COMMIT_VERSION_HASH@
+GIT_FOUND = @GIT_FOUND@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_FUZZING_ENGINE = @LIB_FUZZING_ENGINE@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OBJ_FORMAT = @OBJ_FORMAT@
+OGG_CFLAGS = @OGG_CFLAGS@
+OGG_LIBS = @OGG_LIBS@
+OGG_PACKAGE = @OGG_PACKAGE@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANDOC = @PANDOC@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RC = @RC@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = . images
+@FLaC__HAS_DOXYGEN_FALSE@@FLaC__HAS_PREBUILT_DOXYGEN_TRUE@doc_DATA = \
+@FLaC__HAS_DOXYGEN_FALSE@@FLaC__HAS_PREBUILT_DOXYGEN_TRUE@ FLAC.tag
+
+@FLaC__HAS_DOXYGEN_TRUE@doc_DATA = \
+@FLaC__HAS_DOXYGEN_TRUE@ FLAC.tag
+
+EXTRA_DIST = Doxyfile.in doxygen.footer.html \
+ isoflac.txt $(doc_DATA) CMakeLists.txt \
+ api
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign doc/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-docDATA: $(doc_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
+ done
+
+uninstall-docDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+@FLaC__HAS_DOXYGEN_FALSE@all-local:
+all-am: Makefile $(DATA) all-local
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(docdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+@FLaC__HAS_DOXYGEN_FALSE@distclean-local:
+@FLaC__HAS_DOXYGEN_FALSE@@FLaC__HAS_PREBUILT_DOXYGEN_FALSE@install-data-local:
+@FLaC__HAS_DOXYGEN_FALSE@@FLaC__HAS_PREBUILT_DOXYGEN_FALSE@uninstall-local:
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local install-docDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-docDATA uninstall-local
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
+ check check-am clean clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-generic distclean-libtool \
+ distclean-local distclean-tags distdir dvi dvi-am html html-am \
+ info info-am install install-am install-data install-data-am \
+ install-data-local install-docDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-docDATA \
+ uninstall-local
+
+.PRECIOUS: Makefile
+
+
+@FLaC__HAS_DOXYGEN_TRUE@all-local: Doxyfile
+@FLaC__HAS_DOXYGEN_TRUE@FLAC.tag: Doxyfile
+@FLaC__HAS_DOXYGEN_TRUE@ doxygen Doxyfile
+@FLaC__HAS_DOXYGEN_TRUE@ rm -rf api
+@FLaC__HAS_DOXYGEN_TRUE@ mv doxytmp/html api
+@FLaC__HAS_DOXYGEN_TRUE@ rm -rf doxytmp
+
+# The install targets don't copy whole directories so we have to
+# handle 'api/' specially:
+@FLaC__HAS_DOXYGEN_TRUE@install-data-local:
+@FLaC__HAS_DOXYGEN_TRUE@ $(mkinstalldirs) $(DESTDIR)$(docdir)/api
+@FLaC__HAS_DOXYGEN_TRUE@ (cd $(builddir)/api && $(INSTALL_DATA) * $(DESTDIR)$(docdir)/api)
+@FLaC__HAS_DOXYGEN_TRUE@uninstall-local:
+@FLaC__HAS_DOXYGEN_TRUE@ rm -rf $(DESTDIR)$(docdir)/api
+@FLaC__HAS_DOXYGEN_TRUE@distclean-local:
+@FLaC__HAS_DOXYGEN_TRUE@ rm -rf FLAC.tag api doxytmp
+
+# The install targets don't copy whole directories so we have to
+# handle 'api/' specially:
+@FLaC__HAS_PREBUILT_DOXYGEN_TRUE@install-data-local:
+@FLaC__HAS_PREBUILT_DOXYGEN_TRUE@ $(mkinstalldirs) $(DESTDIR)$(docdir)/api
+@FLaC__HAS_PREBUILT_DOXYGEN_TRUE@ (cd $(srcdir)/api && $(INSTALL_DATA) * $(DESTDIR)$(docdir)/api)
+@FLaC__HAS_PREBUILT_DOXYGEN_TRUE@uninstall-local:
+@FLaC__HAS_PREBUILT_DOXYGEN_TRUE@ rm -rf $(DESTDIR)$(docdir)/api
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/doxygen.footer.html b/doc/doxygen.footer.html
new file mode 100644
index 0000000..e395c61
--- /dev/null
+++ b/doc/doxygen.footer.html
@@ -0,0 +1,15 @@
+
+<hr size="1"/>
+
+Copyright (c) 2000-2009 Josh Coalson
+Copyright (c) 2011-2023 Xiph.Org Foundation
+
+<!-- Copyright (c) 2000-2009 Josh Coalson -->
+<!-- Copyright (c) 2011-2023 Xiph.Org Foundation -->
+<!-- Permission is granted to copy, distribute and/or modify this document -->
+<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
+<!-- or any later version published by the Free Software Foundation; -->
+<!-- with no invariant sections. -->
+<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->
+</body>
+</html>
diff --git a/doc/images/Makefile.am b/doc/images/Makefile.am
new file mode 100644
index 0000000..1e30a5c
--- /dev/null
+++ b/doc/images/Makefile.am
@@ -0,0 +1,25 @@
+# FLAC - Free Lossless Audio Codec
+# Copyright (C) 2001-2009 Josh Coalson
+# Copyright (C) 2011-2023 Xiph.Org Foundation
+#
+# This file is part the FLAC project. FLAC is comprised of several
+# components distributed under different licenses. The codec libraries
+# are distributed under Xiph.Org's BSD-like license (see the file
+# COPYING.Xiph in this distribution). All other programs, libraries, and
+# plugins are distributed under the GPL (see COPYING.GPL). The documentation
+# is distributed under the Gnu FDL (see COPYING.FDL). Each file in the
+# FLAC distribution contains at the top the terms under which it may be
+# distributed.
+#
+# Since this particular file is relevant to all components of FLAC,
+# it may be distributed under the Xiph.Org license, which is the least
+# restrictive of those mentioned above. See the file COPYING.Xiph in this
+# distribution.
+
+logosdir = $(htmldir)/images
+
+logos_DATA = \
+ logo.svg \
+ logo130.gif
+
+EXTRA_DIST = $(logos_DATA)
diff --git a/doc/images/Makefile.in b/doc/images/Makefile.in
new file mode 100644
index 0000000..fd5edd2
--- /dev/null
+++ b/doc/images/Makefile.in
@@ -0,0 +1,557 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# FLAC - Free Lossless Audio Codec
+# Copyright (C) 2001-2009 Josh Coalson
+# Copyright (C) 2011-2023 Xiph.Org Foundation
+#
+# This file is part the FLAC project. FLAC is comprised of several
+# components distributed under different licenses. The codec libraries
+# are distributed under Xiph.Org's BSD-like license (see the file
+# COPYING.Xiph in this distribution). All other programs, libraries, and
+# plugins are distributed under the GPL (see COPYING.GPL). The documentation
+# is distributed under the Gnu FDL (see COPYING.FDL). Each file in the
+# FLAC distribution contains at the top the terms under which it may be
+# distributed.
+#
+# Since this particular file is relevant to all components of FLAC,
+# it may be distributed under the Xiph.Org license, which is the least
+# restrictive of those mentioned above. See the file COPYING.Xiph in this
+# distribution.
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc/images
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \
+ $(top_srcdir)/m4/add_cxxflags.m4 \
+ $(top_srcdir)/m4/ax_add_fortify_source.m4 \
+ $(top_srcdir)/m4/ax_check_compile_flag.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/bswap.m4 $(top_srcdir)/m4/clang.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/gcc_version.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/ogg.m4 \
+ $(top_srcdir)/m4/really_gcc.m4 \
+ $(top_srcdir)/m4/stack_protect.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(logosdir)"
+DATA = $(logos_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_64_BIT_WORDS = @ENABLE_64_BIT_WORDS@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLAC__HAS_OGG = @FLAC__HAS_OGG@
+FLAC__TEST_LEVEL = @FLAC__TEST_LEVEL@
+FLAC__TEST_WITH_VALGRIND = @FLAC__TEST_WITH_VALGRIND@
+GCC_MAJOR_VERSION = @GCC_MAJOR_VERSION@
+GCC_MINOR_VERSION = @GCC_MINOR_VERSION@
+GCC_VERSION = @GCC_VERSION@
+GIT_COMMIT_VERSION_HASH = @GIT_COMMIT_VERSION_HASH@
+GIT_FOUND = @GIT_FOUND@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_FUZZING_ENGINE = @LIB_FUZZING_ENGINE@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OBJ_FORMAT = @OBJ_FORMAT@
+OGG_CFLAGS = @OGG_CFLAGS@
+OGG_LIBS = @OGG_LIBS@
+OGG_PACKAGE = @OGG_PACKAGE@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANDOC = @PANDOC@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RC = @RC@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+logosdir = $(htmldir)/images
+logos_DATA = \
+ logo.svg \
+ logo130.gif
+
+EXTRA_DIST = $(logos_DATA)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/images/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign doc/images/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-logosDATA: $(logos_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logos_DATA)'; test -n "$(logosdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logosdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logosdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logosdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logosdir)" || exit $$?; \
+ done
+
+uninstall-logosDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logos_DATA)'; test -n "$(logosdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logosdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(logosdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-logosDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-logosDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-logosDATA \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags-am uninstall uninstall-am uninstall-logosDATA
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/images/logo.svg b/doc/images/logo.svg
new file mode 100644
index 0000000..4ee2d41
--- /dev/null
+++ b/doc/images/logo.svg
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ width="262"
+ height="130"
+ sodipodi:docname="logo.svg"
+ inkscape:export-filename="/home/martijn/bin/flac/doc/html/images/logo130.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4747">
+ <rect
+ y="108.66365"
+ x="58.024467"
+ height="31.744326"
+ width="208.41971"
+ id="rect4749"
+ style="fill:#ffffff;fill-opacity:0.91542287;stroke:#41b348;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1680"
+ inkscape:window-height="971"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="3.8432063"
+ inkscape:cx="50.316519"
+ inkscape:cy="46.312655"
+ inkscape:window-x="-4"
+ inkscape:window-y="-6"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <rect
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="rect2987"
+ width="262"
+ height="130"
+ x="0"
+ y="1.7763568e-15" />
+ <rect
+ style="fill:#34a02c;fill-opacity:1;stroke:none"
+ id="rect2989"
+ width="8.3984327"
+ height="11.97043"
+ x="2.8360443"
+ y="114.36095"
+ inkscape:tile-cx="7.0352583"
+ inkscape:tile-cy="120.34616"
+ inkscape:tile-w="8.3984327"
+ inkscape:tile-h="11.97043"
+ inkscape:tile-x0="2.8360419"
+ inkscape:tile-y0="114.36095" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="114.36095"
+ x="2.8360443"
+ height="11.97043"
+ width="8.3984327"
+ id="use4591"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="98.440277"
+ x="2.8360443"
+ height="11.97043"
+ width="8.3984327"
+ id="use4593"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="82.5196"
+ x="2.8360443"
+ height="11.97043"
+ width="8.3984327"
+ id="use4595"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="66.59893"
+ x="2.8360443"
+ height="11.97043"
+ width="8.3984327"
+ id="use4597"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="50.678257"
+ x="2.8360443"
+ height="11.97043"
+ width="8.3984327"
+ id="use4599"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="34.757584"
+ x="2.8360443"
+ height="11.97043"
+ width="8.3984327"
+ id="use4601"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="18.836912"
+ x="2.8360443"
+ height="11.97043"
+ width="8.3984327"
+ id="use4603"
+ style="fill:#ff0000;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="2.9162366"
+ x="2.8360443"
+ height="11.97043"
+ width="8.3984327"
+ id="use4605"
+ style="fill:#ff0000;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="114.36095"
+ x="15.853616"
+ height="11.97043"
+ width="8.3984327"
+ id="use4607"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="98.440277"
+ x="15.853616"
+ height="11.97043"
+ width="8.3984327"
+ id="use4609"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="82.5196"
+ x="15.853616"
+ height="11.97043"
+ width="8.3984327"
+ id="use4611"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="66.59893"
+ x="15.853616"
+ height="11.97043"
+ width="8.3984327"
+ id="use4613"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="50.678257"
+ x="15.853616"
+ height="11.97043"
+ width="8.3984327"
+ id="use4615"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="34.757584"
+ x="15.853616"
+ height="11.97043"
+ width="8.3984327"
+ id="use4617"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="114.36095"
+ x="28.871185"
+ height="11.97043"
+ width="8.3984327"
+ id="use4623"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="98.440277"
+ x="28.871185"
+ height="11.97043"
+ width="8.3984327"
+ id="use4625"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="82.5196"
+ x="28.871185"
+ height="11.97043"
+ width="8.3984327"
+ id="use4627"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="66.59893"
+ x="28.871185"
+ height="11.97043"
+ width="8.3984327"
+ id="use4629"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="50.678257"
+ x="28.871185"
+ height="11.97043"
+ width="8.3984327"
+ id="use4631"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="34.757584"
+ x="28.871185"
+ height="11.97043"
+ width="8.3984327"
+ id="use4633"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="18.836912"
+ x="28.871185"
+ height="11.97043"
+ width="8.3984327"
+ id="use4635"
+ style="fill:#ff0000;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="114.36095"
+ x="41.888756"
+ height="11.97043"
+ width="8.3984327"
+ id="use4639"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="98.440277"
+ x="41.888756"
+ height="11.97043"
+ width="8.3984327"
+ id="use4641"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="82.5196"
+ x="41.888756"
+ height="11.97043"
+ width="8.3984327"
+ id="use4643"
+ style="fill:#34a02c;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:tile-y0="114.36095"
+ inkscape:tile-x0="2.8360419"
+ y="66.59893"
+ x="41.888756"
+ height="11.97043"
+ width="8.3984327"
+ id="use4645"
+ style="fill:#ffff00;fill-opacity:1;stroke:none" />
+ <g
+ id="g4740"
+ style="fill:#ffffff;fill-opacity:1">
+ <path
+ id="path4719"
+ d="m 167.09375,30.28125 c -4.98582,-0.05597 -10.83371,0.544011 -17.65625,2.03125 L 146.25,50.90625 c 6.2402,-3.841378 28.72275,-6.439176 29.15625,4.03125 l 0.25,6.375 c -20.10772,-13.818292 -38.48096,-0.631226 -39.0625,19.125 -0.58154,19.75623 24.38101,31.46172 38.875,16 l 0.0625,5.875 17.375,-1.53125 1.15625,-49.375 c 0.19095,-8.148311 -5.36352,-20.882474 -26.96875,-21.125 z m -1.90625,38.875 c 5.33673,0 9.65625,4.075677 9.65625,9.125 0,5.049323 -4.31952,9.15625 -9.65625,9.15625 -5.33673,0 -9.65625,-4.106927 -9.65625,-9.15625 0,-5.049323 4.31952,-9.125 9.65625,-9.125 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4705"
+ d="m 66.419944,102.30969 20.238764,-2.29986 0,-49.492976 10.855337,0 0,-17.662922 -11.223315,0 c 1.030499,-9.919211 4.729089,-9.43064 17.29494,-9.199438 L 98.617978,4.335674 C 88.053405,4.3210512 66.008231,6.32016 66.419944,32.669944 l -6.807584,0 -3.863764,17.662921 10.671348,0.183989 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 108.94803,102.30969 20.23877,-2.29986 0,-93.3270875 -20.23877,2.2078652 z"
+ id="path4707"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="sssccsccccs"
+ inkscape:connector-curvature="0"
+ id="path4723"
+ d="m 231.29725,30.118335 c -9.62029,0.652151 -17.24238,4.090284 -24.04461,11.842706 -13.60446,15.504845 -12.39784,39.604586 3.18708,53.122515 15.58492,13.517924 40.64278,8.399604 47.71564,-0.389642 L 247.34775,78.958636 c -6.47017,7.37397 -15.93762,7.267658 -23.36382,0.82638 -7.42621,-6.441278 -8.1621,-17.252972 -1.69193,-24.626942 l 0.11279,-0.112795 c 6.48447,-7.259969 17.70592,-7.662694 25.09092,-1.257152 l 10.86397,-15.411334 c -7.76321,-6.645971 -17.51834,-8.905444 -27.06243,-8.258458 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ </g>
+ <g
+ style="font-size:17.05998611px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Swis721 BT;-inkscape-font-specification:Swis721 BT"
+ id="text4751">
+ <path
+ d="m 70.858501,114.93679 0,1.16008 -1.484218,0 0,7.77935 -1.415979,0 0,-7.77935 -1.194199,0 0,-1.16008 1.194199,0 0,-1.51834 c -2e-6,-0.6369 0.181971,-1.13163 0.545919,-1.48422 0.375318,-0.36393 0.892803,-0.54591 1.552459,-0.54592 0.261583,10e-6 0.528855,0.0284 0.801819,0.0853 l 0,1.17714 c -0.216097,-0.0114 -0.38101,-0.017 -0.494739,-0.0171 -0.659656,1e-5 -0.989482,0.3014 -0.989479,0.90418 l 0,1.39892 1.484218,0"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4756" />
+ <path
+ d="m 76.510422,116.18217 c -0.955364,0.0228 -1.671883,0.24453 -2.149559,0.66534 -0.477682,0.42082 -0.716521,1.21695 -0.716519,2.38839 l 0,4.64032 -1.433039,0 0,-8.93943 1.313619,0 0,1.6207 c 0.409437,-0.67102 0.801816,-1.1487 1.177139,-1.43304 0.386689,-0.2957 0.807502,-0.44355 1.262439,-0.44356 0.125102,10e-6 0.307075,0.0171 0.54592,0.0512 l 0,1.4501"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4758" />
+ <path
+ d="m 85.433328,119.88418 -6.585155,0 c 0.02275,0.93262 0.261584,1.67757 0.71652,2.23486 0.466303,0.5573 1.103208,0.83594 1.910718,0.83594 1.160073,0 1.939145,-0.5971 2.337218,-1.7913 l 1.433039,0 c -0.181981,0.97811 -0.608481,1.74012 -1.279499,2.28604 -0.671033,0.54592 -1.518344,0.81888 -2.541938,0.81888 -1.251069,0 -2.240547,-0.42081 -2.968438,-1.26244 -0.727893,-0.853 -1.091839,-2.01307 -1.091839,-3.48024 0,-1.46715 0.369632,-2.6386 1.108899,-3.51435 0.750637,-0.88711 1.745802,-1.33067 2.985498,-1.33068 2.649977,10e-6 3.974968,1.73444 3.974977,5.20329 m -6.551035,-1.16008 5.032696,0 c -7e-6,-0.77338 -0.23316,-1.42165 -0.699459,-1.94483 -0.466313,-0.52317 -1.057725,-0.78476 -1.774239,-0.78476 -0.716523,0 -1.307936,0.25022 -1.774239,0.75064 -0.466308,0.48906 -0.727894,1.14871 -0.784759,1.97895"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4760" />
+ <path
+ d="m 94.529766,119.88418 -6.585154,0 c 0.02274,0.93262 0.261584,1.67757 0.716519,2.23486 0.466303,0.5573 1.103209,0.83594 1.910718,0.83594 1.160074,0 1.939146,-0.5971 2.337218,-1.7913 l 1.433039,0 c -0.181981,0.97811 -0.60848,1.74012 -1.279499,2.28604 -0.671032,0.54592 -1.518344,0.81888 -2.541938,0.81888 -1.251069,0 -2.240547,-0.42081 -2.968437,-1.26244 -0.727894,-0.853 -1.09184,-2.01307 -1.091839,-3.48024 -10e-7,-1.46715 0.369632,-2.6386 1.108899,-3.51435 0.750637,-0.88711 1.745802,-1.33067 2.985497,-1.33068 2.649978,10e-6 3.974969,1.73444 3.974977,5.20329 m -6.551035,-1.16008 5.032696,0 c -7e-6,-0.77338 -0.23316,-1.42165 -0.699459,-1.94483 -0.466312,-0.52317 -1.057724,-0.78476 -1.774239,-0.78476 -0.716523,0 -1.307935,0.25022 -1.774238,0.75064 -0.466309,0.48906 -0.727895,1.14871 -0.78476,1.97895"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4762" />
+ <path
+ d="m 102.74554,111.43949 0,12.43673 -1.43304,0 0,-12.43673 1.43304,0"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4764" />
+ <path
+ d="m 108.49209,114.68089 c 1.28518,10e-6 2.28034,0.42651 2.9855,1.2795 0.71651,0.84163 1.07477,2.03583 1.07478,3.58259 -1e-5,1.46717 -0.36396,2.62156 -1.09184,3.46318 -0.71653,0.84163 -1.70032,1.26244 -2.95138,1.26244 -1.27382,0 -2.26898,-0.42081 -2.9855,-1.26244 -0.70515,-0.853 -1.05772,-2.03013 -1.05772,-3.53142 0,-1.50127 0.35826,-2.67272 1.07478,-3.51435 0.71652,-0.85299 1.70031,-1.27949 2.95138,-1.2795 m 0.0171,1.31362 c -0.79614,0 -1.42167,0.31277 -1.8766,0.9383 -0.45494,0.61416 -0.6824,1.46147 -0.6824,2.54193 0,1.08047 0.22746,1.93347 0.6824,2.559 0.45493,0.61416 1.08046,0.92124 1.8766,0.92124 0.78475,0 1.4046,-0.30708 1.85954,-0.92124 0.4663,-0.62553 0.69945,-1.46147 0.69946,-2.50782 -1e-5,-1.1032 -0.22748,-1.96757 -0.6824,-2.59311 -0.44357,-0.62553 -1.0691,-0.9383 -1.8766,-0.9383"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4766" />
+ <path
+ d="m 115.13189,121.21486 c 0.0682,0.53455 0.25021,0.96105 0.54592,1.2795 0.30707,0.30708 0.85299,0.46062 1.63775,0.46062 0.62553,0 1.12596,-0.1251 1.50128,-0.37532 0.38669,-0.26158 0.58004,-0.60278 0.58004,-1.0236 0,-0.32982 -0.10805,-0.59141 -0.32414,-0.78476 -0.2161,-0.19334 -0.56867,-0.34688 -1.05772,-0.46062 l -1.33068,-0.32414 c -1.05772,-0.25021 -1.79698,-0.56297 -2.21779,-0.9383 -0.40944,-0.38668 -0.61416,-0.9326 -0.61416,-1.63775 0,-0.83025 0.31276,-1.4899 0.9383,-1.97896 0.62553,-0.50042 1.45578,-0.75063 2.49075,-0.75064 1.03497,10e-6 1.8311,0.23885 2.3884,0.71652 0.55729,0.47769 0.84162,1.1544 0.853,2.03014 l -1.50128,0 c -0.0341,-0.95536 -0.63122,-1.43304 -1.7913,-1.43304 -0.58004,0 -1.04066,0.12511 -1.38185,0.37532 -0.34121,0.23884 -0.51181,0.56298 -0.5118,0.97242 -10e-6,0.31846 0.13079,0.58004 0.39238,0.78476 0.26158,0.19335 0.68239,0.35826 1.26243,0.49473 l 1.3648,0.32414 c 0.88712,0.2161 1.52971,0.52318 1.92778,0.92124 0.39806,0.3867 0.59709,0.90987 0.5971,1.56952 -1e-5,0.86438 -0.33552,1.55246 -1.00654,2.06426 -0.65966,0.5118 -1.55246,0.7677 -2.67842,0.7677 -2.30878,0 -3.49729,-1.01791 -3.56553,-3.05374 l 1.50128,0"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4768" />
+ <path
+ d="m 123.5286,121.21486 c 0.0682,0.53455 0.25021,0.96105 0.54592,1.2795 0.30708,0.30708 0.85299,0.46062 1.63776,0.46062 0.62553,0 1.12595,-0.1251 1.50128,-0.37532 0.38668,-0.26158 0.58003,-0.60278 0.58004,-1.0236 -1e-5,-0.32982 -0.10806,-0.59141 -0.32414,-0.78476 -0.2161,-0.19334 -0.56868,-0.34688 -1.05772,-0.46062 l -1.33068,-0.32414 c -1.05772,-0.25021 -1.79699,-0.56297 -2.2178,-0.9383 -0.40944,-0.38668 -0.61416,-0.9326 -0.61416,-1.63775 0,-0.83025 0.31277,-1.4899 0.9383,-1.97896 0.62553,-0.50042 1.45578,-0.75063 2.49076,-0.75064 1.03496,10e-6 1.8311,0.23885 2.3884,0.71652 0.55728,0.47769 0.84161,1.1544 0.85299,2.03014 l -1.50127,0 c -0.0341,-0.95536 -0.63123,-1.43304 -1.7913,-1.43304 -0.58005,0 -1.04066,0.12511 -1.38186,0.37532 -0.3412,0.23884 -0.5118,0.56298 -0.5118,0.97242 0,0.31846 0.13079,0.58004 0.39238,0.78476 0.26158,0.19335 0.68239,0.35826 1.26244,0.49473 l 1.3648,0.32414 c 0.88711,0.2161 1.5297,0.52318 1.92777,0.92124 0.39806,0.3867 0.5971,0.90987 0.5971,1.56952 0,0.86438 -0.33552,1.55246 -1.00653,2.06426 -0.65966,0.5118 -1.55247,0.7677 -2.67842,0.7677 -2.30879,0 -3.4973,-1.01791 -3.56554,-3.05374 l 1.50128,0"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4770" />
+ <path
+ d="m 132.30063,111.43949 0,12.43673 -1.43304,0 0,-12.43673 1.43304,0"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4772" />
+ <path
+ d="m 142.0904,119.88418 -6.58516,0 c 0.0228,0.93262 0.26159,1.67757 0.71652,2.23486 0.4663,0.5573 1.10321,0.83594 1.91072,0.83594 1.16007,0 1.93915,-0.5971 2.33722,-1.7913 l 1.43304,0 c -0.18198,0.97811 -0.60848,1.74012 -1.2795,2.28604 -0.67103,0.54592 -1.51835,0.81888 -2.54194,0.81888 -1.25107,0 -2.24055,-0.42081 -2.96844,-1.26244 -0.72789,-0.853 -1.09184,-2.01307 -1.09184,-3.48024 0,-1.46715 0.36964,-2.6386 1.1089,-3.51435 0.75064,-0.88711 1.7458,-1.33067 2.9855,-1.33068 2.64998,10e-6 3.97497,1.73444 3.97498,5.20329 m -6.55104,-1.16008 5.0327,0 c -1e-5,-0.77338 -0.23316,-1.42165 -0.69946,-1.94483 -0.46631,-0.52317 -1.05773,-0.78476 -1.77424,-0.78476 -0.71652,0 -1.30794,0.25022 -1.77424,0.75064 -0.46631,0.48906 -0.72789,1.14871 -0.78476,1.97895"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4774" />
+ <path
+ d="m 144.68698,121.21486 c 0.0682,0.53455 0.25021,0.96105 0.54592,1.2795 0.30707,0.30708 0.85299,0.46062 1.63776,0.46062 0.62552,0 1.12595,-0.1251 1.50127,-0.37532 0.38669,-0.26158 0.58004,-0.60278 0.58004,-1.0236 0,-0.32982 -0.10805,-0.59141 -0.32414,-0.78476 -0.21609,-0.19334 -0.56867,-0.34688 -1.05771,-0.46062 l -1.33068,-0.32414 c -1.05773,-0.25021 -1.79699,-0.56297 -2.2178,-0.9383 -0.40944,-0.38668 -0.61416,-0.9326 -0.61416,-1.63775 0,-0.83025 0.31276,-1.4899 0.9383,-1.97896 0.62553,-0.50042 1.45578,-0.75063 2.49076,-0.75064 1.03496,10e-6 1.8311,0.23885 2.38839,0.71652 0.55729,0.47769 0.84162,1.1544 0.853,2.03014 l -1.50128,0 c -0.0341,-0.95536 -0.63122,-1.43304 -1.79129,-1.43304 -0.58005,0 -1.04067,0.12511 -1.38186,0.37532 -0.3412,0.23884 -0.5118,0.56298 -0.5118,0.97242 0,0.31846 0.13079,0.58004 0.39238,0.78476 0.26158,0.19335 0.68239,0.35826 1.26244,0.49473 l 1.3648,0.32414 c 0.88711,0.2161 1.5297,0.52318 1.92777,0.92124 0.39806,0.3867 0.5971,0.90987 0.5971,1.56952 0,0.86438 -0.33552,1.55246 -1.00654,2.06426 -0.65966,0.5118 -1.55246,0.7677 -2.67841,0.7677 -2.30879,0 -3.4973,-1.01791 -3.56554,-3.05374 l 1.50128,0"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4776" />
+ <path
+ d="m 153.08369,121.21486 c 0.0682,0.53455 0.25021,0.96105 0.54592,1.2795 0.30708,0.30708 0.853,0.46062 1.63776,0.46062 0.62553,0 1.12595,-0.1251 1.50128,-0.37532 0.38668,-0.26158 0.58003,-0.60278 0.58004,-1.0236 -1e-5,-0.32982 -0.10806,-0.59141 -0.32414,-0.78476 -0.2161,-0.19334 -0.56867,-0.34688 -1.05772,-0.46062 l -1.33068,-0.32414 c -1.05772,-0.25021 -1.79699,-0.56297 -2.2178,-0.9383 -0.40944,-0.38668 -0.61416,-0.9326 -0.61416,-1.63775 0,-0.83025 0.31277,-1.4899 0.9383,-1.97896 0.62553,-0.50042 1.45578,-0.75063 2.49076,-0.75064 1.03497,10e-6 1.8311,0.23885 2.3884,0.71652 0.55728,0.47769 0.84162,1.1544 0.853,2.03014 l -1.50128,0 c -0.0341,-0.95536 -0.63123,-1.43304 -1.7913,-1.43304 -0.58004,0 -1.04066,0.12511 -1.38186,0.37532 -0.3412,0.23884 -0.5118,0.56298 -0.5118,0.97242 0,0.31846 0.13079,0.58004 0.39238,0.78476 0.26158,0.19335 0.6824,0.35826 1.26244,0.49473 l 1.3648,0.32414 c 0.88711,0.2161 1.5297,0.52318 1.92778,0.92124 0.39806,0.3867 0.59709,0.90987 0.5971,1.56952 -1e-5,0.86438 -0.33552,1.55246 -1.00654,2.06426 -0.65966,0.5118 -1.55247,0.7677 -2.67842,0.7677 -2.30879,0 -3.4973,-1.01791 -3.56554,-3.05374 l 1.50128,0"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4778" />
+ <path
+ d="m 165.54714,117.58109 c 0.0682,-1.93346 1.26244,-2.90019 3.5826,-2.9002 1.1032,10e-6 1.93914,0.21041 2.50781,0.63122 0.56866,0.40945 0.853,1.01223 0.853,1.80836 l 0,5.25447 c 0,0.46631 0.25589,0.69946 0.7677,0.69946 0.10235,0 0.20471,-0.0114 0.30708,-0.0341 l 0,1.07478 c -0.39807,0.10236 -0.72221,0.15354 -0.97242,0.15354 -0.45494,0 -0.80182,-0.10805 -1.04066,-0.32414 -0.22747,-0.20472 -0.36964,-0.53455 -0.4265,-0.98948 -0.95536,0.87575 -1.96759,1.31362 -3.03667,1.31362 -0.8985,0 -1.61502,-0.23884 -2.14956,-0.71652 -0.52318,-0.47768 -0.78476,-1.12027 -0.78476,-1.92778 0,-0.26158 0.0228,-0.50042 0.0682,-0.71652 0.0569,-0.21609 0.11373,-0.40375 0.1706,-0.56298 0.0682,-0.17059 0.18197,-0.32413 0.3412,-0.46062 0.15922,-0.14785 0.29002,-0.26726 0.39238,-0.35826 0.11373,-0.091 0.2957,-0.17628 0.54592,-0.2559 0.26158,-0.091 0.46062,-0.15353 0.5971,-0.18766 0.13647,-0.0455 0.37531,-0.0967 0.71652,-0.15354 0.34119,-0.0569 0.59141,-0.0967 0.75064,-0.11942 0.15922,-0.0227 0.44355,-0.0625 0.853,-0.11942 0.55728,-0.0682 0.94398,-0.17628 1.16007,-0.32413 0.21609,-0.14785 0.32414,-0.36963 0.32414,-0.66534 l 0,-0.37532 c 0,-0.43218 -0.17629,-0.76201 -0.52886,-0.98948 -0.3412,-0.22746 -0.83025,-0.3412 -1.46715,-0.3412 -0.65966,0 -1.16009,0.1308 -1.50128,0.39238 -0.34121,0.25022 -0.54024,0.64828 -0.5971,1.1942 l -1.43304,0 m 2.84902,5.44213 c 0.78475,0 1.42734,-0.20472 1.92777,-0.61416 0.50043,-0.42081 0.75064,-0.87006 0.75064,-1.34774 l 0,-1.60364 c -0.28433,0.13649 -0.71652,0.25022 -1.29655,0.3412 -0.56868,0.091 -1.06341,0.17061 -1.48422,0.23884 -0.42082,0.0683 -0.80183,0.23316 -1.14302,0.49474 -0.3412,0.25022 -0.5118,0.60279 -0.5118,1.05772 0,0.45494 0.15354,0.80751 0.46062,1.05772 0.30707,0.25022 0.73926,0.37532 1.29656,0.37532"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4780" />
+ <path
+ d="m 182.04361,123.87622 -1.2795,0 0,-1.24538 c -0.42082,0.59142 -0.85869,1.01223 -1.31362,1.26244 -0.45493,0.25021 -1.01223,0.37532 -1.67187,0.37532 -0.86438,0 -1.55815,-0.22178 -2.08132,-0.66534 -0.5118,-0.44356 -0.7677,-1.03497 -0.7677,-1.77424 l 0,-6.89223 1.41598,0 0,6.32925 c -1e-5,0.53455 0.16491,0.96105 0.49474,1.2795 0.32982,0.31846 0.77906,0.47768 1.34773,0.47768 0.73927,0 1.33068,-0.27296 1.77424,-0.81888 0.44356,-0.55729 0.66534,-1.29087 0.66534,-2.20074 l 0,-5.06681 1.41598,0 0,8.93943"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4782" />
+ <path
+ d="m 191.58201,111.43949 0,12.43673 -1.26244,0 0,-1.17714 c -0.3867,0.5573 -0.80751,0.95536 -1.26244,1.1942 -0.44356,0.25021 -0.97242,0.37532 -1.58658,0.37532 -1.20557,0 -2.15524,-0.43219 -2.84901,-1.29656 -0.69378,-0.87574 -1.04066,-2.06994 -1.04066,-3.5826 0,-1.42166 0.34688,-2.55899 1.04066,-3.41199 0.70514,-0.86437 1.63775,-1.29655 2.79783,-1.29656 1.22832,10e-6 2.14387,0.46063 2.74666,1.38186 l 0,-4.62326 1.41598,0 m -3.9238,4.57208 c -0.77339,0 -1.39892,0.31846 -1.8766,0.95536 -0.47768,0.63691 -0.71652,1.47285 -0.71652,2.50781 0,1.04635 0.23884,1.88798 0.71652,2.52488 0.47768,0.62554 1.1089,0.9383 1.89366,0.9383 0.75064,0 1.35342,-0.31276 1.80836,-0.9383 0.45493,-0.62553 0.68239,-1.45578 0.6824,-2.49076 -1e-5,-1.06908 -0.22747,-1.91639 -0.6824,-2.54193 -0.45494,-0.6369 -1.06341,-0.95536 -1.82542,-0.95536"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4784" />
+ <path
+ d="m 195.15768,114.93679 0,8.93943 -1.41598,0 0,-8.93943 1.41598,0 m 0,-3.4973 0,1.7913 -1.43304,0 0,-1.7913 1.43304,0"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4786" />
+ <path
+ d="m 200.93515,114.68089 c 1.28518,10e-6 2.28034,0.42651 2.9855,1.2795 0.71651,0.84163 1.07477,2.03583 1.07478,3.58259 -1e-5,1.46717 -0.36396,2.62156 -1.09184,3.46318 -0.71653,0.84163 -1.70032,1.26244 -2.95138,1.26244 -1.27382,0 -2.26898,-0.42081 -2.9855,-1.26244 -0.70514,-0.853 -1.05772,-2.03013 -1.05772,-3.53142 0,-1.50127 0.35826,-2.67272 1.07478,-3.51435 0.71652,-0.85299 1.70031,-1.27949 2.95138,-1.2795 m 0.0171,1.31362 c -0.79614,0 -1.42167,0.31277 -1.8766,0.9383 -0.45493,0.61416 -0.6824,1.46147 -0.6824,2.54193 0,1.08047 0.22747,1.93347 0.6824,2.559 0.45493,0.61416 1.08046,0.92124 1.8766,0.92124 0.78475,0 1.4046,-0.30708 1.85954,-0.92124 0.4663,-0.62553 0.69945,-1.46147 0.69946,-2.50782 -1e-5,-1.1032 -0.22748,-1.96757 -0.6824,-2.59311 -0.44357,-0.62553 -1.0691,-0.9383 -1.8766,-0.9383"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4788" />
+ <path
+ d="m 218.75569,117.93935 -1.43304,0 c -0.091,-0.62553 -0.31846,-1.10321 -0.6824,-1.43304 -0.36395,-0.3412 -0.84163,-0.5118 -1.43304,-0.5118 -0.77339,0 -1.38186,0.31846 -1.82542,0.95536 -0.43219,0.62554 -0.64828,1.49559 -0.64828,2.61017 0,1.05773 0.22178,1.88798 0.66534,2.49076 0.44356,0.60279 1.05772,0.90418 1.84248,0.90418 1.21694,0 1.94483,-0.71652 2.18368,-2.14956 l 1.43304,0 c -0.091,1.09184 -0.45494,1.94484 -1.09184,2.559 -0.63691,0.60279 -1.48991,0.90418 -2.559,0.90418 -1.21695,0 -2.18368,-0.42081 -2.9002,-1.26244 -0.70514,-0.853 -1.05772,-2.0017 -1.05771,-3.44612 -1e-5,-1.47852 0.35825,-2.66135 1.07477,-3.54847 0.72789,-0.88711 1.69463,-1.33067 2.9002,-1.33068 1.03497,10e-6 1.85953,0.27865 2.4737,0.83594 0.62552,0.5573 0.9781,1.3648 1.05772,2.42252"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4790" />
+ <path
+ d="m 223.90541,114.68089 c 1.28518,10e-6 2.28035,0.42651 2.9855,1.2795 0.71651,0.84163 1.07477,2.03583 1.07478,3.58259 -1e-5,1.46717 -0.36396,2.62156 -1.09184,3.46318 -0.71653,0.84163 -1.70032,1.26244 -2.95138,1.26244 -1.27381,0 -2.26898,-0.42081 -2.9855,-1.26244 -0.70514,-0.853 -1.05772,-2.03013 -1.05772,-3.53142 0,-1.50127 0.35826,-2.67272 1.07478,-3.51435 0.71652,-0.85299 1.70031,-1.27949 2.95138,-1.2795 m 0.0171,1.31362 c -0.79614,0 -1.42167,0.31277 -1.8766,0.9383 -0.45493,0.61416 -0.6824,1.46147 -0.6824,2.54193 0,1.08047 0.22747,1.93347 0.6824,2.559 0.45493,0.61416 1.08046,0.92124 1.8766,0.92124 0.78475,0 1.4046,-0.30708 1.85954,-0.92124 0.4663,-0.62553 0.69945,-1.46147 0.69946,-2.50782 -1e-5,-1.1032 -0.22747,-1.96757 -0.6824,-2.59311 -0.44357,-0.62553 -1.0691,-0.9383 -1.8766,-0.9383"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4792" />
+ <path
+ d="m 236.97682,111.43949 0,12.43673 -1.26244,0 0,-1.17714 c -0.3867,0.5573 -0.80751,0.95536 -1.26243,1.1942 -0.44357,0.25021 -0.97243,0.37532 -1.58658,0.37532 -1.20558,0 -2.15525,-0.43219 -2.84902,-1.29656 -0.69377,-0.87574 -1.04066,-2.06994 -1.04066,-3.5826 0,-1.42166 0.34689,-2.55899 1.04066,-3.41199 0.70514,-0.86437 1.63775,-1.29655 2.79784,-1.29656 1.22831,10e-6 2.14386,0.46063 2.74665,1.38186 l 0,-4.62326 1.41598,0 m -3.92379,4.57208 c -0.77339,0 -1.39893,0.31846 -1.8766,0.95536 -0.47768,0.63691 -0.71652,1.47285 -0.71652,2.50781 0,1.04635 0.23884,1.88798 0.71652,2.52488 0.47767,0.62554 1.10889,0.9383 1.89366,0.9383 0.75063,0 1.35342,-0.31276 1.80835,-0.9383 0.45493,-0.62553 0.6824,-1.45578 0.6824,-2.49076 0,-1.06908 -0.22747,-1.91639 -0.6824,-2.54193 -0.45493,-0.6369 -1.06341,-0.95536 -1.82541,-0.95536"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4794" />
+ <path
+ d="m 246.57467,119.88418 -6.58516,0 c 0.0228,0.93262 0.26158,1.67757 0.71652,2.23486 0.4663,0.5573 1.10321,0.83594 1.91072,0.83594 1.16007,0 1.93914,-0.5971 2.33722,-1.7913 l 1.43304,0 c -0.18199,0.97811 -0.60849,1.74012 -1.2795,2.28604 -0.67104,0.54592 -1.51835,0.81888 -2.54194,0.81888 -1.25107,0 -2.24055,-0.42081 -2.96844,-1.26244 -0.72789,-0.853 -1.09184,-2.01307 -1.09184,-3.48024 0,-1.46715 0.36963,-2.6386 1.1089,-3.51435 0.75064,-0.88711 1.7458,-1.33067 2.9855,-1.33068 2.64998,10e-6 3.97497,1.73444 3.97498,5.20329 m -6.55104,-1.16008 5.0327,0 c -1e-5,-0.77338 -0.23316,-1.42165 -0.69946,-1.94483 -0.46632,-0.52317 -1.05773,-0.78476 -1.77424,-0.78476 -0.71652,0 -1.30794,0.25022 -1.77424,0.75064 -0.46631,0.48906 -0.72789,1.14871 -0.78476,1.97895"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4796" />
+ <path
+ d="m 255.10812,117.93935 -1.43304,0 c -0.091,-0.62553 -0.31846,-1.10321 -0.6824,-1.43304 -0.36395,-0.3412 -0.84163,-0.5118 -1.43304,-0.5118 -0.77339,0 -1.38186,0.31846 -1.82541,0.95536 -0.43219,0.62554 -0.64829,1.49559 -0.64828,2.61017 -1e-5,1.05773 0.22177,1.88798 0.66534,2.49076 0.44355,0.60279 1.05771,0.90418 1.84247,0.90418 1.21694,0 1.94484,-0.71652 2.18368,-2.14956 l 1.43304,0 c -0.091,1.09184 -0.45494,1.94484 -1.09184,2.559 -0.63691,0.60279 -1.48991,0.90418 -2.559,0.90418 -1.21694,0 -2.18368,-0.42081 -2.90019,-1.26244 -0.70515,-0.853 -1.05772,-2.0017 -1.05772,-3.44612 0,-1.47852 0.35826,-2.66135 1.07478,-3.54847 0.72789,-0.88711 1.69462,-1.33067 2.90019,-1.33068 1.03497,10e-6 1.85954,0.27865 2.4737,0.83594 0.62553,0.5573 0.9781,1.3648 1.05772,2.42252"
+ style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ id="path4798" />
+ </g>
+</svg>
diff --git a/doc/images/logo130.gif b/doc/images/logo130.gif
new file mode 100644
index 0000000..3200df3
--- /dev/null
+++ b/doc/images/logo130.gif
Binary files differ
diff --git a/doc/isoflac.txt b/doc/isoflac.txt
new file mode 100644
index 0000000..888aed7
--- /dev/null
+++ b/doc/isoflac.txt
@@ -0,0 +1,666 @@
+Encapsulation of FLAC in ISO Base Media File Format
+Version 0.0.4
+
+Table of Contents
+1 Scope
+2 Supporting Normative References
+3 Design Rules of Encapsulation
+ 3.1 File Type Identification
+ 3.2 Overview of Track Structure
+ 3.3 Definition of FLAC sample
+ 3.3.1 Sample entry format
+ 3.3.2 FLAC Specific Box
+ 3.3.3 Sample format
+ 3.3.4 Duration of FLAC sample
+ 3.3.5 Sub-sample
+ 3.3.6 Random Access
+ 3.3.6.1 Random Access Point
+ 3.4 Basic Structure (informative)
+ 3.4.1 Initial Movie
+ 3.5 Example of Encapsulation (informative)
+4 Acknowledgements
+5 Author's Address
+
+1 Scope
+
+ This document specifies the normative mapping for encapsulation of
+ FLAC coded audio bitstreams in ISO Base Media file format and its
+ derivatives. The encapsulation of FLAC coded bitstreams in
+ QuickTime file format is outside the scope of this specification.
+
+2 Supporting Normative References
+
+ [1] ISO/IEC 14496-12:2012 Corrected version
+
+ Information technology — Coding of audio-visual objects — Part
+ 12: ISO base media file format
+
+ [2] ISO/IEC 14496-12:2012/Amd.1:2013
+
+ Information technology — Coding of audio-visual objects — Part
+ 12: ISO base media file format AMENDMENT 1: Various
+ enhancements including support for large metadata
+
+ [3] FLAC format specification
+
+ https://xiph.org/flac/format.html
+
+ Definition of the FLAC Audio Codec stream format
+
+ [4] FLAC-in-Ogg mapping specification
+
+ https://xiph.org/flac/ogg_mapping.html
+
+ Ogg Encapsulation for the FLAC Audio Codec
+
+ [5] Matroska specification
+
+3 Design Rules of Encapsulation
+
+ 3.1 File Type Identification
+
+ This specification does not define any brand to declare files
+ which conform to this specification. Files which conform to
+ this specification shall contain at least one brand which
+ supports the requirements and the requirements described in
+ this clause without contradiction in the compatible brands
+ list of the File Type Box. The minimal support of the
+ encapsulation of FLAC bitstreams in ISO Base Media file format
+ requires the 'isom' brand.
+
+ 3.2 Overview of Track Structure
+
+ FLAC coded audio shall be encapsulated into the ISO Base
+ Media File Format as media data within an audio track.
+
+ + The handler_type field in the Handler Reference Box
+ shall be set to 'soun'.
+
+ + The Media Information Box shall contain the Sound Media
+ Header Box.
+
+ + The codingname of the sample entry is 'fLaC'.
+
+ This specification does not define any encapsulation
+ using MP4AudioSampleEntry with objectTypeIndication
+ specified by the MPEG-4 Registration Authority
+ (http://www.mp4ra.org/). See section 'Sample entry
+ format' for the definition of the sample entry.
+
+ + The 'dfLa' box is added to the sample entry to convey
+ initializing information for the decoder.
+
+ See section 'FLAC Specific Box' for the definition of
+ the box contents.
+
+ + A FLAC sample is exactly one FLAC frame as described
+ in the format specification[3]. See section
+ 'Sample format' for details of the frame contents.
+
+ + Every FLAC sample is a sync sample. No pre-roll or
+ lapping is required. See section 'Random Access' for
+ further details.
+
+ 3.3 Definition of a FLAC sample
+
+ 3.3.1 Sample entry format
+
+ For any track containing one or more FLAC bitstreams, a
+ sample entry describing the corresponding FLAC bitstream
+ shall be present inside the Sample Table Box. This version
+ of the specification defines only one sample entry format
+ named FLACSampleEntry whose codingname is 'fLaC'. This
+ sample entry includes exactly one FLAC Specific Box
+ defined in section 'FLAC specific box' as a mandatory box
+ and indicates that FLAC samples described by this sample
+ entry are stored by the sample format described in section
+ 'Sample format'.
+
+ The syntax and semantics of the FLACSampleEntry is shown
+ as follows. The data fields of this box and native
+ FLAC[3] structures encoded within FLAC blocks are both
+ stored in big-endian format, though for purposes of the
+ ISO BMFF container, FLAC native metadata and data blocks
+ are treated as unstructured octet streams.
+
+ class FLACSampleEntry() extends AudioSampleEntry ('fLaC'){
+ FLACSpecificBox();
+ }
+
+ The fields of the AudioSampleEntry portion shall be set as
+ follows:
+
+ + channelcount:
+
+ The channelcount field shall be set equal to the
+ channel count specified by the FLAC bitstream's native
+ METADATA_BLOCK_STREAMINFO header as described in [3].
+ Note that the FLAC FRAME_HEADER structure that begins
+ each FLAC sample redundantly encodes channel number;
+ the number of channels declared in each FRAME_HEADER
+ MUST match the number of channels declared here and in
+ the METADATA_BLOCK_STREAMINFO header.
+
+ + samplesize:
+
+ The samplesize field shall be set equal to the bits
+ per sample specified by the FLAC bitstream's native
+ METADATA_BLOCK_STREAMINFO header as described in [3].
+ Note that the FLAC FRAME_HEADER structure that begins
+ each FLAC sample redundantly encodes the number of
+ bits per sample; the bits per sample declared in each
+ FRAME_HEADER MUST match the samplesize declared here
+ and the bits per sample field declared in the
+ METADATA_BLOCK_STREAMINFO header.
+
+ + samplerate:
+
+ When possible, the samplerate field shall be set
+ equal to the sample rate specified by the FLAC
+ bitstream's native METADATA_BLOCK_STREAMINFO header
+ as described in [3], left-shifted by 16 bits to
+ create the appropriate 16.16 fixed-point
+ representation.
+
+ When the bitstream's native sample rate is greater
+ than the maximum expressible value of 65535 Hz,
+ the samplerate field shall hold the greatest
+ expressible regular division of that rate. I.e.
+ the samplerate field shall hold 48000.0 for
+ native sample rates of 96 and 192 kHz. In the
+ case of unusual sample rates which do not have
+ an expressible regular division, the maximum value
+ of 65535.0 Hz should be used.
+
+ High-rate FLAC bitstreams are common, and the native
+ value from the METADATA_BLOCK_STREAMINFO header in
+ the FLACSpecificBox MUST be read to determine the
+ correct sample rate of the bitstream.
+
+ Note that the FLAC FRAME_HEADER structure that begins
+ each FLAC sample redundantly encodes the sample rate;
+ the sample rate declared in each FRAME_HEADER MUST
+ match the sample rate declared in the
+ METADATA_BLOCK_STREAMINFO header, and here in the
+ AudioSampleEntry portion of the FLACSampleEntry
+ as much as is allowed by the encoding restrictions
+ described above.
+
+ Finally, the FLACSpecificBox carries codec headers:
+
+ + FLACSpecificBox
+
+ This box contains initializing information for the
+ decoder as defined in section 'FLAC specific box'.
+
+ 3.3.2 FLAC Specific Box
+
+ Exactly one FLAC Specific Box shall be present in each
+ FLACSampleEntry. This specification defines version 0
+ of this box. If incompatible changes occur in future
+ versions of this specification, another version number
+ will be defined. The data fields of this box and native
+ FLAC[3] structures encoded within FLAC blocks are both
+ stored in big-endian format, though for purposes of the
+ ISO BMFF container, FLAC native metadata and data blocks
+ are treated as unstructured octet streams.
+
+ The syntax and semantics of the FLAC Specific Box is shown
+ as follows.
+
+ class FLACMetadataBlock {
+ unsigned int(1) LastMetadataBlockFlag;
+ unsigned int(7) BlockType;
+ unsigned int(24) Length;
+ unsigned int(8) BlockData[Length];
+ }
+
+ aligned(8) class FLACSpecificBox
+ extends FullBox('dfLa', version=0, 0){
+ for (i=0; ; i++) { // to end of box
+ FLACMetadataBlock();
+ }
+ }
+
+ + Version:
+
+ The Version field shall be set to 0.
+
+ In the future versions of this specification, this
+ field may be set to other values. And without support
+ of those values, the reader shall not read the fields
+ after this within the FLACSpecificBox.
+
+ + Flags:
+
+ The Flags field shall be set to 0.
+
+ After the FullBox header, the box contains a sequence of
+ FLAC[3] native-metadata block structures that fill the
+ remainder of the box.
+
+ Each FLACMetadataBlock structure consists of three fields
+ filling a total of four bytes that form a FLAC[3] native
+ METADATA_BLOCK_HEADER, followed by raw octet bytes that
+ comprise the FLAC[3] native METADATA_BLOCK_DATA.
+
+ + LastMetadataBlockFlag:
+
+ The LastMetadataBlockFlag field maps semantically to
+ the FLAC[3] native METADATA_BLOCK_HEADER
+ Last-metadata-block flag as defined in the FLAC[3]
+ file specification.
+
+ The LastMetadataBlockFlag is set to 1 if this
+ MetadataBlock is the last metadata block in the
+ FLACSpecificBox. It is set to 0 otherwise.
+
+ + BlockType:
+
+ The BlockType field maps semantically to the FLAC[3]
+ native METADATA_BLOCK_HEADER BLOCK_TYPE field as
+ defined in the FLAC[3] file specification.
+
+ The BlockType is set to a valid FLAC[3] BLOCK_TYPE
+ value that identifies the type of this native metadata
+ block. The BlockType of the first FLACMetadataBlock
+ must be set to 0, signifying this is a FLAC[3] native
+ METADATA_BLOCK_STREAMINFO block.
+
+ + Length:
+
+ The Length field maps semantically to the FLAC[3]
+ native METADATA_BLOCK_HEADER Length field as
+ defined in the FLAC[3] file specification.
+
+ The length field specifies the number of bytes of
+ MetadataBlockData to follow.
+
+ + BlockData
+
+ The BlockData field maps semantically to the FLAC[3]
+ native METADATA_BLOCK_HEADER METADATA_BLOCK_DATA as
+ defined in the FLAC[3] file specification.
+
+ Taken together, the bytes of the FLACMetadataBlock form a
+ complete FLAC[3] native METADATA_BLOCK structure.
+
+ Note that a minimum of a single FLACMetadataBlock,
+ consisting of a FLAC[3] native METADATA_BLOCK_STREAMINFO
+ structure, is required. Should the FLACSpecificBox
+ contain more than a single FLACMetadataBlock structure,
+ the FLACMetadataBlock containing the FLAC[3] native
+ METADATA_BLOCK_STREAMINFO must occur first in the list.
+
+ Other containers that package FLAC audio streams, such as
+ Ogg[4] and Matroska[5], wrap FLAC[3] native metadata without
+ modification similar to this specification. When
+ repackaging or remuxing FLAC[3] streams from another
+ format that contains FLAC[3] native metadata into an ISO
+ BMFF file, the complete FLAC[3] native metadata should be
+ preserved in the ISO BMFF stream as described above. It
+ is also allowed to parse this native metadata and include
+ contextually redundant ISO BMFF-native repackagings and/or
+ reparsings of FLAC[3] native metadata, so long as the
+ native metadata is also preserved.
+
+ 3.3.3 Sample format
+
+ A FLAC sample is exactly one FLAC audio FRAME (as defined
+ in the FLAC[3] file specification) belonging to a FLAC
+ bitstreams. The FLAC sample data begins with a complete
+ FLAC FRAME_HEADER, followed by one FLAC SUBFRAME per
+ channel, any necessary bit padding, and ends with the
+ usual FLAC FRAME_FOOTER.
+
+ Note that the FLAC native FRAME_HEADER structure that
+ begins each FLAC sample redundantly encodes channel count,
+ sample rate, and sample size. The values of these fields
+ must agree both with the values declared in the FLAC
+ METADATA_BLOCK_STREAMINFO structure as well as the
+ FLACSampleEntry box.
+
+ 3.3.4 Duration of a FLAC sample
+
+ The duration of any given FLAC sample is determined by
+ dividing the decoded block size of a FLAC frame, as
+ encoded in the FLAC FRAME's FRAME_HEADER structure, by the
+ value of the timescale field in the Media Header Box.
+ FLAC samples are permitted to have variable durations
+ within a given audio stream. FLAC does not use padding
+ values.
+
+ 3.3.5 Sub-sample
+
+ Sub-samples are not defined for FLAC samples in this
+ specification.
+
+ 3.3.6 Random Access
+
+ This subclause describes the nature of the random access
+ of FLAC sample.
+
+ 3.3.6.1 Random Access Point
+
+ All FLAC samples can be independently decoded
+ i.e. every FLAC sample is a sync sample. The Sync
+ Sample Box shall not be present as long as there are
+ no samples other than FLAC samples in the same
+ track. The sample_is_non_sync_sample field for FLAC
+ samples shall be set to 0.
+
+ 3.4 Basic Structure (informative)
+
+ 3.4.1 Initial Movie
+
+ This subclause shows a basic structure of the Movie Box as follows:
+
+ +----+----+----+----+----+----+----+----+------------------------------+
+ |moov| | | | | | | | Movie Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | |mvhd| | | | | | | Movie Header Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | |trak| | | | | | | Track Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | |tkhd| | | | | | Track Header Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | |edts|* | | | | | Edit Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | |elst|* | | | | Edit List Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | |mdia| | | | | | Media Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | |mdhd| | | | | Media Header Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | |hdlr| | | | | Handler Reference Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | |minf| | | | | Media Information Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | |smhd| | | | Sound Media Header Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | |dinf| | | | Data Information Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | |dref| | | Data Reference Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | | |url | | DataEntryUrlBox |
+ +----+----+----+----+----+----+ or +----+------------------------------+
+ | | | | | | |urn | | DataEntryUrnBox |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | |stbl| | | | Sample Table |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | |stsd| | | Sample Description Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | | |fLaC| | FLACSampleEntry |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | | | |dfLa| FLAC Specific Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | |stts| | | Decoding Time to Sample Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | |stsc| | | Sample To Chunk Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | |stsz| | | Sample Size Box |
+ +----+----+----+----+----+ or +----+----+------------------------------+
+ | | | | | |stz2| | | Compact Sample Size Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | | | | |stco| | | Chunk Offset Box |
+ +----+----+----+----+----+ or +----+----+------------------------------+
+ | | | | | |co64| | | Chunk Large Offset Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | |mvex|* | | | | | | Movie Extends Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+ | | |trex|* | | | | | Track Extends Box |
+ +----+----+----+----+----+----+----+----+------------------------------+
+
+ Figure 1 - Basic structure of Movie Box
+
+ It is strongly recommended that the order of boxes should
+ follow the above structure. Boxes marked with an asterisk
+ (*) may or may not be present depending on context. For
+ most boxes listed above, the definition is as is defined
+ in ISO/IEC 14496-12 [1]. The additional boxes and the
+ additional requirements, restrictions and recommendations
+ to the other boxes are described in this specification.
+
+ 3.5 Example of Encapsulation (informative)
+ [File]
+ size = 17790
+ [ftyp: File Type Box]
+ position = 0
+ size = 24
+ major_brand = mp42 : MP4 version 2
+ minor_version = 0
+ compatible_brands
+ brand[0] = mp42 : MP4 version 2
+ brand[1] = isom : ISO Base Media file format
+ [moov: Movie Box]
+ position = 24
+ size = 757
+ [mvhd: Movie Header Box]
+ position = 32
+ size = 108
+ version = 0
+ flags = 0x000000
+ creation_time = UTC 2014/12/12, 18:41:19
+ modification_time = UTC 2014/12/12, 18:41:19
+ timescale = 48000
+ duration = 33600 (00:00:00.700)
+ rate = 1.000000
+ volume = 1.000000
+ reserved = 0x0000
+ reserved = 0x00000000
+ reserved = 0x00000000
+ transformation matrix
+ | a, b, u | | 1.000000, 0.000000, 0.000000 |
+ | c, d, v | = | 0.000000, 1.000000, 0.000000 |
+ | x, y, w | | 0.000000, 0.000000, 1.000000 |
+ pre_defined = 0x00000000
+ pre_defined = 0x00000000
+ pre_defined = 0x00000000
+ pre_defined = 0x00000000
+ pre_defined = 0x00000000
+ pre_defined = 0x00000000
+ next_track_ID = 2
+ [iods: Object Descriptor Box]
+ position = 140
+ size = 33
+ version = 0
+ flags = 0x000000
+ [tag = 0x10: MP4_IOD]
+ expandableClassSize = 16
+ ObjectDescriptorID = 1
+ URL_Flag = 0
+ includeInlineProfileLevelFlag = 0
+ reserved = 0xf
+ ODProfileLevelIndication = 0xff
+ sceneProfileLevelIndication = 0xff
+ audioProfileLevelIndication = 0xfe
+ visualProfileLevelIndication = 0xff
+ graphicsProfileLevelIndication = 0xff
+ [tag = 0x0e: ES_ID_Inc]
+ expandableClassSize = 4
+ Track_ID = 1
+ [trak: Track Box]
+ position = 173
+ size = 608
+ [tkhd: Track Header Box]
+ position = 181
+ size = 92
+ version = 0
+ flags = 0x000007
+ Track enabled
+ Track in movie
+ Track in preview
+ creation_time = UTC 2014/12/12, 18:41:19
+ modification_time = UTC 2014/12/12, 18:41:19
+ track_ID = 1
+ reserved = 0x00000000
+ duration = 33600 (00:00:00.700)
+ reserved = 0x00000000
+ reserved = 0x00000000
+ layer = 0
+ alternate_group = 0
+ volume = 1.000000
+ reserved = 0x0000
+ transformation matrix
+ | a, b, u | | 1.000000, 0.000000, 0.000000 |
+ | c, d, v | = | 0.000000, 1.000000, 0.000000 |
+ | x, y, w | | 0.000000, 0.000000, 1.000000 |
+ width = 0.000000
+ height = 0.000000
+ [mdia: Media Box]
+ position = 273
+ size = 472
+ [mdhd: Media Header Box]
+ position = 281
+ size = 32
+ version = 0
+ flags = 0x000000
+ creation_time = UTC 2014/12/12, 18:41:19
+ modification_time = UTC 2014/12/12, 18:41:19
+ timescale = 48000
+ duration = 34560 (00:00:00.720)
+ language = und
+ pre_defined = 0x0000
+ [hdlr: Handler Reference Box]
+ position = 313
+ size = 51
+ version = 0
+ flags = 0x000000
+ pre_defined = 0x00000000
+ handler_type = soun
+ reserved = 0x00000000
+ reserved = 0x00000000
+ reserved = 0x00000000
+ name = Xiph Audio Handler
+ [minf: Media Information Box]
+ position = 364
+ size = 381
+ [smhd: Sound Media Header Box]
+ position = 372
+ size = 16
+ version = 0
+ flags = 0x000000
+ balance = 0.000000
+ reserved = 0x0000
+ [dinf: Data Information Box]
+ position = 388
+ size = 36
+ [dref: Data Reference Box]
+ position = 396
+ size = 28
+ version = 0
+ flags = 0x000000
+ entry_count = 1
+ [url : Data Entry Url Box]
+ position = 412
+ size = 12
+ version = 0
+ flags = 0x000001
+ location = in the same file
+ [stbl: Sample Table Box]
+ position = 424
+ size = 321
+ [stsd: Sample Description Box]
+ position = 432
+ size = 79
+ version = 0
+ flags = 0x000000
+ entry_count = 1
+ [fLaC: Audio Description]
+ position = 448
+ size = 63
+ reserved = 0x000000000000
+ data_reference_index = 1
+ reserved = 0x0000
+ reserved = 0x0000
+ reserved = 0x00000000
+ channelcount = 2
+ samplesize = 16
+ pre_defined = 0
+ reserved = 0
+ samplerate = 48000.000000
+ [dfLa: FLAC Specific Box]
+ position = 484
+ size = 50
+ version = 0
+ flags = 0x000000
+ [FLACMetadataBlock]
+ LastMetadataBlockFlag = 1
+ BlockType = 0
+ Length = 34
+ BlockData[34];
+ [stts: Decoding Time to Sample Box]
+ position = 492
+ size = 24
+ version = 0
+ flags = 0x000000
+ entry_count = 1
+ entry[0]
+ sample_count = 18
+ sample_delta = 1920
+ [stsc: Sample To Chunk Box]
+ position = 516
+ size = 40
+ version = 0
+ flags = 0x000000
+ entry_count = 2
+ entry[0]
+ first_chunk = 1
+ samples_per_chunk = 13
+ sample_description_index = 1
+ entry[1]
+ first_chunk = 2
+ samples_per_chunk = 5
+ sample_description_index = 1
+ [stsz: Sample Size Box]
+ position = 556
+ size = 92
+ version = 0
+ flags = 0x000000
+ sample_size = 0 (variable)
+ sample_count = 18
+ entry_size[0] = 977
+ entry_size[1] = 938
+ entry_size[2] = 939
+ entry_size[3] = 938
+ entry_size[4] = 934
+ entry_size[5] = 945
+ entry_size[6] = 948
+ entry_size[7] = 956
+ entry_size[8] = 955
+ entry_size[9] = 930
+ entry_size[10] = 933
+ entry_size[11] = 934
+ entry_size[12] = 972
+ entry_size[13] = 977
+ entry_size[14] = 958
+ entry_size[15] = 949
+ entry_size[16] = 962
+ entry_size[17] = 848
+ [stco: Chunk Offset Box]
+ position = 648
+ size = 24
+ version = 0
+ flags = 0x000000
+ entry_count = 2
+ chunk_offset[0] = 686
+ chunk_offset[1] = 12985
+ [free: Free Space Box]
+ position = 672
+ size = 8
+ [mdat: Media Data Box]
+ position = 680
+ size = 17001
+
+4 Acknowledgements
+
+ This spec draws heavily from the Opus-in-ISOBMFF specification
+ work done by Yusuke Nakamura <muken.the.vfrmaniac |at| gmail.com>
+
+ Thank you to Tim Terriberry, David Evans, and Yusuke Nakamura
+ for valuable feedback. Thank you to Ralph Giles for editorial
+ help.
+
+5 Author Address
+
+ Monty Montgomery <cmontgomery@mozilla.com>