summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Doxyfile.in1039
-rw-r--r--doc/Makefile.am5
-rw-r--r--doc/README6
-rw-r--r--doc/README.dvb7
-rw-r--r--doc/README.macosx141
-rw-r--r--doc/README.syncfb280
-rw-r--r--doc/faq/Makefile.am49
-rw-r--r--doc/faq/faq.docbook (renamed from doc/faq/faq.sgml)32
-rw-r--r--doc/faq/faq.xsl4
-rw-r--r--doc/hackersguide/Makefile.am84
-rw-r--r--doc/hackersguide/architecture.fig560
-rw-r--r--doc/hackersguide/architecture.svg2134
-rw-r--r--doc/hackersguide/hackersguide.docbook (renamed from doc/hackersguide/hackersguide.sgml)23
-rw-r--r--doc/hackersguide/internals.docbook (renamed from doc/hackersguide/internals.sgml)12
-rw-r--r--doc/hackersguide/intro.docbook (renamed from doc/hackersguide/intro.sgml)0
-rw-r--r--doc/hackersguide/library.docbook (renamed from doc/hackersguide/library.sgml)4
-rw-r--r--doc/hackersguide/library.fig313
-rw-r--r--doc/hackersguide/library.svg1732
-rw-r--r--doc/hackersguide/output.docbook (renamed from doc/hackersguide/output.sgml)4
-rw-r--r--doc/hackersguide/overlays.fig64
-rw-r--r--doc/hackersguide/overlays.svg256
-rw-r--r--doc/hackersguide/overview.docbook (renamed from doc/hackersguide/overview.sgml)0
-rw-r--r--doc/hackersguide/post_frame.fig347
-rw-r--r--doc/hackersguide/post_frame.svg1564
-rw-r--r--doc/hackersguide/stream.docbook (renamed from doc/hackersguide/stream.sgml)0
-rw-r--r--doc/man/Makefile.am1
-rw-r--r--doc/man/en/Makefile.am1
-rw-r--r--doc/man/en/xine-config.134
-rw-r--r--doc/man/en/xine.53
29 files changed, 7005 insertions, 1694 deletions
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
new file mode 100644
index 000000000..e291e9a73
--- /dev/null
+++ b/doc/Doxyfile.in
@@ -0,0 +1,1039 @@
+# Doxyfile 1.5.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
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = @PACKAGE@
+
+# 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 = @VERSION@
+
+# 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 = @abs_top_builddir@/doc/api/
+
+# 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, Finnish, French, German, Greek, Hungarian,
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = NO
+
+# 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 = YES
+
+# 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 = NO
+
+# 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 = NO
+
+# 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 = @top_srcdir@
+
+# 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 is your file systems
+# 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 the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_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 DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = 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 = 8
+
+# 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 =
+
+# 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 = YES
+
+# 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
+
+# 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 make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# 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 = NO
+
+# 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
+
+#---------------------------------------------------------------------------
+# 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 = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# 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 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 = YES
+
+# 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 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 = YES
+
+# 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_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 = 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 define 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 defines 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 = NO
+
+# 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 =
+
+#---------------------------------------------------------------------------
+# 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
+
+# This WARN_NO_PARAMDOC option can be abled 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 = @abs_top_srcdir@/src @abs_top_builddir@/include
+
+# 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++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+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 = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# 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.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem 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 = */src/libw32dll/wine/*
+EXCLUDE_PATTERNS += */src/input/libdvdnav/*
+EXCLUDE_PATTERNS += */src/input/vcd/libcdio/*
+EXCLUDE_PATTERNS += */src/input/vcd/libvcd/*
+EXCLUDE_PATTERNS += */src/libxineadec/nosefart/*
+EXCLUDE_PATTERNS += */src/libxineadec/gsm610/*
+
+# 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, INPUT_FILTER
+# is applied to all files.
+
+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
+
+#---------------------------------------------------------------------------
+# 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 (the default)
+# 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 (the default)
+# 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 documentstion.
+
+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 = NO
+
+# 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 = .
+
+# 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.
+
+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 =
+
+# 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
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# 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 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 compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag 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 (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = 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
+
+#---------------------------------------------------------------------------
+# 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
+
+#---------------------------------------------------------------------------
+# 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 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 = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if 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 = DOXYGEN XINE_COMPILE
+PREDEFINED += XINE_PACKED= ATTR_ALIGN(x)= XINE_PROTECTED=
+PREDEFINED += XINE_MALLOC=
+
+# 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.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and 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 =
+
+# 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 is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# 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
+
+# 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
+# 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 = NO
+
+# 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 tags 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 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 png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# 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 MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# 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 a graph may be further truncated if the graph's
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# 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
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 070ef5a1e..86ae75f8e 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,11 +1,12 @@
+include $(top_srcdir)/misc/Makefile.quiet
include $(top_srcdir)/misc/Makefile.common
SUBDIRS = man hackersguide faq
dist_doc_DATA = README README.dvb README.dxr3 \
README.freebsd README.irix README.network_dvd README.opengl \
- README.solaris README.syncfb README_xxmc.html README.MINGWCROSS \
- README.WIN32
+ README.solaris README_xxmc.html README.MINGWCROSS \
+ README.WIN32 README.macosx
docs clean-docs:
@cd faq && $(MAKE) $@
diff --git a/doc/README b/doc/README
index 56d133a70..2c01dc5ce 100644
--- a/doc/README
+++ b/doc/README
@@ -29,6 +29,9 @@ README.freebsd
README.irix
hints on running xine on IRIX
+README.macosx
+ hints on building xine on Mac OS X
+
README.network_dvd
how to play DVDs / Audio CDs over the network
@@ -37,6 +40,3 @@ README.opengl
README.solaris
hints on running xine on Solaris
-
-README.syncfb
- information about xine's SyncFB video output plugin
diff --git a/doc/README.dvb b/doc/README.dvb
index e32b980dd..21e2a41db 100644
--- a/doc/README.dvb
+++ b/doc/README.dvb
@@ -51,7 +51,7 @@ Install a channel list
xine-lib's dvb input plugin needs a channel/transponder list that fits your
dvb equipment. xine-lib uses the channels.conf format of szap, czap and tzap
as appropriate for DVB-S, DVB-C and DVB-T. It will search the channel list
-file in ~/.xine/channels.conf.
+file in ~/.config/xine/channels.conf.
channel list format for DVB-S: (satellite)
-------------------------------------------
@@ -70,8 +70,8 @@ You scan for all available channels using the scan utility which comes with
the dvb-apps package (also known as dvb-utils). See
http://www.linuxtv.org/wiki/index.php/Scan for more information.
- $ scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/uk-PontopPike >~/.xine/channels.conf
- $ scan Hotbird-13.0 >~/.xine/channels.conf
+ $ scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/uk-PontopPike >~/.config/xine/channels.conf
+ $ scan Hotbird-13.0 >~/.config/xine/channels.conf
This can take a while. In a DiSEqC environment, use the -s N switch to
select different satellites to scan and paste the results in one big
@@ -134,3 +134,4 @@ top left hand corner will notify you of the status of the recording.
Pressing MENU4 again will resume recording.
Have fun.
+
diff --git a/doc/README.macosx b/doc/README.macosx
new file mode 100644
index 000000000..02c98c8d9
--- /dev/null
+++ b/doc/README.macosx
@@ -0,0 +1,141 @@
+Building
+--------
+Mac OS X builds of xine-lib are built using the same autoconf-based build
+scripts that are used on other Unix-based platforms (e.g., Linux, FreeBSD).
+There is no Xcode project, nor is there any intention to create and/or
+maintain one in the future. There's no good reason, and it would only add
+unnecessary complexity and an additional maintenance burden.
+
+Currently, xine-lib is only supported on Mac OS X 10.4 Tiger. There are no
+plans to support older versions of Mac OS X for a variety of reasons.
+
+As of xine-lib 1.2, specific versions of build tools are required. They are
+as follows:
+
+ - GNU M4 1.4.7 (1.4.9 is current, 1.4.2 is installed on Tiger)
+ - autoconf 2.59 (2.61 is current, 2.59 is installed on Tiger)
+ - automake 1.9 (1.10 is current, 1.6.3 is installed on Tiger)
+ - GNU libtool 1.5.20 (1.5.22 is current, 1.5 is installed on Tiger)
+
+When building on Tiger, since some of the system-installed tools are out of
+date, you'll need to update at least some of them. It is recommended that you
+bring all of them up to current releases as listed above.
+
+The order in which you install updated tools to replace the system-installed
+versions is important, and in some cases, specific build options are required
+for them to work properly.
+
+ 1. Install GNU M4 >= 1.4.7
+ - This is optional if you use the system-installed version of autoconf;
+ however, if you install a newer version of autoconf, you MUST install
+ a newer version of GNU M4 first.
+ - Run its configure script with --program-prefix=g
+ 2. Install autoconf >= 2.59
+ - This is optional, but it is recommended that you use autoconf 2.61.
+ - No special configure options are required. Simply configure, make, and
+ make install.
+ 3. Install automake >= 1.9
+ - This is required, and since it is required, it is recommended that you
+ use automake 1.10.
+ - No special configure options are required. Simply configure, make, and
+ make install.
+ 4. Install GNU libtool >= 1.5.20
+ - This is required, and since it is required, it is recommended that you
+ use GNU libtool 1.5.22.
+ - Run its configure script with --program-prefix=g
+
+ ** A special note about GNU libtool:
+ Mac OS X has its own utility called libtool that is NOT the same as GNU
+ libtool, but the Developer tools install GNU libtool as well. The system-
+ installed version of GNU libtool is installed with a g- prefix, and xine's
+ build scripts expect this as well if you install your own version. If you
+ do not install GNU libtool with a g- prefix, xine's build scripts will
+ pick up the system-installed version instead of the newer one you install!
+
+With your tool chain brought up-to-date with xine's requirements, you can go
+ahead and build xine-lib by first running configure, then make, and finally,
+make install, just as you would on, say, Linux. If you are building from a
+source repository snapshot or checkout, you will need to run autogen.sh first.
+
+When running configure, it's best if you do not attempt to forcibly enable most
+options that are disabled by default. For example, DVB support is disabled by
+default on Mac OS X because it doesn't work. Enabling it may allow it to build
+okay, but it will not work at runtime.
+
+The one exception is --enable-macosx-universal. Universal binaries are not
+enabled by default, but they are fully supported. With this optional enabled,
+the default is to build FAT binaries for ppc and i386; however, you may also
+enable support for ppc64 and/or x86_64. For example:
+
+ ./configure --enable-macosx-universal=i386,ppc,x86_64,ppc64
+
+CoreAudio audio output support will be enabled by default. Mac OS X video
+output support will be enabled by default. Xwindows support will be enabled
+by default for video output (using XShm, Xv, and OpenGL). In most cases,
+you'll probably want to disable Xwindows support, and that is safe to do by
+adding --without-x to the configure command-line.
+
+Running
+-------
+Very limited run-time testing has been done so far. The Mac OS X port of
+xine-lib is in its early stages, only recently becoming buildable at all,
+though some quick-and-dirty efforts have been made in the past to build and
+run on Mac OS X.
+
+At this time, native video output only works with Objective-C Cocoa windows
+using the XineOpenGLView class that resides in libxineMacOSXVideo.dylib. This
+works, but it isn't yet stable enough for every day use. Xwindows video output
+support builds, but it is unknown whether it works. If you plan on using the
+Cocoa video output support, you'll need to link with both libxine.dylib and
+libxineMacOSXVideo.dylib as well as libxine.dylib.
+
+Instantiate an audio output port as follows:
+
+ ao_port = xine_open_audio_driver(xine_instance, "coreaudio", NULL);
+
+Instantiate a video output port as follows:
+
+ vo_port = xine_open_video_driver(xine_instance, "macosx",
+ XINE_VISUAL_TYPE_MACOSX, view);
+
+In both cases, xine_instance is the return from xine_new() that has been then
+been initialized with xine_init(). For video output, the view argument to
+xine_open_video_driver() is the XineOpenGLView instance in which to render.
+
+The Future
+----------
+A full, proper port of xine-lib to Mac OS X is in progress. Efforts are under
+way to make as many of the various plug-ins work properly on Mac OS X as makes
+sense, but it is unlikely that full support will be complete by the time that
+xine-lib 1.2 is released.
+
+The following is a list of the things that will definitely be done:
+
+ * CoreVideo support for video output instead of the current NSOpenGLView-
+ based video output plug-in. The existing video output plugin will not be
+ retained as a plug-in, but the code will remain available based on the new
+ CoreVideo video output plugin.
+ * Building xine-lib as an application bundle embeddable framework, as well as
+ a system-wide installable framework, though the utility of the latter is
+ questionable.
+ * Enable VCD input support. Mac OS X specific code is required in xine-lib
+ itself to support this. Currently, only FreeBSD, Linux, and Solaris can
+ build the VCD input plugin.
+ * Investigate enabling Real binary and Win32 binary support for Intel Macs.
+ * Investigate better font support without the need for FreeType2.
+ * SPDIF pass-through for CoreAudio
+
+Known Issues
+------------
+ * Building on Leopard does not work due to build problems with ffmpeg.
+ * VCD support is not yet available, though internal versions of libcdio and
+ libvcd will build. If you enable VCD at configure time, the build WILL
+ fail.
+ * Real binary codec support is not yet available.
+ * On Intel, Win32 binary codec support is not yet available.
+ * Very little run-time testing has been done. Basic file input and ffmpeg
+ based demux/decoding is known to work.
+ * Xwindows support builds, but it has not been tested at all.
+ * Applications using xine-lib must link with both libxine.dylib and
+ libxineMacOSXVideo.dylib if they will be using the Cocoa video output
+ support.
diff --git a/doc/README.syncfb b/doc/README.syncfb
deleted file mode 100644
index be8c2565d..000000000
--- a/doc/README.syncfb
+++ /dev/null
@@ -1,280 +0,0 @@
-
- ===== =====
- XINE video output plugin for MATROX G200/G400/G450 cards *only*
- ===== =====
-
-
-* WHAT IS THIS PLUGIN ABOUT and WHY SHOULD I EVEN CONSIDER TO USE IT? :)
-
- This xine video output plugin uses the so called SyncFB driver (from
- the Teletux project) which provides special hardware features of
- Matrox G200 and newer cards like hardware deinterlacing, scaling and
- synchronization of your video output to the vertical retrace of your
- monitor - just to name a few. The plugin makes all those features
- available to xine and because all this tasks are done by the graphic
- card there is no need for xine to do them in software -- so you save
- precious CPU time which you may gonna need for other things. :-)
-
- Ok ok -- why should you want to have your video output synchronized to
- something called the vertical retrace of your monitor?! Well... :)
-
- In order to have an optimal DVD playback the update of the image needs
- to be syncronized with the vertical refresh of the screen. Otherwise
- you will sometimes see part of frame n and part of frame n+1 during
- playback of a movie. Resulting in tearing artefacts on moving objects.
-
- When using this plugin the update of the screen is done during the
- vertical retrace of your monitor and those tearing artefacts are gone
- forever.
-
- Also the SyncFB kernel module and this plugin totally by-pass XFree86
- for anything else but some data gathering routines needed to place the
- overlay at the right spot. So on some machines you will gain some
- performance too because of the different way the SyncFB kernel module
- handles your video output.
-
- Last but not least, you may ask what's so special about deinterlacing?
- There are already several deinterlacing methods available in xine and
- why should you care about another one? Well (again)... ;-))
-
- All current deinterlacers in xine are done in software and therefore
- will cost you some CPU power. The SyncFB video out plugin will use the
- hardware deinterlacing support of your graphic card, thus saving your
- CPU power because everything is done by your GPU...
-
-
-* WILL IT WORK WITH MY G200/G400/G450/... CARD?
-
- So far the plugin and the kernel module itself are only being tested
- on G400 cards by its developers thus we cannot tell about newer
- or older generation chips.
-
- Nevertheless we have received positive feedback that the SyncFB kernel
- module and this plugin work fine with G450 cards too.
-
- If you have got things working on older/newer chips, please let us
- know about your success and we will place a note here... :-)
-
-
-* AND HOW DOES IT WORK?
-
- The SyncFB driver is a kernel module you will have to load that makes
- a special device (e.g. /dev/syncfb) available which is opened by the
- plugin and controlled with certain ioctl calls. Easy, isn't it? ;-)
-
- That module is based on the mga_vid driver from Aaron Holzmann and was
- advanced (and reworked) by Matthias Oelmann.
-
-
-* OK I HEARD ENOUGH - HOW DO I INSTALL and USE IT? :)
-
- Currently the Teletux project which maintains the kernel module seems
- orphaned and therefore there hasn't been any progress nor release in a
- fair amount of time. :( We will try to resolve this situation so that
- the development continues again. As soon as there are any news on this
- matter, this README will be updated accordingly. For the time being
- you can still use the current Teletux SyncFB kernel module which works
- just fine, so there is no need to worry. :-)
-
- Back to the original subject. In order to install and use the SyncFB
- kernel module, you *will* need a fresh CVS checkout of the sources
- because the last official release is rather outdated.
-
- This sounds more complicated than it actually is. You will only have
- to execute the following two commands to get the sources in a sub-dir
- called teletux. When you are asked for password, just press return.
-
- cvs -d:pserver:anonymous@cvs.teletux.sf.net:/cvsroot/teletux login
- cvs -d:pserver:anonymous@cvs.teletux.sf.net:/cvsroot/teletux co -P teletux
-
- Now enter the directory teletux/syncfb, that's where the actual kernel
- modul sources are located. Before you can compile the module, you will
- have to change two lines in the Makefile itself to make it work.
-
- In the second line, there is a phrase like "-I/usr/include" which you
- have to change to "-I/usr/src/linux/include". In line seven, you need
- to remove syncfbtv and syncfb_test from the OBJ list.
-
- Now execute a "make" and the module will be compiled. Place the
- resulting syncfb.o in your modules dir which is usually...
-
- /lib/modules/KERNEL_VERSION/
-
- ... and issue a "depmod -a" after it. That's it - the kernel module is
- installed. To load the syncfb module, execute "modprobe syncfb" every
- time you (re)start your computer. This will automatically create the
- required /dev/syncfb device if you have devfs support, otherwise you
- need to issue a "mknod /dev/syncfb c 178 0" once to create the
- device yourself permanently.
-
- Once the module is loaded, you can start xine with the "-V SyncFB"
- option to use this plugin. xine automatically remembers the video out
- plugin you last used, so you only have to use this option once too. :)
- But don't forget, the module *always* has to be already loaded before
- you start xine, otherwise xine will fallback to Xv/XShm or some other
- available video out plugin.
-
-
-* THE VIDEO IS JERKING - WHAT'S THE MATTER?!
-
- Playing back video material that is mastered for e.g. NTSC can cause
- this jerking if your monitor is not running at a refresh rate that is
- a multiple of 30 (PAL: 25).
-
- You can try to fix that by switching your monitor to the appropriate
- refresh rates (e.g. 50/75/100 Hz for PAL, 60/90/120 Hz for NTSC). You
- will need to add so called modelines to your XFree86 config to make
- those modes available, if you don't already have them.
-
- Here is is a short listing of some sample modelines. Please add only
- those two lines (for NTSC and PAL) which exactly fit the screensize
- you are running your X Server with. You need to add those lines to the
- monitor section of your XF86Config file as well as include their names
- in the screen section (subsection display of the color depth your are
- using).
-
- USE THE FOLLOWING MODELINES AT YOUR OWN RISK. THEY COULD DAMAGE YOUR
- MONITOR PERMANTELY - PLEASE TAKE CAUTION AND DON'T BLAME US. YOU HAVE
- BEEN WARNED.
-
- So much for the standard disclaimer. :)
-
- Note: If you want to be on the safe side, generate your very own
- modelines with an application like kvideogen for example.
-
- Also the modelines may need some fine tuning for your setup. You
- can use xvidtune (comes with XFree86) to do that.
-
- # 1024x768
-
- Modeline "1024x768pal" 64.94 1024 1040 1216 1328 768 768 775 802
- Modeline "1024x768ntsc" 54.32 1024 1040 1216 1328 768 768 774 802
-
- # 1152x864
-
- Modeline "1152x864pal" 68.82 1152 1168 1384 1496 864 864 871 902
- Modeline "1152x864ntsc" 80.93 1152 1168 1384 1496 864 864 872 902
-
- # 1280x1024
-
- none yet - might be added in the future
-
- So before you run xine just turn to the appropriate refresh rate and
- the jerking *should* be gone. (you may also want to have a look at the
- XF86VidMode support included in xine which makes on-the-fly resolution
- switching possible when fullscreen is toggled)
-
-
-* WHAT SCREENSIZE SHOULD I PREFER?
-
- Well. It is important that the screensize you choose for DVD playback
- is exactly the same screensize you're starting up your X Server with
- if you are not using the XF86VidMode extension which will properly do
- the switching for you and take care that the plugin is updated
- accordingly. So you shouldn't switch down to 1024x768 yourself if you
- are running 1280x1024 because that gives you a virtual screensize
- of 1280x1024 in a resolution of 1024x768 - and the plugin can't handle
- that - and probably never will... ok... never say never. ;)
-
- You may want to have a look at the XF86VidMode support in xine which
- will enable on-the-fly resolution switching when activating fullscreen.
-
- Now back to the question. A screensize of 800x600 should be it for
- non-anamorphic DVDs because their resolution is 720x576 for pal DVDs
- and 720x480 for ntsc ones. If you've an anamorphic DVD, you should use
- a higher resolution - 1024x768 will be best because the image only has
- to be horizontally scaled to get back to the original geometry of 16:9
- which is easier to be done.
-
-
-* WHAT ABOUT DEINTERLACING?!
-
- Pressing 'i' during playback will toggle hardware deinterlacing. A
- decrease in picture quality is a known side effect, yet you won't see
- any artefacts caused by interlacing anymore. :-)
-
- One more note, hardware deinterlacing uses BOB as deinterlacing method
- and is totally independent from the software deinterlacing in xine. So
- specifing a different deinterlacing method in your .xinerc won't have
- any effect on this feature.
-
- Nevertheless we are thinking about making software deinterlacing also
- available as an option. It's on the TODO list... :)
-
-
-* HEY! THE OVERLAY TURNS OFF WHEN THE WINDOW IS PARTLY OFF THE DESKTOP!?
-
- That's done on purpose. It prevents possible yet harmless screen
- corruption. And by the way - why would you want to see a movie just
- partly?! ;-)
-
-
-* MY DESKTOP BACKGROUND IMAGE GETS CORRUPTED WHEN USING THIS PLUGIN!
-
- Even though it doesn't look nice, it's nevertheless harmless. So no
- need to worry about it. XFree86 is using your free video memory as
- cache for certain things. Now when you use this plugin that part of
- your video memory could also be used by the syncfb module. So your
- image data cached there will be corrupted. Unfortunately there is no
- way to avoid it. Yet, like stated earlier, it is truely harmless and
- just a cosmetical side effect.
-
-
-* THE XINE PANEL DOES NOT APPEAR WHEN I WATCH A MOVIE IN FULLSCREEN?!
-
- Actually it does appear - you just don't see it. :) This is a side
- effect of how SyncFB works. The X server can't display anything where
- the actual overlay from SyncFB is being displayed because this area in
- your video memory is constantly over written - so are the changes done
- by your X Server (like a window graphic that is placed there).
-
- This is just cosmetical and harmless, so no need to worry. If you want
- to do something with the xine panel when the video overlay is taking
- all your screen, just switch back to window mode and do what you have
- to do and after that, back to fullscreen it goes. :-)
-
-
-* KNOWN BUGs
-
- + the default_repeat config option is currently hardcoded to 0 because
- any higher value than 1 will trigger a bug with the SyncFB kernel module
- that results in a distorted picture (depending on video resolution)
- [this bug is hard to trace, so don't hold your breath for now]
-
- + SyncFB overlay won't turn off when video window is minimized or
- somehow else hidden.
- [currently there is no way for the SyncFB plugin to know about the
- state of the video window except if the original xine-ui hide function
- is used to hide the video window... this will be fixed soon]
-
- + zooming feature is currently deactivated because it exposes a bug
- with the SyncFB kernel module
- [for now, don't expect this to be fixed soon - sorry]
-
- + the syncfb kernel module needs updating pretty badly
-
-
-* WHAT IS ON THE TODO LIST?
-
- + fix above listed bugs in the SyncFB kernel module
-
- + make software deinterlacing available as an option
-
- + RGB support
- (unlikely at the moment because there is no need for it)
-
- + check if the video source is not too big in terms of dimensions for
- the video memory left (video memory - X reserved video memory)
-
- + bug fixes
- + more sanity checks
- + new features
- + optimizations
-
-
-* CONTACTS and FEEDBACK
-
- Your first starting point should be this README followed by the FAQ. :-)
- If you don't find your answers there or if you found a bug, please leave
- a message on the xine user mailinglist (see the general README).
-
diff --git a/doc/faq/Makefile.am b/doc/faq/Makefile.am
index 6090fd272..f6fc1dd10 100644
--- a/doc/faq/Makefile.am
+++ b/doc/faq/Makefile.am
@@ -1,22 +1,17 @@
+include $(top_srcdir)/misc/Makefile.quiet
include $(top_srcdir)/misc/Makefile.common
doc_DATA = faq.txt
html_DATA = faq.html
-EXTRA_DIST = README faq.sgml $(doc_DATA) $(html_DATA)
+EXTRA_DIST = README faq.docbook faq.xsl $(doc_DATA) $(html_DATA)
-docs: $(doc_DATA) $(html_DATA)
+DISTCLEANFILES = $(doc_DATA) $(html_DATA)
-distclean-local: clean-docs
-
-docs-prepare: $(srcdir)/faq.sgml
- if test "$(srcdir)" != "." -a "$(srcdir)" != "`pwd`"; then \
- test -f ./faq.sgml -a ./faq.sgml -nt $(srcdir)/faq.sgml || cp $^ . ; \
- fi
+docs: $(hackersguide_DATA)
clean-docs:
- rm -f $(doc_DATA) $(html_DATA)
- test "x$(srcdir)" = x. || rm -f faq.sgml
+ rm -f $(hackersguide_DATA)
dist-hook:
@if test x"$(distcheck_lax)" = x ; then \
@@ -25,38 +20,22 @@ dist-hook:
$(MAKE) docs ; \
fi
-if HAVE_SGMLTOOLS
-faq.html: faq.sgml
- @$(MAKE) docs-prepare
- $(SGMLTOOLS) -b onehtml faq.sgml;
-else
-faq.html: faq.sgml
- @$(MAKE) docs-prepare
- if test x"$(fail_if_missing)" = x"yes"; then \
- echo "Please install sgmltools-lite."; \
- exit 1; \
- fi
- if test x"$(fail_if_missing)" != x"yes"; then \
- touch $@; \
- sleep 1; \
- touch $(notdir $^); \
- fi
-endif
+distclean-local: clean-docs
-if HAVE_SGMLTOOLS
-faq.txt: faq.sgml
- @$(MAKE) docs-prepare
- $(SGMLTOOLS) -b txt faq.sgml;
+if HAVE_XMLTO
+faq.html: faq.docbook faq.xsl
+ xmlto -m faq.xsl xhtml-nochunks $<
+faq.txt: faq.docbook faq.xsl
+ xmlto -m faq.xsl txt $<
else
-faq.txt: faq.sgml
- @$(MAKE) docs-prepare
+faq.html faq.txt: faq.docbook
if test x"$(fail_if_missing)" = x"yes"; then \
- echo "Please install sgmltools-lite."; \
+ echo "Please install xmlto."; \
exit 1; \
fi
if test x"$(fail_if_missing)" != x"yes"; then \
touch $@; \
sleep 1; \
- touch $(notdir $^); \
+ touch $^; \
fi
endif
diff --git a/doc/faq/faq.sgml b/doc/faq/faq.docbook
index 27bd6182c..d26dc343a 100644
--- a/doc/faq/faq.sgml
+++ b/doc/faq/faq.docbook
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+ "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd" >
<book>
@@ -1115,6 +1117,10 @@
</ulink>
</para>
<para>
+ For recent kernels (2.6.x series) the raw devices are neither
+ needed nor supported anymore, so don't bother.
+ </para>
+ <para>
To use raw devices, first connect a free raw device to your dvd
device, use something like:
<screen>&nbsp;&nbsp;&nbsp;<command>raw /dev/raw1 /dev/dvd</command></screen>
@@ -1209,10 +1215,13 @@
<sect2 id="audiodrivers">
<title>What audio drivers does xine support? OSS? Alsa? Arts? Esd?</title>
<para>
- Currently xine support audio output via OSS (kernel audio drivers),
- ALSA 0.9.x (ALSA 0.5.x is no longer supported), arts (KDE's sound daemon)
- and esound (esd, gnome's sound daemon &ndash; not recommended because it has
- serious issues with a/v sync).
+ Currently xine support audio output via OSS (Linux 2.4 and most
+ *BSD audio drivers),
+ ALSA 0.9 and 1.0 (ALSA 0.5.x is no longer supported), aRTs (KDE
+ 3's sound daemon), ESounD (esd, gnome's sound daemon not
+ recommended because it has serious issues with a/v sync), JACK,
+ PulseAudio, plus platform-specific output through Sun devices for
+ Solaris and NetBSD and Irix output.
</para>
</sect2>
@@ -1282,7 +1291,8 @@
You can do this either in the config dialog while xine is running (press
the config button on the xine panel and go to the AUDIO tab) or have it
the complicated way by editing the config file yourself which is located
- in your home directory in <filename>.gxine</filename> or <filename>.xine</filename>:
+ in your home directory in <filename>.config/gxine</filename> or
+ <filename>.xine</filename>:
<programlisting>
&nbsp;&nbsp;&nbsp;audio.output.speaker_arrangement:Surround 4.0
&nbsp;&nbsp;&nbsp;audio.output.speaker_arrangement:Surround 4.1
@@ -1295,8 +1305,8 @@
<para>
xine can do that too. Pretty much the same story as for 4-/5-channel
surround (see above). You can either use the config dialog or edit
- the config file (<filename>~/.xine/config</filename> or <filename>~/.gxine/config</filename>)
- yourself:
+ the config file (<filename>~/.xine/config</filename> or
+ <filename>~/.config/gxine/config</filename>) yourself:
<programlisting>&nbsp;&nbsp;&nbsp;audio.output.speaker_arrangement:Pass Through</programlisting>
</para>
</sect2>
@@ -1817,7 +1827,7 @@
</para>
<para>
Drivers that access hardware directly includes VIDIX (warning: requires
- root priviledges or kernel helper) and SyncFB (requires kernel helper &ndash; Matrox only).
+ root priviledges or kernel helper).
User may try one of those, but should be warned that with root access
they can cause the system to crash hard. The support is also limited to
a couple of graphics cards only.
@@ -1857,8 +1867,8 @@
</para>
<para>
Unscaled OSD usage by subtitles and xine-ui is controlled by
- the following settings
- (<filename>~/.xine/config</filename> or <filename>~/.gxine/config</filename>):
+ the following settings (<filename>~/.xine/config</filename> or
+ <filename>~/.config/gxine/config</filename>):
<programlisting>&nbsp;&nbsp;&nbsp;gui.osd_use_unscaled:0</programlisting>
<programlisting>&nbsp;&nbsp;&nbsp;subtitles.separate.use_unscaled_osd:0</programlisting>
</para>
diff --git a/doc/faq/faq.xsl b/doc/faq/faq.xsl
new file mode 100644
index 000000000..524600be1
--- /dev/null
+++ b/doc/faq/faq.xsl
@@ -0,0 +1,4 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" />
+<xsl:param name="generate.toc" select="'article toc'" />
+</xsl:stylesheet>
diff --git a/doc/hackersguide/Makefile.am b/doc/hackersguide/Makefile.am
index 02a433299..f686f98f9 100644
--- a/doc/hackersguide/Makefile.am
+++ b/doc/hackersguide/Makefile.am
@@ -1,39 +1,33 @@
+include $(top_srcdir)/misc/Makefile.quiet
include $(top_srcdir)/misc/Makefile.common
-hackersguide_sgml = hackersguide.sgml \
- intro.sgml \
- library.sgml \
- overview.sgml \
- internals.sgml \
- stream.sgml \
- output.sgml
-hackersguide_fig = architecture.fig \
- library.fig \
- overlays.fig \
- post_frame.fig
+hackersguide_docbook = hackersguide.docbook \
+ intro.docbook \
+ library.docbook \
+ overview.docbook \
+ internals.docbook \
+ stream.docbook \
+ output.docbook
+hackersguide_svg = architecture.svg \
+ library.svg \
+ overlays.svg \
+ post_frame.svg
+hackersguidedir = $(htmldir)/hackersguide
hackersguide_DATA = hackersguide.html \
architecture.png library.png overlays.png post_frame.png
-EXTRA_DIST = README $(hackersguide_sgml) $(hackersguide_fig) \
+EXTRA_DIST = README $(hackersguide_docbook) $(hackersguide_svg) \
$(hackersguide_DATA)
-hackersguidedir = $(htmldir)/hackersguide
+DISTCLEANFILES = $(hackersguide_DATA)
-docs: $(hackersguide_DATA)
+SUFFIXES = .png .fig
-distclean-local: clean-docs
-
-docs-prepare: $(addprefix $(srcdir)/, $(hackersguide_sgml))
- if test "$(srcdir)" != "." -a "$(srcdir)" != "`pwd`"; then \
- for file in $(hackersguide_sgml) ; do \
- test -f ./$$file -a ./$$file -nt $(srcdir)/$$file || cp $(srcdir)/$$file .; \
- done ; \
- fi
+docs: $(hackersguide_DATA)
clean-docs:
rm -f $(hackersguide_DATA)
- test "x$(srcdir)" = x. || rm -f $(hackersguide_sgml) *.fig
dist-hook:
@if test x"$(distcheck_lax)" = x ; then \
@@ -42,36 +36,44 @@ dist-hook:
$(MAKE) docs ; \
fi
-if HAVE_SGMLTOOLS
-hackersguide.html: $(hackersguide_sgml)
- @$(MAKE) docs-prepare
- $(SGMLTOOLS) -b onehtml hackersguide.sgml;
+distclean-local: clean-docs
+
+AM_V_FAKE = $(am__v_FAKE_$(V))
+am__v_FAKE_ = $(am__v_FAKE_$(AM_DEFAULT_VERBOSITY))
+am__v_FAKE_0 = @echo " FAKE " $@;
+
+if HAVE_XMLTO
+hackersguide.html: $(hackersguide_docbook)
+ $(AM_V_GEN)xmlto xhtml-nochunks "$(srcdir)/hackersguide.docbook"
else
-hackersguide.html: $(hackersguide_sgml)
- @$(MAKE) docs-prepare
- if test x"$(fail_if_missing)" = x"yes"; then \
- echo "Please install sgmltools-lite."; \
+hackersguide.html: $(hackersguide_docbook)
+ $(AM_V_FAKE)if test x"$(fail_if_missing)" = x"yes"; then \
+ echo "Please install xmlto."; \
exit 1; \
- fi
+ fi; \
if test x"$(fail_if_missing)" != x"yes"; then \
touch $@; \
sleep 1; \
- touch $(notdir $^); \
+ touch $^; \
fi
endif
+ $(AM_V_at)$(SED) -i -e '/<img [^>]*alt=/! s/<img /<img alt="" /g' $@ # we want valid XHTML 1.1
-if HAVE_FIG2DEV
-%.png: %.fig
- $(FIG2DEV) -L png -S 4 $< $@;
+if HAVE_RSVG
+.svg.png:
+ $(AM_V_GEN)rsvg -f png $^ $@
+if HAVE_OPTIPNG
+ $(AM_V_at)optipng $@
+endif
else
-%.png: %.fig
- if test x"$(fail_if_missing)" = x"yes"; then \
- echo "Please install fig2dev."; \
+.svg.png:
+ $(AM_V_FAKE)if test x"$(fail_if_missing)" = x"yes"; then \
+ echo "Please install rsvg."; \
exit 1; \
- fi
+ fi; \
if test x"$(fail_if_missing)" != x"yes"; then \
touch $@; \
sleep 1; \
- touch $(notdir $^); \
+ touch $^; \
fi
endif
diff --git a/doc/hackersguide/architecture.fig b/doc/hackersguide/architecture.fig
deleted file mode 100644
index 9e420bf42..000000000
--- a/doc/hackersguide/architecture.fig
+++ /dev/null
@@ -1,560 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Metric
-A4
-100.00
-Single
--2
-1200 2
-6 2520 3915 3555 4950
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 2520 3915 3555 3915 3555 4950 2520 4950 2520 3915
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
- 2520 4140 3555 4140
-4 0 0 50 0 20 11 0.0000 4 150 945 2565 4680 demuxer plugin\001
-4 0 0 50 0 20 11 0.0000 4 150 840 2655 4095 demuxer loop\001
--6
-6 4500 3735 6300 5355
-6 5715 4500 6075 4770
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 5715 4500 6075 4500 6075 4770 5715 4770 5715 4500
-4 0 0 50 0 20 11 0.0000 4 120 195 5805 4680 buf\001
--6
-6 4680 4005 5040 4275
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4680 4005 5040 4005 5040 4275 4680 4275 4680 4005
-4 0 0 50 0 20 11 0.0000 4 120 195 4770 4185 buf\001
--6
-6 4860 4320 5220 4590
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4860 4320 5220 4320 5220 4590 4860 4590 4860 4320
-4 0 0 50 0 20 11 0.0000 4 120 195 4950 4500 buf\001
--6
-6 5220 4680 5580 4950
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 5220 4680 5580 4680 5580 4950 5220 4950 5220 4680
-4 0 0 50 0 20 11 0.0000 4 120 195 5310 4860 buf\001
--6
-6 5355 4095 5715 4365
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 5355 4095 5715 4095 5715 4365 5355 4365 5355 4095
-4 0 0 50 0 20 11 0.0000 4 120 195 5445 4275 buf\001
--6
-6 4635 4635 4995 4905
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4635 4635 4995 4635 4995 4905 4635 4905 4635 4635
-4 0 0 50 0 20 11 0.0000 4 120 195 4725 4815 buf\001
--6
-6 5805 3960 6165 4230
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 5805 3960 6165 3960 6165 4230 5805 4230 5805 3960
-4 0 0 50 0 20 11 0.0000 4 120 195 5895 4140 buf\001
--6
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4500 3735 6300 3735 6300 5355 4500 5355 4500 3735
-4 0 0 50 0 20 11 0.0000 4 150 660 5085 5265 buffer pool\001
--6
-6 1260 4230 2160 4770
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 1260 4230 2160 4230 2160 4770 1260 4770 1260 4230
-4 0 0 50 0 20 11 0.0000 4 150 705 1350 4545 input plugin\001
--6
-6 1710 3735 2070 4005
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 1710 3735 2070 3735 2070 4005 1710 4005 1710 3735
-4 0 0 20 0 20 11 0.0000 4 120 195 1800 3915 buf\001
--6
-6 3915 4320 4275 4590
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 3915 4320 4275 4320 4275 4590 3915 4590 3915 4320
-4 0 0 20 0 20 11 0.0000 4 120 195 4005 4500 buf\001
--6
-6 6525 5130 6885 5400
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 6525 5130 6885 5130 6885 5400 6525 5400 6525 5130
-4 0 0 20 0 20 11 0.0000 4 120 195 6615 5310 buf\001
--6
-6 6525 3555 6885 3825
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 6525 3555 6885 3555 6885 3825 6525 3825 6525 3555
-4 0 0 20 0 20 11 0.0000 4 120 195 6615 3735 buf\001
--6
-6 7335 5265 7695 5535
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 7335 5265 7695 5265 7695 5535 7335 5535 7335 5265
-4 0 0 20 0 20 11 0.0000 4 120 255 7425 5445 disc\001
--6
-6 7290 3375 7650 3645
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 7290 3375 7650 3375 7650 3645 7290 3645 7290 3375
-4 0 0 20 0 20 11 0.0000 4 120 255 7380 3555 disc\001
--6
-6 8865 5085 9225 5355
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 8865 5085 9225 5085 9225 5355 8865 5355 8865 5085
-4 0 0 20 0 20 11 0.0000 4 150 195 8955 5265 pts\001
--6
-6 9180 5985 9540 6255
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 9180 5985 9540 5985 9540 6255 9180 6255 9180 5985
-4 0 0 20 0 20 11 0.0000 4 150 270 9270 6165 vpts\001
--6
-6 8910 3645 9270 3915
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 8910 3645 9270 3645 9270 3915 8910 3915 8910 3645
-4 0 0 20 0 20 11 0.0000 4 150 195 9000 3825 pts\001
--6
-6 7380 4050 8865 4950
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 7380 4050 8865 4050 8865 4950 7380 4950 7380 4050
-4 0 0 50 0 20 11 0.0000 4 120 630 7830 4545 metronom\001
--6
-6 8505 3555 8865 3825
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 8505 3555 8865 3555 8865 3825 8505 3825 8505 3555
-4 0 0 20 0 20 11 0.0000 4 150 195 8595 3735 pts\001
--6
-6 8010 3330 8370 3600
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 8010 3330 8370 3330 8370 3600 8010 3600 8010 3330
-4 0 0 20 0 20 11 0.0000 4 150 270 8100 3510 vpts\001
--6
-6 1170 1575 9900 7425
-2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 9855 1620 1215 1620 1215 7380 9855 7380 9855 1620
-4 0 0 50 0 20 11 0.0000 4 135 735 1350 1800 xine stream\001
--6
-6 1215 270 9900 540
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 1215 270 9900 270 9900 540 1215 540 1215 270
-4 0 0 50 0 20 11 0.0000 4 150 780 4590 450 stream layer\001
--6
-6 6795 630 9900 900
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 6795 630 9900 630 9900 900 6795 900 6795 630
-4 0 0 50 0 20 11 0.0000 4 150 840 7965 810 decoder layer\001
--6
-6 3915 630 6705 900
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 3915 630 6705 630 6705 900 3915 900 3915 630
-4 0 0 50 0 20 11 0.0000 4 135 750 5040 810 stream fifos\001
--6
-6 2340 630 3825 900
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 2340 630 3825 630 3825 900 2340 900 2340 630
-4 0 0 50 0 20 11 0.0000 4 150 885 2655 810 demuxer layer\001
--6
-6 1215 630 2250 900
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 1215 630 2250 630 2250 900 1215 900 1215 630
-4 0 0 50 0 20 11 0.0000 4 150 645 1395 810 input layer\001
--6
-6 11295 4050 12780 4950
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 11295 4050 12780 4050 12780 4950 11295 4950 11295 4050
-2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
- 12780 4500 11700 4500
-2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 0 0 3
- 11700 4950 11700 4320 12780 4320
-4 0 0 50 0 20 11 0.0000 4 135 1005 11430 4275 metronom clock\001
-4 0 0 50 0 20 11 0.0000 4 150 975 11745 4455 clock sync loop\001
-4 0 0 50 0 20 11 0.0000 4 150 600 11745 4770 scr plugin\001
--6
-6 11295 5220 11655 5490
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 11295 5220 11655 5220 11655 5490 11295 5490 11295 5220
-4 0 0 20 0 20 11 0.0000 4 120 270 11385 5400 time\001
--6
-6 11295 3555 11655 3825
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 11295 3555 11655 3555 11655 3825 11295 3825 11295 3555
-4 0 0 20 0 20 11 0.0000 4 120 270 11385 3735 time\001
--6
-6 9990 270 12870 540
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 9990 270 12870 270 12870 540 9990 540 9990 270
-4 0 0 50 0 20 11 0.0000 4 150 735 11075 450 output layer\001
--6
-6 10035 1620 10845 7290
-6 10260 4275 10710 4680
-4 0 0 40 0 20 11 0.0000 4 150 270 10260 4410 post\001
-4 0 0 40 0 20 11 0.0000 4 150 435 10260 4635 plugins\001
--6
-2 2 0 1 0 7 50 0 20 0.000 0 0 -1 0 0 5
- 10125 1620 10845 1620 10845 7200 10125 7200 10125 1620
-2 2 0 1 0 7 60 0 20 0.000 0 0 -1 0 0 5
- 10080 1665 10800 1665 10800 7245 10080 7245 10080 1665
-2 2 0 1 0 7 70 0 20 0.000 0 0 -1 0 0 5
- 10035 1710 10755 1710 10755 7290 10035 7290 10035 1710
--6
-6 11070 900 12870 1620
-2 2 0 1 0 7 50 0 -1 3.000 0 0 -1 0 0 5
- 11070 1620 12870 1620 12870 900 11070 900 11070 1620
-2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
- 11655 900 11655 1620
-4 0 0 50 0 20 11 0.0000 4 150 1035 11790 1305 overlay manager\001
-4 0 0 50 0 20 11 0.0000 4 120 300 11205 1305 OSD\001
--6
-6 11115 1845 11475 2115
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 11115 1845 11475 1845 11475 2115 11115 2115 11115 1845
-4 0 0 20 0 20 11 0.0000 4 120 225 11205 2025 spu\001
--6
-6 9360 4545 9720 4815
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 9360 4545 9720 4545 9720 4815 9360 4815 9360 4545
-4 0 0 20 0 20 11 0.0000 4 150 195 9450 4725 pts\001
--6
-6 8100 5130 8460 5400
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 8100 5130 8460 5130 8460 5400 8100 5400 8100 5130
-4 0 0 20 0 20 11 0.0000 4 150 270 8190 5310 vpts\001
--6
-6 9450 3150 9810 3420
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 9450 3150 9810 3150 9810 3420 9450 3420 9450 3150
-4 0 0 20 0 20 11 0.0000 4 150 270 9540 3330 vpts\001
--6
-6 7920 3645 8280 3915
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 7920 3645 8280 3645 8280 3915 7920 3915 7920 3645
-4 0 0 20 0 20 11 0.0000 4 150 270 8010 3825 vpts\001
--6
-6 9360 4140 9720 4410
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 9360 4140 9720 4140 9720 4410 9360 4410 9360 4140
-4 0 0 20 0 20 11 0.0000 4 150 195 9450 4320 pts\001
--6
-6 1485 8550 3375 8730
-2 1 2 1 0 7 50 0 -1 1.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 1485 8640 2025 8640
-4 0 0 50 0 20 11 0.0000 4 150 1170 2205 8685 extra info datapath\001
--6
-6 1485 8235 3285 8415
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 1485 8325 2025 8325
-4 0 0 50 0 20 11 0.0000 4 150 1065 2205 8370 detailed datapath\001
--6
-6 1485 7920 2745 8100
-2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 1485 8010 2025 8010
-4 0 0 50 0 20 11 0.0000 4 150 540 2205 8055 datapath\001
--6
-6 4095 7875 5445 8145
-6 4095 7875 4455 8145
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 4095 7875 4455 7875 4455 8145 4095 8145 4095 7875
-4 0 0 20 0 20 11 0.0000 4 120 195 4185 8055 buf\001
--6
-4 0 0 50 0 20 11 0.0000 4 135 660 4770 8055 xine buffer\001
--6
-6 4095 8190 5580 8460
-6 4095 8190 4455 8460
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 4095 8190 4455 8190 4455 8460 4095 8460 4095 8190
-4 0 0 20 0 20 11 0.0000 4 120 255 4185 8370 disc\001
--6
-4 0 0 50 0 20 11 0.0000 4 150 780 4770 8370 discontinuity\001
--6
-6 4095 8505 6255 8775
-6 4095 8505 4455 8775
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 4095 8505 4455 8505 4455 8775 4095 8775 4095 8505
-4 0 0 20 0 20 11 0.0000 4 150 195 4185 8685 pts\001
--6
-4 0 0 50 0 20 11 0.0000 4 150 1470 4770 8685 presentation timestamp\001
--6
-6 6930 7875 9495 8145
-6 6930 7875 7290 8145
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 6930 7875 7290 7875 7290 8145 6930 8145 6930 7875
-4 0 0 20 0 20 11 0.0000 4 150 270 7020 8055 vpts\001
--6
-4 0 0 50 0 20 11 0.0000 4 150 1890 7605 8055 virtual presentation timestamp\001
--6
-6 6930 8190 8550 8460
-6 6930 8190 7290 8460
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 6930 8190 7290 8190 7290 8460 6930 8460 6930 8190
-4 0 0 20 0 20 11 0.0000 4 120 225 7020 8370 spu\001
--6
-4 0 0 50 0 20 11 0.0000 4 150 915 7605 8370 subpicture unit\001
--6
-6 4230 2385 6390 3015
-6 4320 2430 4680 2700
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4320 2430 4680 2430 4680 2700 4320 2700 4320 2430
-4 0 0 50 0 20 11 0.0000 4 120 195 4410 2610 buf\001
--6
-6 5940 2430 6300 2700
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 5940 2430 6300 2430 6300 2700 5940 2700 5940 2430
-4 0 0 50 0 20 11 0.0000 4 120 195 6030 2610 buf\001
--6
-6 5220 2430 5580 2700
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 5220 2430 5580 2430 5580 2700 5220 2700 5220 2430
-4 0 0 50 0 20 11 0.0000 4 120 195 5310 2610 buf\001
--6
-6 4770 2430 5130 2700
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4770 2430 5130 2430 5130 2700 4770 2700 4770 2430
-4 0 0 50 0 20 11 0.0000 4 120 195 4860 2610 buf\001
--6
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 4365 2475 10 10 4355 2475 4375 2475
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 4815 2475 10 10 4805 2475 4825 2475
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 5265 2475 10 10 5255 2475 5275 2475
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 5985 2475 10 10 5975 2475 5995 2475
-2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5
- 4230 2385 6390 2385 6390 3015 4230 3015 4230 2385
-4 0 0 50 0 20 11 0.0000 4 135 570 5040 2925 video fifo\001
-4 0 0 50 0 20 11 0.0000 4 30 135 5715 2610 ...\001
--6
-6 4230 5985 6390 6615
-6 4320 6030 4680 6300
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4320 6030 4680 6030 4680 6300 4320 6300 4320 6030
-4 0 0 50 0 20 11 0.0000 4 120 195 4410 6210 buf\001
--6
-6 5940 6030 6300 6300
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 5940 6030 6300 6030 6300 6300 5940 6300 5940 6030
-4 0 0 50 0 20 11 0.0000 4 120 195 6030 6210 buf\001
--6
-6 5220 6030 5580 6300
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 5220 6030 5580 6030 5580 6300 5220 6300 5220 6030
-4 0 0 50 0 20 11 0.0000 4 120 195 5310 6210 buf\001
--6
-6 4770 6030 5130 6300
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4770 6030 5130 6030 5130 6300 4770 6300 4770 6030
-4 0 0 50 0 20 11 0.0000 4 120 195 4860 6210 buf\001
--6
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 4355 6075 10 10 4345 6075 4365 6075
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 4815 6075 10 10 4805 6075 4825 6075
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 5265 6075 10 10 5255 6075 5275 6075
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 5985 6075 10 10 5975 6075 5995 6075
-2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5
- 4230 5985 6390 5985 6390 6615 4230 6615 4230 5985
-4 0 0 50 0 20 11 0.0000 4 135 570 5040 6525 audio fifo\001
-4 0 0 50 0 20 11 0.0000 4 30 135 5715 6210 ...\001
--6
-6 3735 5310 4095 5580
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 3770 5355 10 10 3760 5355 3780 5355
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 3735 5310 4095 5310 4095 5580 3735 5580 3735 5310
-4 0 0 20 0 20 11 0.0000 4 120 195 3825 5490 buf\001
--6
-6 3735 3330 4095 3600
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 3780 3375 10 10 3770 3375 3790 3375
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 3735 3330 4095 3330 4095 3600 3735 3600 3735 3330
-4 0 0 20 0 20 11 0.0000 4 120 195 3825 3510 buf\001
--6
-6 6525 2565 6885 2835
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 6570 2600 10 10 6560 2600 6580 2600
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 6525 2565 6885 2565 6885 2835 6525 2835 6525 2565
-4 0 0 20 0 20 11 0.0000 4 120 195 6615 2745 buf\001
--6
-6 6525 6165 6885 6435
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 6570 6210 10 10 6560 6210 6580 6210
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 6525 6165 6885 6165 6885 6435 6525 6435 6525 6165
-4 0 0 20 0 20 11 0.0000 4 120 195 6615 6345 buf\001
--6
-6 7065 5850 8865 6750
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 7145 5895 10 10 7135 5895 7155 5895
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 7065 5850 8865 5850 8865 6750 7065 6750 7065 5850
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 7425 6750 7425 6120 8865 6120
-4 0 0 50 0 20 11 0.0000 4 150 1170 7200 6030 audio decoder loop\001
-4 0 0 50 0 20 11 0.0000 4 150 1275 7515 6480 audio decoder plugin\001
--6
-6 7065 2250 8865 3150
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 7110 2295 10 10 7100 2295 7120 2295
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 7065 2250 8865 2250 8865 3150 7065 3150 7065 2250
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 7425 3150 7425 2880 8865 2880
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 4
- 8865 2790 7425 2790 7425 2520 8865 2520
-4 0 0 50 0 20 11 0.0000 4 150 1170 7200 2430 video decoder loop\001
-4 0 0 50 0 20 11 0.0000 4 150 1170 7515 3060 spu decoder plugin\001
-4 0 0 50 0 20 11 0.0000 4 150 1275 7515 2700 video decoder plugin\001
--6
-6 9045 2340 9720 2610
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 9090 2385 10 10 9080 2385 9100 2385
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 9045 2340 9720 2340 9720 2610 9045 2610 9045 2340
-4 0 0 20 0 20 11 0.0000 4 120 435 9135 2520 frames\001
--6
-6 9045 6480 9720 6750
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 9080 6525 10 10 9070 6525 9090 6525
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 9045 6480 9720 6480 9720 6750 9045 6750 9045 6480
-4 0 0 20 0 20 11 0.0000 4 150 525 9135 6660 samples\001
--6
-6 11070 5850 12870 6750
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 11070 5850 12870 5850 12870 6750 11070 6750 11070 5850
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 11430 6750 11430 6120 12870 6120
-2 1 0 1 0 7 50 0 -1 1.000 0 0 -1 0 0 2
- 12240 5850 12240 6120
-4 0 0 50 0 20 11 0.0000 4 150 870 11205 6030 audio out loop\001
-4 0 0 50 0 20 11 0.0000 4 150 975 11520 6480 audio out plugin\001
-4 0 0 50 0 20 11 0.0000 4 135 435 12330 6030 out fifo\001
--6
-6 11070 2250 12870 3150
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 11070 2250 12870 2250 12870 3150 11070 3150 11070 2250
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 11430 3150 11430 2520 12870 2520
-2 1 0 1 0 7 50 0 -1 1.000 0 0 -1 0 0 2
- 12240 2250 12240 2520
-4 0 0 50 0 20 11 0.0000 4 150 870 11205 2430 video out loop\001
-4 0 0 50 0 20 11 0.0000 4 150 975 11520 2880 video out plugin\001
-4 0 0 50 0 20 11 0.0000 4 135 435 12330 2430 out fifo\001
--6
-6 11565 1620 12510 2250
-6 11700 1800 12375 2070
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 11700 1800 12375 1800 12375 2070 11700 2070 11700 1800
-4 0 0 20 0 20 11 0.0000 4 120 435 11790 1980 frames\001
--6
-3 2 0 1 0 7 50 0 -1 3.000 0 1 0 3
- 0 0 1.00 60.00 120.00
- 12060 2250 11565 1935 12060 1620
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 3.000 0 1 0 3
- 0 0 1.00 60.00 120.00
- 12060 1620 12510 1935 12060 2250
- 0.000 -1.000 0.000
--6
-1 4 0 1 0 0 10 0 20 0.000 1 0.0000 7110 8640 10 10 7100 8640 7120 8640
-2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 7155 5850 6300 4500
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 4500 4500 3555 4500
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 2160 4500 2520 4500
-2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 57.26 114.51
- 3555 4500 4230 6300
-2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 6390 2700 7065 2700
-2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 57.26 114.51
- 3555 4500 4230 2700
-2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 6390 6300 7065 6300
-2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 7155 3150 6300 4500
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 7290 3150 7965 4050
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 7290 5850 7965 4950
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 8550 3150 8550 4050
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 8325 4050 8325 3150
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 1215 1845 2205 1845 2205 1620
-2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
- 2295 7560 2295 585
-2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
- 3870 7560 3870 585
-2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
- 6750 7560 6750 585
-2 1 1 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
- 9945 7560 9945 270
-2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 11520 4950 11250 5850
-2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 11520 4050 11250 3150
-2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 1 2
- 0 0 1.00 60.00 120.00
- 0 0 1.00 60.00 120.00
- 8865 6570 11070 6570
-2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 1 2
- 0 0 1.00 60.00 120.00
- 0 0 1.00 60.00 120.00
- 8865 2565 11070 2565
-2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 1 3
- 0 0 1.00 60.00 120.00
- 0 0 1.00 60.00 120.00
- 8865 3060 9720 3060 11655 1620
-3 2 1 1 0 7 50 0 -1 4.000 0 1 0 5
- 0 0 1.00 60.00 120.00
- 4500 4365 3060 4365 2025 3915 1530 4275 2520 4365
- 0.000 -1.000 -1.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3
- 0 0 1.00 60.00 120.00
- 8865 6210 9290 5502 8865 4860
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 0 1 3
- 0 0 1.00 60.00 120.00
- 8865 6390 9450 5490 8865 4725
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 0 1 3
- 0 0 1.00 60.00 120.00
- 8865 4140 9405 3510 8865 2700
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 0 1 3
- 0 0 1.00 60.00 120.00
- 8865 2610 9540 3510 8865 4275
- 0.000 -1.000 0.000
-3 2 1 1 0 7 50 0 -1 4.000 0 1 0 8
- 0 0 1.00 60.00 120.00
- 8865 6480 10485 6300 11160 5850 10890 5130 9720 4635 8730 4725
- 8190 5490 8595 6120
- 0.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 0.000
-3 2 1 1 0 7 50 0 -1 4.000 0 1 0 7
- 0 0 1.00 60.00 120.00
- 8865 2700 10665 2745 11160 3375 10215 4230 8730 4275 7920 3780
- 7740 3150
- 0.000 -1.000 -1.000 -1.000 -1.000 -1.000 0.000
-3 2 2 1 0 7 50 0 -1 1.000 0 1 0 3
- 0 0 1.00 60.00 120.00
- 3285 4950 3285 5445 3735 5355
- 0.000 -1.000 0.000
-3 2 2 1 0 7 50 0 -1 1.000 0 1 0 4
- 0 0 1.00 60.00 120.00
- 3555 4185 3735 3825 3330 3510 3780 3375
- 0.000 -1.000 -1.000 0.000
-3 2 2 1 0 7 50 0 -1 1.000 0 1 0 3
- 0 0 1.00 60.00 120.00
- 6570 6210 6570 5940 7065 5895
- 0.000 -1.000 0.000
-3 2 2 1 0 7 50 0 -1 1.000 0 1 0 3
- 0 0 1.00 60.00 120.00
- 6570 2610 6570 2295 7065 2295
- 0.000 -1.000 0.000
-3 2 2 1 0 7 50 0 -1 1.000 0 1 0 3
- 0 0 1.00 60.00 120.00
- 7155 2250 8190 1845 9090 2385
- 0.000 -1.000 0.000
-3 2 2 1 0 7 50 0 -1 1.000 0 1 0 4
- 0 0 1.00 60.00 120.00
- 7110 5940 6975 6795 8010 7290 9090 6570
- 0.000 -1.000 -1.000 0.000
-4 0 0 50 0 20 11 0.0000 4 135 585 7605 8685 extra info\001
diff --git a/doc/hackersguide/architecture.svg b/doc/hackersguide/architecture.svg
new file mode 100644
index 000000000..ae610a0ea
--- /dev/null
+++ b/doc/hackersguide/architecture.svg
@@ -0,0 +1,2134 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5 -->
+<!-- CreationDate: Sat Jun 2 20:46:36 2007 -->
+<!-- Magnification: 1.050 -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ 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"
+ width="10.2in"
+ height="7.5in"
+ viewBox="1252 270 12271 8954"
+ id="svg3541"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docname="architecture.svg"
+ sodipodi:docbase="/home/flame/devel/repos/xine/xine-lib-1.2-newdocbook/doc/hackersguide"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata4074">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs4072" />
+ <sodipodi:namedview
+ inkscape:window-height="611"
+ inkscape:window-width="722"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="0.60296296"
+ inkscape:cx="459"
+ inkscape:cy="337.5"
+ inkscape:window-x="0"
+ inkscape:window-y="330"
+ inkscape:current-layer="svg3541" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1"
+ id="rect4076"
+ width="12503.331"
+ height="9244.4844"
+ x="1185.4929"
+ y="146.92683" />
+ <g
+ style="stroke-width:.025in; stroke:black; fill:none"
+ id="g3543">
+<!-- Line: box --> <rect
+ x="10535"
+ y="1795"
+ width="755"
+ height="5858"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3545" />
+<!-- Line: box --> <rect
+ x="10582"
+ y="1748"
+ width="755"
+ height="5858"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3547" />
+<!-- Line: box --> <rect
+ x="2645"
+ y="4110"
+ width="1086"
+ height="1086"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3549" />
+<!-- Line --> <polyline
+ points="2645,4346 3732,4346 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3551" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2692"
+ y="4913"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3553">demuxer plugin</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2787"
+ y="4299"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3555">demuxer loop</text>
+<!-- Line: box --> <rect
+ x="6000"
+ y="4724"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3557" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6094"
+ y="4913"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3559">buf</text>
+<!-- Line: box --> <rect
+ x="4913"
+ y="4204"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3561" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5007"
+ y="4393"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3563">buf</text>
+<!-- Line: box --> <rect
+ x="5102"
+ y="4535"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3565" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5196"
+ y="4724"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3567">buf</text>
+<!-- Line: box --> <rect
+ x="5480"
+ y="4913"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3569" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5574"
+ y="5102"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3571">buf</text>
+<!-- Line: box --> <rect
+ x="5622"
+ y="4299"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3573" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5716"
+ y="4488"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3575">buf</text>
+<!-- Line: box --> <rect
+ x="4866"
+ y="4866"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3577" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4960"
+ y="5055"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3579">buf</text>
+<!-- Line: box --> <rect
+ x="6094"
+ y="4157"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3581" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6188"
+ y="4346"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3583">buf</text>
+<!-- Line: box --> <rect
+ x="4724"
+ y="3921"
+ width="1889"
+ height="1700"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3585" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5338"
+ y="5527"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3587">buffer pool</text>
+<!-- Line: box --> <rect
+ x="1322"
+ y="4440"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3589" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1417"
+ y="4771"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3591">input plugin</text>
+<!-- Line: box --> <rect
+ x="7748"
+ y="4251"
+ width="1559"
+ height="944"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3593" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8220"
+ y="4771"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3595">metronom</text>
+<!-- Line: box --> <rect
+ x="1275"
+ y="1700"
+ width="9070"
+ height="6047"
+ rx="0"
+ style="stroke:#000000;stroke-width:16; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3597" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1417"
+ y="1889"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3599">xine stream</text>
+<!-- Line: box --> <rect
+ x="1275"
+ y="283"
+ width="9118"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3601" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4818"
+ y="472"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3603">stream layer</text>
+<!-- Line: box --> <rect
+ x="7133"
+ y="661"
+ width="3259"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3605" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8362"
+ y="850"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3607">decoder layer</text>
+<!-- Line: box --> <rect
+ x="4110"
+ y="661"
+ width="2929"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3609" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5291"
+ y="850"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3611">stream fifos</text>
+<!-- Line: box --> <rect
+ x="2456"
+ y="661"
+ width="1559"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3613" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2787"
+ y="850"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3615">demuxer layer</text>
+<!-- Line: box --> <rect
+ x="1275"
+ y="661"
+ width="1086"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3617" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1464"
+ y="850"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3619">input layer</text>
+<!-- Line: box --> <rect
+ x="11858"
+ y="4251"
+ width="1559"
+ height="944"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3621" />
+<!-- Line --> <polyline
+ points="13417,4724 12283,4724 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3623" />
+<!-- Line --> <polyline
+ points="12283,5196 12283,4535 13417,4535 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3625" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12000"
+ y="4488"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3627">metronom clock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12330"
+ y="4677"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3629">clock sync loop</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12330"
+ y="5007"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3631">scr plugin</text>
+<!-- Line: box --> <rect
+ x="10488"
+ y="283"
+ width="3023"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3633" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11627"
+ y="472"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3635">output layer</text>
+<!-- Line: box --> <rect
+ x="10629"
+ y="1700"
+ width="755"
+ height="5858"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3637" />
+<!-- Line: box --> <rect
+ x="11622"
+ y="944"
+ width="1889"
+ height="755"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3639" />
+<!-- Line --> <polyline
+ points="12236,944 12236,1700 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3641" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12377"
+ y="1370"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3643">overlay manager</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11763"
+ y="1370"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3645">OSD</text>
+<!-- Line --> <polyline
+ points="1559,9070 2108,9070 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:10 10;"
+ id="polyline3647" />
+<!-- Arrowhead on XXXpoint 1559 9070 - 2141 9070--> <polyline
+ points="1997 9102 2123 9070 1997 9039 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3649" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2314"
+ y="9118"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3651">extra info datapath</text>
+<!-- Line --> <polyline
+ points="1559,8740 2108,8740 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline3653" />
+<!-- Arrowhead on XXXpoint 1559 8740 - 2141 8740--> <polyline
+ points="1997 8771 2123 8740 1997 8708 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3655" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2314"
+ y="8787"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3657">detailed datapath</text>
+<!-- Line --> <polyline
+ points="1559,8409 2108,8409 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3659" />
+<!-- Arrowhead on XXXpoint 1559 8409 - 2141 8409--> <polyline
+ points="1997 8440 2123 8409 1997 8377 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3661" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2314"
+ y="8456"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3663">datapath</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5007"
+ y="8456"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3665">xine buffer</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5007"
+ y="8787"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3667">discontinuity</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5007"
+ y="9118"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3669">presentation timestamp</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="8456"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3671">virtual presentation timestamp</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="8787"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3673">subpicture unit</text>
+<!-- Line: box --> <rect
+ x="4535"
+ y="2551"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3675" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4629"
+ y="2740"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3677">buf</text>
+<!-- Line: box --> <rect
+ x="6236"
+ y="2551"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3679" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6330"
+ y="2740"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3681">buf</text>
+<!-- Line: box --> <rect
+ x="5480"
+ y="2551"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3683" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5574"
+ y="2740"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3685">buf</text>
+<!-- Line: box --> <rect
+ x="5007"
+ y="2551"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3687" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5102"
+ y="2740"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3689">buf</text>
+<!-- Line: box --> <rect
+ x="4440"
+ y="2503"
+ width="2267"
+ height="661"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3691" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5291"
+ y="3070"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3693">video fifo</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6000"
+ y="2740"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3695">...</text>
+<!-- Line: box --> <rect
+ x="4535"
+ y="6330"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3697" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4629"
+ y="6519"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3699">buf</text>
+<!-- Line: box --> <rect
+ x="6236"
+ y="6330"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3701" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6330"
+ y="6519"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3703">buf</text>
+<!-- Line: box --> <rect
+ x="5480"
+ y="6330"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3705" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5574"
+ y="6519"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3707">buf</text>
+<!-- Line: box --> <rect
+ x="5007"
+ y="6330"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3709" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5102"
+ y="6519"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3711">buf</text>
+<!-- Line: box --> <rect
+ x="4440"
+ y="6283"
+ width="2267"
+ height="661"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3713" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5291"
+ y="6850"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3715">audio fifo</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6000"
+ y="6519"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3717">...</text>
+<!-- Line: box --> <rect
+ x="7417"
+ y="6141"
+ width="1889"
+ height="944"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3719" />
+<!-- Line --> <polyline
+ points="7795,7086 7795,6425 9307,6425 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3721" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7559"
+ y="6330"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3723">audio decoder loop</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7889"
+ y="6803"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3725">audio decoder plugin</text>
+<!-- Line: box --> <rect
+ x="7417"
+ y="2362"
+ width="1889"
+ height="944"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3727" />
+<!-- Line --> <polyline
+ points="7795,3307 7795,3023 9307,3023 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3729" />
+<!-- Line --> <polyline
+ points="9307,2929 7795,2929 7795,2645 9307,2645 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3731" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7559"
+ y="2551"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3733">video decoder loop</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7889"
+ y="3212"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3735">spu decoder plugin</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7889"
+ y="2834"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3737">video decoder plugin</text>
+<!-- Line: box --> <rect
+ x="11622"
+ y="6141"
+ width="1889"
+ height="944"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3739" />
+<!-- Line --> <polyline
+ points="12000,7086 12000,6425 13511,6425 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3741" />
+<!-- Line --> <polyline
+ points="12850,6141 12850,6425 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3743" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11763"
+ y="6330"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3745">audio out loop</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12094"
+ y="6803"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3747">audio out plugin</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12944"
+ y="6330"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3749">out fifo</text>
+<!-- Line: box --> <rect
+ x="11622"
+ y="2362"
+ width="1889"
+ height="944"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect3751" />
+<!-- Line --> <polyline
+ points="12000,3307 12000,2645 13511,2645 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3753" />
+<!-- Line --> <polyline
+ points="12850,2362 12850,2645 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3755" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11763"
+ y="2551"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3757">video out loop</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12094"
+ y="3023"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3759">video out plugin</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12944"
+ y="2551"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3761">out fifo</text>
+<!-- Line --> <polyline
+ points="12661,2362 12659,2361 12654,2360 12645,2356 12633,2352 12615,2346 12593,2339 12565,2329 12536,2319 12503,2306 12469,2293 12433,2279 12398,2264 12363,2248 12329,2232 12297,2214 12266,2196 12238,2176 12212,2156 12188,2134 12170,2110 12155,2085 12144,2058 12141,2031 12144,2004 12155,1977 12170,1952 12188,1928 12212,1906 12238,1886 12266,1866 12297,1848 12329,1830 12363,1814 12398,1798 12433,1783 12469,1769 12503,1756 12536,1743 12565,1733 12593,1723 12615,1716 12633,1710 12644,1704 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; "
+ id="polyline3763" />
+<!-- Arrowhead on XXXpoint 12633 1710 - 12676 1695--> <polyline
+ points="12550 1771 12659 1700 12529 1711 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3765" />
+<!-- Line --> <polyline
+ points="12661,1700 12663,1701 12669,1703 12679,1707 12693,1712 12713,1719 12739,1729 12767,1740 12798,1753 12833,1767 12868,1783 12902,1799 12937,1817 12971,1835 13002,1855 13033,1875 13059,1897 13083,1920 13104,1945 13120,1972 13129,2002 13133,2031 13129,2060 13120,2090 13104,2117 13083,2142 13059,2165 13033,2187 13002,2207 12971,2227 12937,2245 12902,2263 12868,2279 12833,2295 12798,2309 12767,2322 12739,2333 12713,2343 12693,2350 12677,2355 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; "
+ id="polyline3767" />
+<!-- Arrowhead on XXXpoint 12693 2350 - 12645 2367--> <polyline
+ points="12770 2290 12662 2362 12791 2349 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3769" />
+<!-- Line --> <polyline
+ points="7511,6141 6622,4738 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3771" />
+<!-- Arrowhead on XXXpoint 7511 6141 - 6604 4710--> <polyline
+ points="6707 4814 6614 4725 6654 4848 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3773" />
+<!-- Line --> <polyline
+ points="4724,4724 3749,4724 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3775" />
+<!-- Arrowhead on XXXpoint 4724 4724 - 3716 4724--> <polyline
+ points="3860 4692 3734 4724 3860 4755 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3777" />
+<!-- Line --> <polyline
+ points="2267,4724 2627,4724 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3779" />
+<!-- Arrowhead on XXXpoint 2267 4724 - 2661 4724--> <polyline
+ points="2517 4755 2643 4724 2517 4692 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3781" />
+<!-- Line --> <polyline
+ points="3732,4724 4434,6598 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3783" />
+<!-- Arrowhead on XXXpoint 3732 4724 - 4446 6628--> <polyline
+ points="4368 6509 4439 6612 4425 6488 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3785" />
+<!-- Line --> <polyline
+ points="6708,2834 7399,2834 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3787" />
+<!-- Arrowhead on XXXpoint 6708 2834 - 7433 2834--> <polyline
+ points="7289 2866 7415 2834 7289 2803 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3789" />
+<!-- Line --> <polyline
+ points="3732,4724 4434,2849 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3791" />
+<!-- Arrowhead on XXXpoint 3732 4724 - 4446 2818--> <polyline
+ points="4425 2958 4439 2835 4369 2937 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3793" />
+<!-- Line --> <polyline
+ points="6708,6614 7399,6614 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3795" />
+<!-- Arrowhead on XXXpoint 6708 6614 - 7433 6614--> <polyline
+ points="7289 6645 7415 6614 7289 6582 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3797" />
+<!-- Line --> <polyline
+ points="7511,3307 6622,4709 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3799" />
+<!-- Arrowhead on XXXpoint 7511 3307 - 6604 4737--> <polyline
+ points="6654 4598 6614 4722 6707 4632 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3801" />
+<!-- Line --> <polyline
+ points="7653,3307 8351,4238 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3803" />
+<!-- Arrowhead on XXXpoint 7653 3307 - 8371 4264--> <polyline
+ points="8260 4169 8361 4250 8310 4131 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3805" />
+<!-- Line --> <polyline
+ points="7653,6141 8351,5209 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3807" />
+<!-- Arrowhead on XXXpoint 7653 6141 - 8371 5184--> <polyline
+ points="8310 5317 8361 5197 8260 5279 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3809" />
+<!-- Line --> <polyline
+ points="8976,3307 8976,4234 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3811" />
+<!-- Arrowhead on XXXpoint 8976 3307 - 8976 4267--> <polyline
+ points="8944 4123 8976 4249 9007 4123 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3813" />
+<!-- Line --> <polyline
+ points="8740,4251 8740,3323 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3815" />
+<!-- Arrowhead on XXXpoint 8740 4251 - 8740 3291--> <polyline
+ points="8771 3435 8740 3309 8708 3435 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3817" />
+<!-- Line --> <polyline
+ points="1275,1937 2314,1937 2314,1700 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3819" />
+<!-- Line --> <polyline
+ points="2409,7937 2409,614 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:10 31;"
+ id="polyline3821" />
+<!-- Line --> <polyline
+ points="4062,7937 4062,614 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:10 31;"
+ id="polyline3823" />
+<!-- Line --> <polyline
+ points="7086,7937 7086,614 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:10 31;"
+ id="polyline3825" />
+<!-- Line --> <polyline
+ points="10440,7937 10440,283 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:31 31;"
+ id="polyline3827" />
+<!-- Line --> <polyline
+ points="12094,5196 11815,6124 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3829" />
+<!-- Arrowhead on XXXpoint 12094 5196 - 11805 6156--> <polyline
+ points="11816 6009 11811 6139 11877 6027 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3831" />
+<!-- Line --> <polyline
+ points="12094,4251 11815,3322 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3833" />
+<!-- Arrowhead on XXXpoint 12094 4251 - 11805 3291--> <polyline
+ points="11877 3419 11811 3308 11816 3437 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3835" />
+<!-- Line --> <polyline
+ points="9324,6897 11604,6897 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3837" />
+<!-- Arrowhead on XXXpoint 9307 6897 - 11637 6897--> <polyline
+ points="11493 6929 11619 6897 11493 6866 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3839" />
+<!-- Arrowhead on XXXpoint 11622 6897 - 9291 6897--> <polyline
+ points="9435 6866 9309 6897 9435 6929 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3841" />
+<!-- Line --> <polyline
+ points="9324,2692 11604,2692 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3843" />
+<!-- Arrowhead on XXXpoint 9307 2692 - 11637 2692--> <polyline
+ points="11493 2724 11619 2692 11493 2661 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3845" />
+<!-- Arrowhead on XXXpoint 11622 2692 - 9291 2692--> <polyline
+ points="9435 2661 9309 2692 9435 2724 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3847" />
+<!-- Line --> <polyline
+ points="9324,3212 10204,3212 12222,1710 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline3849" />
+<!-- Arrowhead on XXXpoint 10204 3212 - 12248 1691--> <polyline
+ points="12152 1801 12235 1701 12114 1751 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3851" />
+<!-- Arrowhead on XXXpoint 10204 3212 - 9294 3220--> <polyline
+ points="9437 3187 9312 3220 9438 3250 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3853" />
+<!-- Line --> <polyline
+ points="4724,4582 4723,4582 4721,4582 4716,4583 4708,4584 4698,4585 4684,4587 4666,4590 4644,4593 4619,4595 4591,4599 4558,4602 4522,4606 4483,4611 4443,4615 4398,4619 4353,4622 4306,4626 4258,4630 4207,4634 4156,4637 4103,4639 4050,4641 3995,4642 3939,4643 3882,4643 3822,4642 3762,4641 3699,4638 3635,4634 3568,4629 3500,4622 3429,4615 3357,4605 3285,4595 3212,4582 3132,4566 3056,4550 2984,4532 2920,4514 2861,4495 2810,4477 2766,4459 2728,4441 2697,4424 2670,4407 2649,4391 2632,4375 2617,4360 2605,4344 2595,4329 2586,4314 2577,4300 2569,4285 2558,4270 2545,4256 2532,4241 2514,4226 2493,4212 2468,4197 2438,4182 2405,4169 2366,4155 2324,4142 2277,4131 2227,4121 2177,4114 2125,4110 2073,4109 2025,4111 1980,4115 1939,4121 1901,4131 1868,4140 1838,4151 1812,4162 1788,4175 1767,4186 1749,4199 1732,4213 1716,4225 1702,4238 1689,4251 1676,4265 1664,4279 1652,4292 1640,4307 1629,4322 1618,4337 1609,4352 1600,4368 1591,4385 1585,4402 1582,4419 1581,4437 1584,4454 1592,4471 1606,4488 1627,4502 1653,4516 1683,4529 1719,4539 1757,4549 1798,4556 1842,4562 1887,4567 1934,4573 1983,4576 2032,4579 2083,4581 2135,4583 2187,4584 2239,4585 2290,4585 2341,4585 2389,4585 2435,4585 2477,4585 2515,4584 2549,4584 2577,4583 2600,4583 2618,4583 2628,4582 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline3855" />
+<!-- Arrowhead on XXXpoint 2618 4583 - 2660 4581--> <polyline
+ points="2517 4619 2642 4582 2514 4557 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3857" />
+<!-- Line --> <polyline
+ points="9307,6519 9308,6518 9311,6516 9315,6512 9322,6504 9333,6495 9346,6483 9362,6468 9381,6450 9402,6430 9425,6407 9450,6382 9476,6355 9502,6327 9528,6298 9553,6266 9580,6235 9604,6201 9627,6167 9650,6131 9670,6094 9690,6054 9707,6013 9722,5970 9735,5924 9744,5876 9751,5826 9753,5776 9751,5722 9743,5670 9732,5620 9718,5574 9700,5530 9680,5490 9659,5453 9636,5417 9611,5383 9585,5351 9558,5320 9530,5292 9502,5264 9474,5238 9446,5213 9420,5191 9396,5171 9374,5153 9355,5139 9339,5126 9327,5117 9319,5111 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; "
+ id="polyline3859" />
+<!-- Arrowhead on XXXpoint 9327 5117 - 9293 5092--> <polyline
+ points="9426 5150 9307 5103 9390 5202 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3861" />
+<!-- Line --> <polyline
+ points="9320,6699 9322,6696 9332,6687 9345,6676 9361,6661 9380,6644 9403,6624 9427,6602 9455,6577 9483,6550 9513,6521 9544,6491 9575,6458 9607,6426 9638,6391 9669,6355 9699,6319 9728,6281 9756,6242 9782,6202 9807,6160 9830,6117 9851,6072 9871,6025 9887,5976 9902,5925 9911,5872 9919,5818 9921,5763 9918,5706 9910,5650 9899,5596 9883,5546 9865,5499 9843,5454 9820,5413 9794,5373 9766,5336 9737,5300 9707,5267 9675,5235 9643,5205 9609,5175 9575,5148 9542,5121 9509,5097 9477,5074 9447,5051 9419,5033 9394,5016 9372,5001 9352,4988 9337,4979 9324,4972 9316,4966 9311,4962 9308,4961 9307,4960 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; "
+ id="polyline3863" />
+<!-- Arrowhead on XXXpoint 9322 6696 - 9295 6718--> <polyline
+ points="9386 6603 9309 6707 9426 6651 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3865" />
+<!-- Line --> <polyline
+ points="9322,4340 9323,4338 9335,4331 9349,4324 9366,4314 9386,4303 9411,4289 9436,4275 9464,4258 9493,4239 9524,4219 9554,4198 9586,4176 9616,4153 9647,4128 9676,4102 9704,4075 9731,4046 9757,4015 9780,3983 9802,3948 9822,3910 9839,3870 9854,3827 9864,3782 9871,3734 9874,3685 9871,3634 9864,3584 9854,3534 9839,3487 9822,3441 9802,3397 9780,3355 9757,3315 9731,3275 9704,3237 9676,3201 9647,3165 9616,3130 9586,3097 9554,3064 9524,3034 9493,3003 9464,2975 9436,2950 9411,2925 9386,2904 9366,2886 9349,2871 9335,2858 9323,2849 9316,2841 9311,2837 9308,2835 9307,2834 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; "
+ id="polyline3867" />
+<!-- Arrowhead on XXXpoint 9323 4338 - 9293 4352--> <polyline
+ points="9408 4261 9309 4345 9436 4318 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3869" />
+<!-- Line --> <polyline
+ points="9320,2750 9324,2752 9336,2761 9351,2772 9370,2787 9392,2804 9418,2824 9446,2846 9477,2871 9510,2898 9545,2927 9581,2957 9616,2990 9653,3022 9689,3057 9724,3092 9759,3129 9793,3167 9825,3206 9856,3246 9884,3288 9911,3331 9935,3376 9958,3423 9977,3471 9993,3523 10005,3575 10012,3630 10015,3685 10012,3742 10004,3798 9990,3851 9972,3902 9951,3949 9926,3994 9899,4035 9869,4075 9837,4112 9803,4148 9769,4181 9732,4213 9694,4243 9655,4272 9616,4300 9579,4327 9540,4351 9503,4374 9468,4396 9437,4415 9407,4432 9381,4447 9359,4459 9341,4469 9328,4476 9318,4481 9312,4486 9308,4487 9307,4488 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; "
+ id="polyline3871" />
+<!-- Arrowhead on XXXpoint 9324 2752 - 9294 2731--> <polyline
+ points="9429 2786 9309 2741 9394 2837 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3873" />
+<!-- Line --> <polyline
+ points="9307,6803 9308,6803 9310,6803 9314,6803 9321,6803 9332,6802 9344,6802 9361,6802 9382,6801 9407,6800 9435,6800 9467,6797 9503,6796 9542,6795 9583,6793 9628,6792 9674,6790 9722,6787 9773,6785 9825,6782 9878,6779 9931,6775 9986,6771 10041,6768 10097,6763 10154,6759 10212,6752 10268,6747 10327,6740 10386,6733 10446,6725 10507,6717 10567,6707 10629,6697 10692,6685 10756,6672 10819,6660 10883,6645 10946,6629 11007,6614 11085,6592 11158,6569 11222,6546 11279,6527 11330,6508 11372,6492 11407,6477 11437,6466 11460,6456 11479,6448 11495,6441 11506,6436 11514,6432 11522,6428 11527,6425 11532,6422 11537,6416 11543,6411 11549,6405 11556,6396 11566,6386 11576,6372 11590,6355 11606,6335 11623,6312 11641,6285 11661,6254 11681,6219 11700,6181 11716,6141 11729,6100 11737,6059 11742,6019 11745,5983 11746,5949 11748,5919 11748,5891 11746,5868 11745,5847 11744,5829 11742,5814 11741,5801 11740,5788 11738,5778 11736,5767 11733,5757 11729,5745 11724,5734 11718,5720 11710,5704 11699,5687 11686,5666 11669,5641 11649,5614 11625,5583 11596,5548 11563,5510 11524,5470 11481,5428 11433,5385 11386,5349 11339,5313 11292,5279 11246,5249 11202,5220 11161,5195 11122,5172 11086,5152 11055,5135 11025,5120 10999,5106 10976,5095 10955,5085 10935,5077 10916,5068 10898,5061 10881,5055 10864,5048 10846,5042 10827,5035 10805,5028 10782,5020 10755,5012 10726,5002 10692,4992 10655,4981 10613,4969 10566,4955 10515,4940 10459,4924 10400,4910 10337,4894 10271,4879 10204,4866 10130,4853 10058,4843 9991,4834 9930,4827 9876,4822 9828,4817 9787,4814 9753,4812 9724,4809 9700,4808 9681,4806 9665,4805 9652,4804 9640,4803 9629,4803 9619,4803 9608,4804 9596,4805 9582,4807 9565,4810 9544,4814 9519,4820 9490,4829 9456,4839 9417,4852 9373,4867 9324,4886 9273,4907 9219,4932 9165,4960 9116,4990 9069,5020 9026,5050 8987,5081 8952,5110 8920,5138 8893,5163 8869,5186 8848,5208 8829,5227 8813,5244 8800,5260 8788,5275 8777,5289 8768,5301 8760,5315 8751,5328 8743,5341 8734,5356 8726,5372 8718,5390 8707,5409 8697,5432 8686,5457 8675,5484 8662,5516 8649,5550 8637,5588 8624,5629 8614,5672 8604,5717 8598,5763 8596,5815 8597,5865 8603,5912 8613,5956 8625,5997 8641,6036 8659,6072 8678,6106 8700,6137 8722,6167 8746,6196 8771,6223 8797,6248 8824,6272 8850,6296 8876,6317 8901,6337 8924,6355 8946,6371 8965,6385 8982,6397 8996,6407 9006,6413 9008,6415 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline3875" />
+<!-- Arrowhead on XXXpoint 9006 6413 - 9036 6433--> <polyline
+ points="8898 6379 9021 6424 8934 6326 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3877" />
+<!-- Line --> <polyline
+ points="9307,2834 9308,2834 9310,2834 9315,2833 9321,2833 9332,2832 9345,2830 9363,2829 9384,2827 9409,2825 9439,2822 9472,2819 9509,2816 9550,2813 9594,2809 9640,2806 9690,2802 9742,2798 9796,2795 9850,2791 9907,2788 9965,2786 10024,2783 10083,2781 10143,2779 10203,2777 10264,2777 10325,2776 10386,2777 10447,2779 10509,2781 10572,2784 10634,2788 10697,2793 10760,2800 10824,2807 10888,2815 10951,2826 11015,2837 11077,2851 11138,2866 11196,2881 11261,2902 11321,2923 11376,2945 11425,2966 11468,2987 11507,3007 11541,3025 11570,3042 11595,3057 11616,3070 11634,3083 11649,3093 11661,3103 11671,3112 11679,3120 11686,3127 11692,3134 11696,3142 11700,3148 11703,3156 11708,3165 11711,3173 11714,3185 11717,3196 11720,3211 11723,3227 11728,3246 11731,3268 11734,3292 11737,3319 11739,3350 11739,3383 11738,3420 11734,3459 11727,3500 11716,3543 11700,3586 11682,3630 11661,3672 11638,3712 11616,3751 11593,3786 11571,3819 11549,3849 11529,3878 11510,3903 11492,3926 11477,3946 11461,3966 11446,3983 11433,4000 11420,4014 11406,4029 11393,4043 11379,4056 11365,4071 11350,4086 11332,4100 11313,4116 11291,4134 11266,4152 11238,4172 11207,4194 11171,4217 11131,4242 11086,4268 11037,4296 10982,4325 10923,4354 10860,4384 10793,4413 10724,4440 10657,4465 10588,4486 10522,4504 10458,4520 10398,4535 10342,4546 10289,4557 10241,4565 10197,4572 10158,4577 10122,4581 10090,4583 10061,4585 10035,4586 10012,4586 9990,4586 9970,4585 9951,4584 9932,4582 9914,4580 9896,4578 9876,4576 9854,4573 9830,4571 9805,4567 9777,4564 9745,4561 9711,4557 9672,4554 9629,4550 9582,4544 9531,4539 9477,4533 9418,4527 9357,4518 9293,4510 9229,4499 9165,4488 9086,4471 9014,4453 8946,4434 8887,4415 8834,4397 8790,4382 8752,4366 8721,4352 8697,4341 8676,4329 8661,4320 8648,4310 8639,4303 8632,4295 8625,4287 8620,4279 8614,4270 8606,4261 8598,4250 8587,4238 8575,4223 8558,4206 8538,4187 8514,4165 8487,4139 8456,4111 8423,4079 8387,4044 8350,4007 8314,3968 8277,3923 8243,3878 8215,3834 8191,3792 8171,3752 8154,3714 8141,3677 8131,3643 8123,3609 8117,3576 8114,3545 8112,3514 8111,3485 8111,3458 8112,3430 8113,3406 8115,3384 8117,3364 8119,3348 8121,3334 8122,3323 8122,3322 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline3879" />
+<!-- Arrowhead on XXXpoint 8122 3323 - 8128 3291--> <polyline
+ points="8135 3437 8124 3308 8073 3426 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3881" />
+<!-- Line --> <polyline
+ points="3448,5196 3447,5198 3446,5204 3444,5212 3441,5226 3436,5243 3430,5265 3424,5291 3417,5320 3411,5351 3404,5384 3398,5417 3394,5451 3390,5484 3387,5518 3387,5550 3390,5582 3394,5612 3402,5641 3414,5669 3428,5694 3448,5716 3474,5734 3503,5746 3532,5753 3564,5755 3596,5753 3628,5748 3660,5739 3693,5729 3727,5716 3758,5702 3790,5689 3819,5674 3846,5661 3869,5649 3888,5639 3906,5629 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:10 10;"
+ id="polyline3883" />
+<!-- Arrowhead on XXXpoint 3888 5639 - 3934 5613--> <polyline
+ points="3825 5711 3920 5622 3794 5656 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3885" />
+<!-- Line --> <polyline
+ points="3732,4393 3733,4392 3736,4390 3741,4386 3749,4379 3759,4370 3772,4359 3786,4345 3802,4329 3819,4312 3837,4295 3854,4275 3870,4255 3885,4234 3899,4211 3910,4187 3921,4163 3928,4137 3932,4109 3932,4078 3929,4048 3921,4015 3908,3984 3890,3954 3871,3927 3849,3905 3826,3886 3803,3870 3779,3859 3755,3849 3732,3842 3708,3836 3685,3830 3661,3825 3638,3819 3615,3813 3593,3804 3571,3795 3551,3781 3532,3766 3517,3749 3504,3729 3497,3707 3496,3685 3502,3662 3517,3643 3537,3625 3561,3610 3589,3598 3620,3588 3654,3580 3690,3572 3728,3566 3765,3561 3803,3556 3840,3552 3874,3549 3903,3547 3927,3545 3951,3543 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:10 10;"
+ id="polyline3887" />
+<!-- Arrowhead on XXXpoint 3927 3545 - 3983 3542--> <polyline
+ points="3840 3581 3965 3543 3837 3518 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3889" />
+<!-- Line --> <polyline
+ points="6897,6519 6896,6518 6894,6515 6891,6509 6886,6501 6880,6490 6873,6477 6865,6461 6856,6445 6849,6426 6841,6408 6835,6388 6832,6369 6830,6350 6831,6330 6835,6311 6844,6291 6856,6272 6874,6254 6897,6236 6922,6222 6951,6209 6981,6200 7012,6193 7043,6187 7076,6183 7108,6180 7141,6178 7173,6178 7206,6178 7238,6178 7270,6179 7299,6180 7327,6182 7352,6183 7373,6185 7390,6186 7400,6187 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:10 10;"
+ id="polyline3891" />
+<!-- Arrowhead on XXXpoint 7390 6186 - 7432 6190--> <polyline
+ points="7286 6209 7414 6188 7290 6148 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3893" />
+<!-- Line --> <polyline
+ points="6897,2740 6896,2738 6893,2732 6889,2723 6882,2710 6875,2693 6867,2672 6857,2650 6849,2626 6840,2601 6834,2576 6831,2550 6830,2524 6833,2500 6840,2475 6853,2452 6872,2429 6897,2409 6922,2395 6951,2385 6981,2376 7012,2371 7043,2368 7076,2366 7108,2367 7141,2368 7173,2370 7206,2374 7238,2377 7270,2383 7299,2387 7327,2392 7352,2396 7373,2401 7390,2404 7400,2406 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:10 10;"
+ id="polyline3895" />
+<!-- Arrowhead on XXXpoint 7390 2404 - 7432 2411--> <polyline
+ points="7285 2416 7415 2408 7295 2354 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3897" />
+<!-- Line --> <polyline
+ points="7511,2362 7512,2361 7514,2359 7519,2355 7526,2350 7535,2343 7549,2333 7565,2321 7585,2306 7607,2290 7632,2271 7660,2251 7692,2230 7724,2208 7760,2185 7796,2162 7835,2139 7874,2117 7914,2094 7956,2073 8000,2052 8045,2032 8091,2014 8138,1997 8188,1982 8240,1968 8295,1956 8351,1946 8410,1940 8472,1935 8534,1934 8598,1937 8661,1943 8722,1952 8781,1965 8837,1981 8890,1997 8940,2016 8986,2037 9032,2059 9074,2082 9113,2108 9152,2133 9188,2159 9224,2185 9257,2213 9289,2241 9320,2268 9350,2297 9377,2324 9403,2350 9427,2375 9449,2398 9469,2419 9487,2439 9502,2456 9514,2470 9524,2481 9531,2490 9531,2490 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:10 10;"
+ id="polyline3899" />
+<!-- Arrowhead on XXXpoint 9531 2490 - 9552 2515--> <polyline
+ points="9436 2425 9541 2501 9484 2384 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3901" />
+<!-- Line --> <polyline
+ points="7464,6236 7463,6237 7461,6240 7458,6244 7453,6253 7446,6263 7437,6278 7425,6295 7413,6316 7398,6340 7382,6367 7365,6396 7348,6428 7331,6460 7314,6496 7297,6532 7281,6569 7268,6606 7255,6645 7245,6684 7236,6725 7230,6766 7227,6808 7228,6852 7232,6896 7239,6942 7253,6990 7271,7037 7294,7085 7322,7133 7352,7174 7384,7213 7418,7250 7453,7285 7486,7316 7518,7344 7548,7371 7577,7395 7604,7416 7628,7435 7651,7453 7671,7468 7691,7483 7709,7497 7725,7508 7742,7520 7759,7531 7776,7542 7794,7552 7813,7562 7834,7572 7857,7582 7882,7592 7910,7602 7942,7611 7977,7622 8017,7630 8061,7639 8110,7647 8163,7653 8220,7657 8281,7659 8344,7658 8409,7653 8471,7645 8532,7633 8591,7617 8648,7601 8703,7581 8755,7559 8807,7534 8855,7509 8901,7483 8946,7456 8990,7426 9030,7397 9071,7366 9110,7335 9148,7303 9185,7271 9220,7238 9255,7206 9288,7173 9320,7142 9351,7110 9379,7081 9405,7053 9429,7025 9453,7001 9471,6979 9489,6959 9504,6942 9516,6929 9525,6918 9532,6910 9531,6910 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:bevel; stroke-linecap:butt; stroke-dasharray:10 10;"
+ id="polyline3903" />
+<!-- Arrowhead on XXXpoint 9532 6910 - 9552 6885--> <polyline
+ points="9488 7016 9542 6898 9438 6977 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline3905" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="9118"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3907">extra info</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10771"
+ y="4629"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3909">post</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10771"
+ y="4866"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3911">plugins</text>
+<!-- Line: box --> <rect
+ x="1795"
+ y="3921"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3913" />
+<!-- Line: box --> <rect
+ x="4110"
+ y="4535"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3915" />
+<!-- Line: box --> <rect
+ x="6850"
+ y="5385"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3917" />
+<!-- Line: box --> <rect
+ x="6850"
+ y="3732"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3919" />
+<!-- Line: box --> <rect
+ x="7700"
+ y="5527"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3921" />
+<!-- Line: box --> <rect
+ x="7653"
+ y="3543"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3923" />
+<!-- Line: box --> <rect
+ x="9307"
+ y="5338"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3925" />
+<!-- Line: box --> <rect
+ x="9637"
+ y="6283"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3927" />
+<!-- Line: box --> <rect
+ x="9354"
+ y="3826"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3929" />
+<!-- Line: box --> <rect
+ x="8929"
+ y="3732"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3931" />
+<!-- Line: box --> <rect
+ x="8409"
+ y="3496"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3933" />
+<!-- Line: box --> <rect
+ x="11858"
+ y="5480"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3935" />
+<!-- Line: box --> <rect
+ x="11858"
+ y="3732"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3937" />
+<!-- Line: box --> <rect
+ x="11669"
+ y="1937"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3939" />
+<!-- Line: box --> <rect
+ x="9826"
+ y="4771"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3941" />
+<!-- Line: box --> <rect
+ x="8503"
+ y="5385"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3943" />
+<!-- Line: box --> <rect
+ x="9921"
+ y="3307"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3945" />
+<!-- Line: box --> <rect
+ x="8314"
+ y="3826"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3947" />
+<!-- Line: box --> <rect
+ x="9826"
+ y="4346"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3949" />
+<!-- Line: box --> <rect
+ x="4299"
+ y="8267"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3951" />
+<!-- Line: box --> <rect
+ x="4299"
+ y="8598"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3953" />
+<!-- Line: box --> <rect
+ x="4299"
+ y="8929"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3955" />
+<!-- Line: box --> <rect
+ x="7275"
+ y="8267"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3957" />
+<!-- Line: box --> <rect
+ x="7275"
+ y="8598"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3959" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="5574"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3961" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="3496"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3963" />
+<!-- Line: box --> <rect
+ x="6850"
+ y="2692"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3965" />
+<!-- Line: box --> <rect
+ x="6850"
+ y="6472"
+ width="377"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3967" />
+<!-- Line: box --> <rect
+ x="9496"
+ y="2456"
+ width="708"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3969" />
+<!-- Line: box --> <rect
+ x="9496"
+ y="6803"
+ width="708"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3971" />
+<!-- Line: box --> <rect
+ x="12283"
+ y="1889"
+ width="708"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect3973" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1889"
+ y="4110"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3975">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4204"
+ y="4724"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3977">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6944"
+ y="5574"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3979">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6944"
+ y="3921"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3981">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7795"
+ y="5716"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3983">disc</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7748"
+ y="3732"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3985">disc</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9401"
+ y="5527"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3987">pts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9732"
+ y="6472"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3989">vpts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9448"
+ y="4015"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3991">pts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9023"
+ y="3921"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3993">pts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8503"
+ y="3685"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3995">vpts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11952"
+ y="5669"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3997">time</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11952"
+ y="3921"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text3999">time</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11763"
+ y="2125"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4001">spu</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9921"
+ y="4960"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4003">pts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8598"
+ y="5574"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4005">vpts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10015"
+ y="3496"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4007">vpts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8409"
+ y="4015"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4009">vpts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9921"
+ y="4535"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4011">pts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4393"
+ y="8456"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4013">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4393"
+ y="8787"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4015">disc</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4393"
+ y="9118"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4017">pts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7370"
+ y="8456"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4019">vpts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7370"
+ y="8787"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4021">spu</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="5763"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4023">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="3685"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4025">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6944"
+ y="2881"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4027">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6944"
+ y="6661"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4029">buf</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9590"
+ y="2645"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4031">frames</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9590"
+ y="6992"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4033">samples</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12377"
+ y="2078"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4035">frames</text>
+<!-- Circle --> <circle
+ cx="4582"
+ cy="2598"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4037" />
+<!-- Circle --> <circle
+ cx="5055"
+ cy="2598"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4039" />
+<!-- Circle --> <circle
+ cx="5527"
+ cy="2598"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4041" />
+<!-- Circle --> <circle
+ cx="6283"
+ cy="2598"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4043" />
+<!-- Circle --> <circle
+ cx="4572"
+ cy="6377"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4045" />
+<!-- Circle --> <circle
+ cx="5055"
+ cy="6377"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4047" />
+<!-- Circle --> <circle
+ cx="5527"
+ cy="6377"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4049" />
+<!-- Circle --> <circle
+ cx="6283"
+ cy="6377"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4051" />
+<!-- Circle --> <circle
+ cx="3958"
+ cy="5622"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4053" />
+<!-- Circle --> <circle
+ cx="3968"
+ cy="3543"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4055" />
+<!-- Circle --> <circle
+ cx="6897"
+ cy="2729"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4057" />
+<!-- Circle --> <circle
+ cx="6897"
+ cy="6519"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4059" />
+<!-- Circle --> <circle
+ cx="7501"
+ cy="6188"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4061" />
+<!-- Circle --> <circle
+ cx="7464"
+ cy="2409"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4063" />
+<!-- Circle --> <circle
+ cx="9543"
+ cy="2503"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4065" />
+<!-- Circle --> <circle
+ cx="9532"
+ cy="6850"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4067" />
+<!-- Circle --> <circle
+ cx="7464"
+ cy="9070"
+ r="10"
+ style="fill:#000000;stroke:#000000;stroke-width:8;"
+ id="circle4069" />
+ </g>
+</svg>
diff --git a/doc/hackersguide/hackersguide.sgml b/doc/hackersguide/hackersguide.docbook
index e33304110..779e7b814 100644
--- a/doc/hackersguide/hackersguide.sgml
+++ b/doc/hackersguide/hackersguide.docbook
@@ -1,10 +1,12 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-<!ENTITY intro SYSTEM "intro.sgml" >
-<!ENTITY library SYSTEM "library.sgml" >
-<!ENTITY overview SYSTEM "overview.sgml" >
-<!ENTITY internals SYSTEM "internals.sgml">
-<!ENTITY stream SYSTEM "stream.sgml" >
-<!ENTITY output SYSTEM "output.sgml" >
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+ "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd" [
+<!ENTITY intro SYSTEM "intro.docbook" >
+<!ENTITY library SYSTEM "library.docbook" >
+<!ENTITY overview SYSTEM "overview.docbook" >
+<!ENTITY internals SYSTEM "internals.docbook">
+<!ENTITY stream SYSTEM "stream.docbook" >
+<!ENTITY output SYSTEM "output.docbook" >
]>
<book>
@@ -13,15 +15,16 @@
<title>The xine hacker's guide</title>
<titleabbrev>hackersguide</titleabbrev>
<authorgroup>
- <author><firstname>G&uuml;nter</firstname><surname>Bartsch</surname></author>
- <author><firstname>Heiko</firstname><surname>Sch&auml;fer</surname></author>
+ <author><firstname>Günter</firstname><surname>Bartsch</surname></author>
+ <author><firstname>Heiko</firstname><surname>Schäfer</surname></author>
<author><firstname>Richard</firstname><surname>Wareham</surname></author>
<author><firstname>Miguel</firstname><surname>Freitas</surname></author>
<author><firstname>James</firstname><surname>Courtier-Dutton</surname></author>
<author><firstname>Siggi</firstname><surname>Langauf</surname></author>
- <author><firstname>Marco</firstname><surname>Z&uuml;hlke</surname></author>
+ <author><firstname>Marco</firstname><surname>Zühlke</surname></author>
<author><firstname>Mike</firstname><surname>Melanson</surname></author>
<author><firstname>Michael</firstname><surname>Roitzsch</surname></author>
+ <author><firstname>Diego</firstname><surname>Pettenò</surname></author>
<author><firstname>Darren</firstname><surname>Salt</surname></author>
</authorgroup>
<copyright>
diff --git a/doc/hackersguide/internals.sgml b/doc/hackersguide/internals.docbook
index 5e0cd9349..d31a6eff5 100644
--- a/doc/hackersguide/internals.sgml
+++ b/doc/hackersguide/internals.docbook
@@ -5,10 +5,10 @@
<title>Engine architecture and data flow</title>
<mediaobject>
<imageobject>
- <imagedata fileref="architecture.png" format="PNG">
+ <imagedata fileref="architecture.png" format="PNG" />
</imageobject>
<imageobject>
- <imagedata fileref="architecture.eps" format="EPS">
+ <imagedata fileref="architecture.eps" format="EPS" />
</imageobject>
<caption>
<para>xine engine architecture</para>
@@ -398,7 +398,7 @@
&nbsp;&nbsp;&nbsp; *
&nbsp;&nbsp;&nbsp; * audio buf ---&gt; metronom --&gt; audio fifo --&gt; (buf-&gt;vpts - hw_vpts)
&nbsp;&nbsp;&nbsp; * (vpts_offset + error) gap
-&nbsp;&nbsp;&nbsp; * <---------- control --------------|
+&nbsp;&nbsp;&nbsp; * &lt;---------- control --------------|
&nbsp;&nbsp;&nbsp; *
&nbsp;&nbsp;&nbsp; * Unfortunately audio fifo adds a large delay to our closed loop.
&nbsp;&nbsp;&nbsp; *
@@ -410,7 +410,7 @@
&nbsp;&nbsp;&nbsp; * - each update will be of gap/SYNC_GAP_RATE.
&nbsp;&nbsp;&nbsp; *
&nbsp;&nbsp;&nbsp; * Sound card clock correction can only provide smooth playback for
-&nbsp;&nbsp;&nbsp; * errors < 1% nominal rate. For bigger errors (bad streams) audio
+&nbsp;&nbsp;&nbsp; * errors &lt; 1% nominal rate. For bigger errors (bad streams) audio
&nbsp;&nbsp;&nbsp; * buffers may be dropped or gaps filled with silence.
&nbsp;&nbsp;&nbsp; */</programlisting>
</para>
@@ -468,10 +468,10 @@
</para>
<mediaobject>
<imageobject>
- <imagedata fileref="overlays.png" format="PNG">
+ <imagedata fileref="overlays.png" format="PNG" />
</imageobject>
<imageobject>
- <imagedata fileref="overlays.eps" format="EPS">
+ <imagedata fileref="overlays.eps" format="EPS" />
</imageobject>
<caption>
<para>overlays architecture</para>
diff --git a/doc/hackersguide/intro.sgml b/doc/hackersguide/intro.docbook
index cd163e2ee..cd163e2ee 100644
--- a/doc/hackersguide/intro.sgml
+++ b/doc/hackersguide/intro.docbook
diff --git a/doc/hackersguide/library.sgml b/doc/hackersguide/library.docbook
index 8f53d1556..51c82e9f3 100644
--- a/doc/hackersguide/library.sgml
+++ b/doc/hackersguide/library.docbook
@@ -12,10 +12,10 @@
</para>
<mediaobject>
<imageobject>
- <imagedata fileref="library.png" format="PNG">
+ <imagedata fileref="library.png" format="PNG" />
</imageobject>
<imageobject>
- <imagedata fileref="library.eps" format="EPS">
+ <imagedata fileref="library.eps" format="EPS" />
</imageobject>
<caption>
<para>outside view on xine components</para>
diff --git a/doc/hackersguide/library.fig b/doc/hackersguide/library.fig
deleted file mode 100644
index ec33d0f32..000000000
--- a/doc/hackersguide/library.fig
+++ /dev/null
@@ -1,313 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Metric
-A4
-100.00
-Single
--2
-1200 2
-6 900 405 1350 855
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 900 450 1080 450 1080 855
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 1170 855 1170 450 1350 450
--6
-6 1890 7470 3330 7965
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 1890 7470 3330 7470 3330 7965 1890 7965 1890 7470
-4 0 0 50 0 20 11 0.0000 4 150 885 2205 7740 xine_stream_t\001
--6
-6 3330 7335 4365 8055
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7
- 3330 7695 3510 7335 4185 7335 4365 7695 4185 8055 3510 8055
- 3330 7695
-4 0 0 50 0 20 11 0.0000 4 165 930 3420 7740 xine_post_wire\001
--6
-6 3915 6210 7335 8235
-6 4770 6705 5220 7155
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 4770 6750 4950 6750 4950 7155
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 5040 7155 5040 6750 5220 6750
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 4635 7425 5445 7425 5445 7155
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4635 7155 7065 7155 7065 8235 4635 8235 4635 7155
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 4
- 4635 8235 4365 8235 4365 7155 4635 7155
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 4
- 7065 8235 7335 8235 7335 7155 7065 7155
-4 0 0 50 0 20 11 0.0000 4 165 1785 3915 6570 xine_list_post_plugins_typed\001
-4 0 0 50 0 20 11 0.0000 4 165 1365 3915 6345 xine_list_post_plugins\001
-4 0 0 50 0 20 11 0.0000 4 165 1155 5265 6795 xine_post_dispose\001
-4 0 0 50 0 20 11 0.0000 4 165 720 4680 7335 xine_post_t\001
-4 0 0 50 0 20 11 0.0000 4 165 855 3915 6795 xine_post_init\001
-4 0 0 50 0 20 11 1.5708 4 165 900 4545 8100 xine_post_in_t\001
-4 0 0 50 0 20 11 1.5708 4 165 990 7245 8145 xine_post_out_t\001
-4 0 0 50 0 20 11 0.0000 4 165 1065 6075 7875 xine_post_output\001
-4 0 0 50 0 20 11 0.0000 4 165 1395 4680 7875 xine_post_list_outputs\001
-4 0 0 50 0 20 11 0.0000 4 165 1305 4680 7650 xine_post_list_inputs\001
-4 0 0 50 0 20 11 0.0000 4 165 975 6075 7650 xine_post_input\001
--6
-6 7335 7335 8370 8055
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7
- 7335 7695 7515 7335 8190 7335 8370 7695 8190 8055 7515 8055
- 7335 7695
-4 0 0 50 0 20 11 0.0000 4 165 930 7425 7740 xine_post_wire\001
--6
-6 8370 7425 9630 7920
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 8390 7438 9630 7438 9630 7920 8390 7920 8390 7438
-4 0 0 50 0 20 11 0.0000 4 165 720 8705 7708 xine_post_t\001
--6
-6 9630 7335 11520 8055
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7
- 9630 7695 9810 7335 11340 7335 11520 7695 11340 8055 9810 8055
- 9630 7695
-4 0 0 50 0 20 11 0.0000 4 165 1650 9765 7740 xine_post_wire_video_port\001
--6
-6 11520 7425 12780 7920
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 11540 7438 12780 7438 12780 7920 11540 7920 11540 7438
-4 0 0 50 0 20 11 0.0000 4 165 1095 11655 7708 xine_video_port_t\001
--6
-6 2250 5580 2970 7470
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7
- 2610 7470 2250 7290 2250 5760 2610 5580 2970 5760 2970 7290
- 2610 7470
-4 0 0 50 0 20 11 1.5708 4 150 1680 2655 7335 xine_stream_master_slave\001
--6
-6 10215 2565 13635 4005
-6 11655 2790 12105 3240
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 11655 2835 11835 2835 11835 3240
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 11925 3240 11925 2835 12105 2835
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 11520 3510 12690 3510 12690 3240
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 11520 3240 13590 3240 13590 4005 11520 4005 11520 3240
-4 0 0 50 0 20 11 0.0000 4 165 1890 10215 2700 xine_list_video_output_plugins\001
-4 0 0 50 0 20 11 0.0000 4 150 1485 12150 2880 xine_close_video_driver\001
-4 0 0 50 0 20 11 0.0000 4 165 1455 10215 2880 xine_open_video_driver\001
-4 0 0 50 0 20 11 0.0000 4 165 1095 11565 3420 xine_video_port_t\001
-4 0 0 50 0 20 11 0.0000 4 165 1545 11655 3780 xine_port_send_gui_data\001
--6
-6 9630 4995 11520 5715
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7
- 9630 5355 9810 4995 11340 4995 11520 5355 11340 5715 9810 5715
- 9630 5355
-4 0 0 50 0 20 11 0.0000 4 165 1650 9765 5400 xine_post_wire_audio_port\001
--6
-6 8370 5085 9630 5580
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 8390 5098 9630 5098 9630 5580 8390 5580 8390 5098
-4 0 0 50 0 20 11 0.0000 4 165 720 8705 5368 xine_post_t\001
--6
-6 10215 4185 13635 5625
-6 11655 4410 12105 4860
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 11655 4455 11835 4455 11835 4860
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 11925 4860 11925 4455 12105 4455
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 11520 5130 12690 5130 12690 4860
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 11520 4860 13590 4860 13590 5625 11520 5625 11520 4860
-4 0 0 50 0 20 11 0.0000 4 165 1890 10215 4320 xine_list_audio_output_plugins\001
-4 0 0 50 0 20 11 0.0000 4 150 1485 12150 4500 xine_close_audio_driver\001
-4 0 0 50 0 20 11 0.0000 4 165 1455 10215 4500 xine_open_audio_driver\001
-4 0 0 50 0 20 11 0.0000 4 165 1095 11565 5040 xine_audio_port_t\001
--6
-6 945 3060 7290 5580
-6 2025 3105 2475 3555
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 2025 3150 2205 3150 2205 3555
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 2295 3555 2295 3150 2475 3150
--6
-6 7020 3555 7290 5580
-6 7065 3555 7245 4545
-4 0 0 50 0 20 11 1.5708 4 165 990 7200 4545 xine_post_out_t\001
--6
-6 7065 4545 7245 5535
-4 0 0 50 0 20 11 1.5708 4 165 990 7200 5535 xine_post_out_t\001
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
- 7020 4590 7290 4590
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 4
- 7020 5580 7290 5580 7290 3555 7020 3555
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 1890 3825 2835 3825 2835 3555
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 1890 3555 7020 3555 7020 5580 1890 5580 1890 3555
-4 0 0 50 0 20 11 0.0000 4 165 885 3015 4545 xine_get_error\001
-4 0 0 50 0 20 11 0.0000 4 165 990 3015 4770 xine_get_status\001
-4 0 0 50 0 20 11 0.0000 4 165 1275 3015 4995 xine_get_pos_length\001
-4 0 0 50 0 20 11 0.0000 4 165 1260 3015 5220 xine_get_audio_lang\001
-4 0 0 50 0 20 11 0.0000 4 165 1155 3015 5445 xine_get_spu_lang\001
-4 0 0 50 0 20 11 0.0000 4 165 630 2115 4095 xine_open\001
-4 0 0 50 0 20 11 0.0000 4 165 585 2115 4320 xine_play\001
-4 0 0 50 0 20 11 0.0000 4 165 600 2115 4545 xine_stop\001
-4 0 0 50 0 20 11 0.0000 4 150 660 2115 4770 xine_close\001
-4 0 0 50 0 20 11 0.0000 4 165 630 2115 4995 xine_eject\001
-4 0 0 50 0 20 11 0.0000 4 165 990 3015 4095 xine_set_param\001
-4 0 0 50 0 20 11 0.0000 4 165 990 3015 4320 xine_get_param\001
-4 0 0 50 0 20 11 0.0000 4 165 1320 2520 3195 xine_stream_dispose\001
-4 0 0 50 0 20 11 0.0000 4 150 885 1935 3735 xine_stream_t\001
-4 0 0 50 0 20 11 0.0000 4 150 1095 945 3195 xine_stream_new\001
-4 0 0 50 0 20 11 0.0000 4 165 1470 5535 4095 xine_get_current_frame\001
-4 0 0 50 0 20 11 0.0000 4 165 1380 5535 4320 xine_get_current_vpts\001
-4 0 0 50 0 20 11 0.0000 4 150 1020 5535 4545 xine_trick_mode\001
-4 0 0 50 0 20 11 0.0000 4 165 1425 5535 4995 xine_get_audio_source\001
-4 0 0 50 0 20 11 0.0000 4 165 1425 5535 5220 xine_get_video_source\001
-4 0 0 50 0 20 11 0.0000 4 165 1335 4185 4095 xine_get_stream_info\001
-4 0 0 50 0 20 11 0.0000 4 165 1215 4185 4320 xine_get_meta_info\001
--6
-6 945 1260 2430 1890
-4 0 0 50 0 20 11 0.0000 4 150 510 945 1395 xine_init\001
-4 0 0 50 0 20 11 0.0000 4 165 1470 945 1620 xine_engine_set_param\001
-4 0 0 50 0 20 11 0.0000 4 165 1470 945 1845 xine_engine_get_param\001
--6
-6 5850 1260 8055 2790
-4 0 0 50 0 20 11 0.0000 4 165 1395 5850 1395 xine_get_browse_mrls\001
-4 0 0 50 0 20 11 0.0000 4 165 2190 5850 1620 xine_get_autoplay_input_plugin_ids\001
-4 0 0 50 0 20 11 0.0000 4 165 1470 5850 1845 xine_get_autoplay_mrls\001
-4 0 0 50 0 20 11 0.0000 4 165 1530 5850 2070 xine_get_file_extensions\001
-4 0 0 50 0 20 11 0.0000 4 165 1365 5850 2295 xine_get_mime_types\001
-4 0 0 50 0 20 11 0.0000 4 165 2025 5850 2520 xine_get_demux_for_mime_type\001
-4 0 0 50 0 20 11 0.0000 4 165 2085 5850 2745 xine_get_input_plugin_description\001
--6
-6 3960 1260 5670 2340
-4 0 0 50 0 20 11 0.0000 4 165 1380 3960 1395 xine_config_register_*\001
-4 0 0 50 0 20 11 0.0000 4 165 1680 3960 1620 xine_config_get_first_entry\001
-4 0 0 50 0 20 11 0.0000 4 165 1710 3960 1845 xine_config_get_next_entry\001
-4 0 0 50 0 20 11 0.0000 4 165 1575 3960 2070 xine_config_lookup_entry\001
-4 0 0 50 0 20 11 0.0000 4 165 1590 3960 2295 xine_config_update_entry\001
--6
-6 2655 1260 3780 1890
-4 0 0 50 0 20 11 0.0000 4 165 1035 2655 1395 xine_config_load\001
-4 0 0 50 0 20 11 0.0000 4 165 1080 2655 1620 xine_config_save\001
-4 0 0 50 0 20 11 0.0000 4 165 1095 2655 1845 xine_config_reset\001
--6
-6 2655 9630 6345 12150
-6 4005 9675 4455 10125
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 4005 9720 4185 9720 4185 10125
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 4275 10125 4275 9720 4455 9720
--6
-6 3825 10485 6255 11295
-6 4725 10575 5175 11025
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 4725 10620 4905 10620 4905 11025
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 4995 11025 4995 10620 5175 10620
--6
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 4455 11025 5445 11025 5445 11295 4455 11295 4455 11025
-4 0 0 50 0 20 11 0.0000 4 150 795 4590 11205 xine_event_t\001
-4 0 0 50 0 20 11 0.0000 4 150 990 5265 10665 xine_event_free\001
-4 0 0 50 0 20 11 0.0000 4 165 945 3825 10620 xine_event_get\001
-4 0 0 50 0 20 11 0.0000 4 150 1005 3825 10755 xine_event_wait\001
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 3690 10395 5085 10395 5085 10125
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 3690 10125 6345 10125 6345 11700 3690 11700 3690 10125
-4 0 0 50 0 20 11 0.0000 4 165 1455 2655 9765 xine_event_new_queue\001
-4 0 0 50 0 20 11 0.0000 4 165 1680 4545 9765 xine_event_dispose_queue\001
-4 0 0 50 0 20 11 0.0000 4 165 1245 3780 10305 xine_event_queue_t\001
-4 0 0 50 0 20 11 0.0000 4 150 2130 3825 11565 xine_event_create_listener_thread\001
-4 0 0 50 0 20 11 0.0000 4 150 1050 2655 12105 xine_event_send\001
--6
-6 8415 1260 10710 2340
-4 0 0 50 0 22 11 0.0000 4 165 1605 8415 1395 xine_list_input_plugins\001
-4 0 0 50 0 22 11 0.0000 4 165 1830 8415 1620 xine_list_demuxer_plugins\001
-4 0 0 50 0 22 11 0.0000 4 165 2250 8415 1845 xine_list_video_decoder_plugins\001
-4 0 0 50 0 22 11 0.0000 4 165 2265 8415 2070 xine_list_audio_decoder_plugins\001
-4 0 0 50 0 22 11 0.0000 4 165 1500 8415 2295 xine_list_spu_plugins\001
--6
-6 11115 1260 12870 2340
-4 0 0 50 0 20 11 0.0000 4 165 1725 11115 1395 xine_get_log_section_count\001
-4 0 0 50 0 20 11 0.0000 4 165 1275 11115 1620 xine_get_log_names\001
-4 0 0 50 0 20 11 0.0000 4 165 510 11115 1845 xine_log\001
-4 0 0 50 0 20 11 0.0000 4 165 780 11115 2070 xine_get_log\001
-4 0 0 50 0 20 11 0.0000 4 165 1275 11115 2295 xine_register_log_cb\001
--6
-6 6930 9630 11205 11925
-6 7785 9675 8235 10125
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 7785 9720 7965 9720 7965 10125
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 0 0 1.00 60.00 120.00
- 8055 10125 8055 9720 8235 9720
--6
-6 7605 10485 9225 11790
-4 0 0 50 0 20 11 0.0000 4 150 1065 7605 10620 xine_osd_draw_*\001
-4 0 0 50 0 20 11 0.0000 4 165 1455 7605 11520 xine_osd_set_encoding\001
-4 0 0 50 0 20 11 0.0000 4 150 1140 7605 11295 xine_osd_set_font\001
-4 0 0 50 0 20 11 0.0000 4 165 1470 7605 11070 xine_osd_get_text_size\001
-4 0 0 50 0 20 11 0.0000 4 165 1380 7605 11745 xine_osd_set_position\001
-4 0 0 50 0 20 11 0.0000 4 165 1590 7605 10845 xine_osd_get_capabilities\001
--6
-6 9405 10260 11070 11790
-4 0 0 50 0 20 11 0.0000 4 150 960 9405 10395 xine_osd_show\001
-4 0 0 50 0 20 11 0.0000 4 165 1320 9405 11520 xine_osd_get_palette\001
-4 0 0 50 0 20 11 0.0000 4 165 1635 9405 11295 xine_osd_set_text_palette\001
-4 0 0 50 0 20 11 0.0000 4 150 930 9405 11070 xine_osd_clear\001
-4 0 0 50 0 20 11 0.0000 4 150 885 9405 10845 xine_osd_hide\001
-4 0 0 50 0 20 11 0.0000 4 150 1590 9405 10620 xine_osd_show_unscaled\001
-4 0 0 50 0 20 11 0.0000 4 165 1320 9405 11745 xine_osd_set_palette\001
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 7470 10395 8325 10395 8325 10125
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 7470 10125 11205 10125 11205 11925 7470 11925 7470 10125
-4 0 0 50 0 20 11 0.0000 4 150 870 8325 9765 xine_osd_free\001
-4 0 0 50 0 20 11 0.0000 4 150 675 7560 10305 xine_osd_t\001
-4 0 0 50 0 20 11 0.0000 4 150 885 6930 9765 xine_osd_new\001
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 765 1125 1350 1125 1350 855
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 765 855 14085 855 14085 8595 765 8595 765 855
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7
- 7290 3780 7470 3420 11340 3420 11520 3780 11340 4140 7470 4140
- 7290 3780
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7
- 7290 5355 7470 4995 8190 4995 8370 5355 8190 5715 7470 5715
- 7290 5355
-2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
- 2520 9000 1890 7470
-2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
- 1890 7965 2520 12510
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 2520 9270 3555 9270 3555 9000
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 2520 9000 11745 9000 11745 12510 2520 12510 2520 9000
-4 0 0 50 0 20 11 0.0000 4 150 375 855 1035 xine_t\001
-4 0 0 50 0 20 11 0.0000 4 150 555 1395 495 xine_exit\001
-4 0 0 50 0 20 11 0.0000 4 150 585 315 495 xine_new\001
-4 0 0 50 0 20 11 0.0000 4 150 1155 2790 495 xine_health_check\001
-4 0 0 50 0 20 11 0.0000 4 150 885 2610 9180 xine_stream_t\001
diff --git a/doc/hackersguide/library.svg b/doc/hackersguide/library.svg
new file mode 100644
index 000000000..b96101c45
--- /dev/null
+++ b/doc/hackersguide/library.svg
@@ -0,0 +1,1732 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5 -->
+<!-- CreationDate: Sat Jun 2 20:32:50 2007 -->
+<!-- Magnification: 1.050 -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ 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"
+ width="12.1in"
+ height="10.7in"
+ viewBox="314 346 14485 12800"
+ id="svg2178"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docname="library.svg"
+ sodipodi:docbase="/home/flame/devel/repos/xine/xine-lib-1.2-newdocbook/doc/hackersguide"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata2549">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2547" />
+ <sodipodi:namedview
+ inkscape:window-height="611"
+ inkscape:window-width="722"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="1"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="0.42263759"
+ inkscape:cx="544.5"
+ inkscape:cy="557.3407"
+ inkscape:window-x="552"
+ inkscape:window-y="330"
+ inkscape:current-layer="svg2178" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect2569"
+ width="14823.248"
+ height="13218.187"
+ x="125.1688"
+ y="152.64401" />
+ <g
+ style="stroke-width:.025in; stroke:black; fill:none"
+ id="g2180">
+<!-- Line --> <polyline
+ points="944,472 1133,472 1133,879 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2182" />
+<!-- Arrowhead on XXXpoint 1133 472 - 1133 913--> <polyline
+ points="1102 769 1133 895 1165 769 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2184" />
+<!-- Line --> <polyline
+ points="1228,897 1228,472 1399,472 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2186" />
+<!-- Arrowhead on XXXpoint 1228 472 - 1433 472--> <polyline
+ points="1289 503 1415 472 1289 440 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2188" />
+<!-- Line: box --> <rect
+ x="1984"
+ y="7842"
+ width="1511"
+ height="519"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2190" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2314"
+ y="8125"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2192">xine_stream_t</text>
+<!-- Line --> <polygon
+ points="3496,8078 3685,7700 4393,7700 4582,8078 4393,8456 3685,8456 3496,8078 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon2194" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3590"
+ y="8125"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2196">xine_post_wire</text>
+<!-- Line --> <polyline
+ points="5007,7086 5196,7086 5196,7493 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2198" />
+<!-- Arrowhead on XXXpoint 5196 7086 - 5196 7527--> <polyline
+ points="5165 7383 5196 7509 5228 7383 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2200" />
+<!-- Line --> <polyline
+ points="5291,7511 5291,7086 5462,7086 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2202" />
+<!-- Arrowhead on XXXpoint 5291 7086 - 5496 7086--> <polyline
+ points="5352 7118 5478 7086 5352 7055 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2204" />
+<!-- Line --> <polyline
+ points="4866,7795 5716,7795 5716,7511 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2206" />
+<!-- Line: box --> <rect
+ x="4866"
+ y="7511"
+ width="2551"
+ height="1133"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2208" />
+<!-- Line --> <polyline
+ points="4866,8645 4582,8645 4582,7511 4866,7511 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2210" />
+<!-- Line --> <polyline
+ points="7417,8645 7700,8645 7700,7511 7417,7511 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2212" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4110"
+ y="6897"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2214">xine_list_post_plugins_typed</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4110"
+ y="6661"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2216">xine_list_post_plugins</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5527"
+ y="7133"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2218">xine_post_dispose</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4913"
+ y="7700"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2220">xine_post_t</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4110"
+ y="7133"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2222">xine_post_init</text>
+<!-- Text --> <g
+ transform="translate(4771,8503) rotate(-90.00021046)"
+ id="g2224">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2226">xine_post_in_t</text>
+ </g>
+<!-- Text --> <g
+ transform="translate(7606,8551) rotate(-90.00021046)"
+ id="g2228">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2230">xine_post_out_t</text>
+ </g>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6377"
+ y="8267"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2232">xine_post_output</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4913"
+ y="8267"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2234">xine_post_list_outputs</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4913"
+ y="8031"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2236">xine_post_list_inputs</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6377"
+ y="8031"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2238">xine_post_input</text>
+<!-- Line --> <polygon
+ points="7700,8078 7889,7700 8598,7700 8787,8078 8598,8456 7889,8456 7700,8078 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon2240" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7795"
+ y="8125"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2242">xine_post_wire</text>
+<!-- Line: box --> <rect
+ x="8808"
+ y="7808"
+ width="1301"
+ height="506"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2244" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9139"
+ y="8092"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2246">xine_post_t</text>
+<!-- Line --> <polygon
+ points="10110,8078 10299,7700 11905,7700 12094,8078 11905,8456 10299,8456 10110,8078 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon2248" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10251"
+ y="8125"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2250">xine_post_wire_video_port</text>
+<!-- Line: box --> <rect
+ x="12115"
+ y="7808"
+ width="1301"
+ height="506"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2252" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12236"
+ y="8092"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2254">xine_video_port_t</text>
+<!-- Line --> <polygon
+ points="2740,7842 2362,7653 2362,6047 2740,5858 3118,6047 3118,7653 2740,7842 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon2256" />
+<!-- Text --> <g
+ transform="translate(2787,7700) rotate(-90.00021046)"
+ id="g2258">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2260">xine_stream_master_slave</text>
+ </g>
+<!-- Line --> <polyline
+ points="12236,2976 12425,2976 12425,3383 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2262" />
+<!-- Arrowhead on XXXpoint 12425 2976 - 12425 3417--> <polyline
+ points="12393 3273 12425 3399 12456 3273 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2264" />
+<!-- Line --> <polyline
+ points="12519,3401 12519,2976 12690,2976 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2266" />
+<!-- Arrowhead on XXXpoint 12519 2976 - 12724 2976--> <polyline
+ points="12580 3007 12706 2976 12580 2944 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2268" />
+<!-- Line --> <polyline
+ points="12094,3685 13322,3685 13322,3401 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2270" />
+<!-- Line: box --> <rect
+ x="12094"
+ y="3401"
+ width="2173"
+ height="803"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2272" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10724"
+ y="2834"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2274">xine_list_video_output_plugins</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12755"
+ y="3023"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2276">xine_close_video_driver</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10724"
+ y="3023"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2278">xine_open_video_driver</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12141"
+ y="3590"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2280">xine_video_port_t</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12236"
+ y="3968"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2282">xine_port_send_gui_data</text>
+<!-- Line --> <polygon
+ points="10110,5622 10299,5244 11905,5244 12094,5622 11905,6000 10299,6000 10110,5622 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon2284" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10251"
+ y="5669"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2286">xine_post_wire_audio_port</text>
+<!-- Line: box --> <rect
+ x="8808"
+ y="5352"
+ width="1301"
+ height="506"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2288" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9139"
+ y="5635"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2290">xine_post_t</text>
+<!-- Line --> <polyline
+ points="12236,4677 12425,4677 12425,5084 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2292" />
+<!-- Arrowhead on XXXpoint 12425 4677 - 12425 5118--> <polyline
+ points="12393 4974 12425 5100 12456 4974 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2294" />
+<!-- Line --> <polyline
+ points="12519,5102 12519,4677 12690,4677 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2296" />
+<!-- Arrowhead on XXXpoint 12519 4677 - 12724 4677--> <polyline
+ points="12580 4708 12706 4677 12580 4645 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2298" />
+<!-- Line --> <polyline
+ points="12094,5385 13322,5385 13322,5102 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2300" />
+<!-- Line: box --> <rect
+ x="12094"
+ y="5102"
+ width="2173"
+ height="803"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2302" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10724"
+ y="4535"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2304">xine_list_audio_output_plugins</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12755"
+ y="4724"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2306">xine_close_audio_driver</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10724"
+ y="4724"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2308">xine_open_audio_driver</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="12141"
+ y="5291"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2310">xine_audio_port_t</text>
+<!-- Line --> <polyline
+ points="2125,3307 2314,3307 2314,3714 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2312" />
+<!-- Arrowhead on XXXpoint 2314 3307 - 2314 3748--> <polyline
+ points="2283 3604 2314 3730 2346 3604 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2314" />
+<!-- Line --> <polyline
+ points="2409,3732 2409,3307 2580,3307 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2316" />
+<!-- Arrowhead on XXXpoint 2409 3307 - 2614 3307--> <polyline
+ points="2470 3338 2596 3307 2470 3275 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2318" />
+<!-- Text --> <g
+ transform="translate(7559,4771) rotate(-90.00021046)"
+ id="g2320">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2322">xine_post_out_t</text>
+ </g>
+<!-- Text --> <g
+ transform="translate(7559,5811) rotate(-90.00021046)"
+ id="g2324">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2326">xine_post_out_t</text>
+ </g>
+<!-- Line --> <polyline
+ points="7370,4818 7653,4818 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2328" />
+<!-- Line --> <polyline
+ points="7370,5858 7653,5858 7653,3732 7370,3732 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2330" />
+<!-- Line --> <polyline
+ points="1984,4015 2976,4015 2976,3732 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2332" />
+<!-- Line: box --> <rect
+ x="1984"
+ y="3732"
+ width="5385"
+ height="2125"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2334" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3165"
+ y="4771"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2336">xine_get_error</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3165"
+ y="5007"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2338">xine_get_status</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3165"
+ y="5244"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2340">xine_get_pos_length</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3165"
+ y="5480"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2342">xine_get_audio_lang</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3165"
+ y="5716"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2344">xine_get_spu_lang</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2220"
+ y="4299"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2346">xine_open</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2220"
+ y="4535"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2348">xine_play</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2220"
+ y="4771"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2350">xine_stop</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2220"
+ y="5007"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2352">xine_close</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2220"
+ y="5244"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2354">xine_eject</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3165"
+ y="4299"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2356">xine_set_param</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3165"
+ y="4535"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2358">xine_get_param</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2645"
+ y="3354"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2360">xine_stream_dispose</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2031"
+ y="3921"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2362">xine_stream_t</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="992"
+ y="3354"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2364">xine_stream_new</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5811"
+ y="4299"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2366">xine_get_current_frame</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5811"
+ y="4535"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2368">xine_get_current_vpts</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5811"
+ y="4771"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2370">xine_trick_mode</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5811"
+ y="5244"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2372">xine_get_audio_source</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5811"
+ y="5480"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2374">xine_get_video_source</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4393"
+ y="4299"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2376">xine_get_stream_info</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4393"
+ y="4535"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2378">xine_get_meta_info</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="992"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2380">xine_init</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="992"
+ y="1700"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2382">xine_engine_set_param</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="992"
+ y="1937"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2384">xine_engine_get_param</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6141"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2386">xine_get_browse_mrls</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6141"
+ y="1700"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2388">xine_get_autoplay_input_plugin_ids</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6141"
+ y="1937"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2390">xine_get_autoplay_mrls</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6141"
+ y="2173"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2392">xine_get_file_extensions</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6141"
+ y="2409"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2394">xine_get_mime_types</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6141"
+ y="2645"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2396">xine_get_demux_for_mime_type</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6141"
+ y="2881"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2398">xine_get_input_plugin_description</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4157"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2400">xine_config_register_*</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4157"
+ y="1700"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2402">xine_config_get_first_entry</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4157"
+ y="1937"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2404">xine_config_get_next_entry</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4157"
+ y="2173"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2406">xine_config_lookup_entry</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4157"
+ y="2409"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2408">xine_config_update_entry</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2787"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2410">xine_config_load</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2787"
+ y="1700"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2412">xine_config_save</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2787"
+ y="1937"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2414">xine_config_reset</text>
+<!-- Line --> <polyline
+ points="4204,10204 4393,10204 4393,10612 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2416" />
+<!-- Arrowhead on XXXpoint 4393 10204 - 4393 10645--> <polyline
+ points="4362 10501 4393 10627 4425 10501 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2418" />
+<!-- Line --> <polyline
+ points="4488,10629 4488,10204 4659,10204 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2420" />
+<!-- Arrowhead on XXXpoint 4488 10204 - 4692 10204--> <polyline
+ points="4549 10236 4675 10204 4549 10173 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2422" />
+<!-- Line --> <polyline
+ points="4960,11149 5149,11149 5149,11556 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2424" />
+<!-- Arrowhead on XXXpoint 5149 11149 - 5149 11590--> <polyline
+ points="5118 11446 5149 11572 5181 11446 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2426" />
+<!-- Line --> <polyline
+ points="5244,11574 5244,11149 5415,11149 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2428" />
+<!-- Arrowhead on XXXpoint 5244 11149 - 5448 11149--> <polyline
+ points="5304 11181 5430 11149 5304 11118 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2430" />
+<!-- Line: box --> <rect
+ x="4677"
+ y="11574"
+ width="1039"
+ height="283"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2432" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4818"
+ y="11763"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2434">xine_event_t</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5527"
+ y="11196"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2436">xine_event_free</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="11149"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2438">xine_event_get</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="11291"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2440">xine_event_wait</text>
+<!-- Line --> <polyline
+ points="3874,10913 5338,10913 5338,10629 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2442" />
+<!-- Line: box --> <rect
+ x="3874"
+ y="10629"
+ width="2787"
+ height="1653"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2444" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2787"
+ y="10251"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2446">xine_event_new_queue</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4771"
+ y="10251"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2448">xine_event_dispose_queue</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3968"
+ y="10818"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2450">xine_event_queue_t</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="12141"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2452">xine_event_create_listener_thread</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2787"
+ y="12708"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2454">xine_event_send</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8834"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="bold"
+ font-size="139"
+ text-anchor="start"
+ id="text2456">xine_list_input_plugins</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8834"
+ y="1700"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="bold"
+ font-size="139"
+ text-anchor="start"
+ id="text2458">xine_list_demuxer_plugins</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8834"
+ y="1937"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="bold"
+ font-size="139"
+ text-anchor="start"
+ id="text2460">xine_list_video_decoder_plugins</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8834"
+ y="2173"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="bold"
+ font-size="139"
+ text-anchor="start"
+ id="text2462">xine_list_audio_decoder_plugins</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8834"
+ y="2409"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="bold"
+ font-size="139"
+ text-anchor="start"
+ id="text2464">xine_list_spu_plugins</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11669"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2466">xine_get_log_section_count</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11669"
+ y="1700"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2468">xine_get_log_names</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11669"
+ y="1937"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2470">xine_log</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11669"
+ y="2173"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2472">xine_get_log</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="11669"
+ y="2409"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2474">xine_register_log_cb</text>
+<!-- Line --> <polyline
+ points="8173,10204 8362,10204 8362,10612 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2476" />
+<!-- Arrowhead on XXXpoint 8362 10204 - 8362 10645--> <polyline
+ points="8330 10501 8362 10627 8393 10501 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2478" />
+<!-- Line --> <polyline
+ points="8456,10629 8456,10204 8627,10204 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2480" />
+<!-- Arrowhead on XXXpoint 8456 10204 - 8661 10204--> <polyline
+ points="8517 10236 8643 10204 8517 10173 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline2482" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="11149"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2484">xine_osd_draw_*</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="12094"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2486">xine_osd_set_encoding</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="11858"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2488">xine_osd_set_font</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="11622"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2490">xine_osd_get_text_size</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="12330"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2492">xine_osd_set_position</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7984"
+ y="11385"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2494">xine_osd_get_capabilities</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9874"
+ y="10913"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2496">xine_osd_show</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9874"
+ y="12094"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2498">xine_osd_get_palette</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9874"
+ y="11858"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2500">xine_osd_set_text_palette</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9874"
+ y="11622"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2502">xine_osd_clear</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9874"
+ y="11385"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2504">xine_osd_hide</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9874"
+ y="11149"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2506">xine_osd_show_unscaled</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9874"
+ y="12330"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2508">xine_osd_set_palette</text>
+<!-- Line --> <polyline
+ points="7842,10913 8740,10913 8740,10629 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2510" />
+<!-- Line: box --> <rect
+ x="7842"
+ y="10629"
+ width="3921"
+ height="1889"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2512" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8740"
+ y="10251"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2514">xine_osd_free</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7937"
+ y="10818"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2516">xine_osd_t</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7275"
+ y="10251"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2518">xine_osd_new</text>
+<!-- Line --> <polyline
+ points="803,1181 1417,1181 1417,897 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2520" />
+<!-- Line: box --> <rect
+ x="803"
+ y="897"
+ width="13984"
+ height="8125"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2522" />
+<!-- Line --> <polygon
+ points="7653,3968 7842,3590 11905,3590 12094,3968 11905,4346 7842,4346 7653,3968 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon2524" />
+<!-- Line --> <polygon
+ points="7653,5622 7842,5244 8598,5244 8787,5622 8598,6000 7842,6000 7653,5622 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon2526" />
+<!-- Line --> <polyline
+ points="2645,9448 1984,7842 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:10 31;"
+ id="polyline2528" />
+<!-- Line --> <polyline
+ points="1984,8362 2645,13133 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:10 31;"
+ id="polyline2530" />
+<!-- Line --> <polyline
+ points="2645,9732 3732,9732 3732,9448 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline2532" />
+<!-- Line: box --> <rect
+ x="2645"
+ y="9448"
+ width="9685"
+ height="3685"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect2534" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="897"
+ y="1086"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2536">xine_t</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1464"
+ y="519"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2538">xine_exit</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="330"
+ y="519"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2540">xine_new</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2929"
+ y="519"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2542">xine_health_check</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2740"
+ y="9637"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text2544">xine_stream_t</text>
+ </g>
+</svg>
diff --git a/doc/hackersguide/output.sgml b/doc/hackersguide/output.docbook
index 64adbd294..dc254641d 100644
--- a/doc/hackersguide/output.sgml
+++ b/doc/hackersguide/output.docbook
@@ -295,10 +295,10 @@
</para>
<mediaobject>
<imageobject>
- <imagedata fileref="post_frame.png" format="PNG">
+ <imagedata fileref="post_frame.png" format="PNG" />
</imageobject>
<imageobject>
- <imagedata fileref="post_frame.eps" format="EPS">
+ <imagedata fileref="post_frame.eps" format="EPS" />
</imageobject>
<caption>
<para>video frame passing through a post plugin</para>
diff --git a/doc/hackersguide/overlays.fig b/doc/hackersguide/overlays.fig
deleted file mode 100644
index 78ecda61c..000000000
--- a/doc/hackersguide/overlays.fig
+++ /dev/null
@@ -1,64 +0,0 @@
-#FIG 3.2
-Portrait
-Center
-Metric
-A4
-100.00
-Single
--2
-1200 2
-0 32 #ffffff
-6 3600 2340 5670 3555
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 3600 2340 5670 2340 5670 3555 3600 3555 3600 2340
-4 0 0 50 0 20 14 0.0000 4 165 1050 4140 3015 OSD renderer\001
--6
-6 495 3825 2700 4365
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 495 3825 2700 3825 2700 4365 495 4365 495 3825
-4 0 0 50 0 20 14 0.0000 4 195 1320 900 4185 public libxine API\001
--6
-6 495 2880 2700 3420
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 495 2880 2700 2880 2700 3420 495 3420 495 2880
-4 0 0 50 0 20 14 0.0000 4 195 1830 675 3240 libsputext (text subtitles)\001
--6
-6 495 2160 2700 2700
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 495 2160 2700 2160 2700 2700 495 2700 495 2160
-4 0 0 50 0 20 14 0.0000 4 195 1965 585 2520 libspucc (closed captions)\001
--6
-6 6435 1575 8865 2790
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 6435 1575 8865 1575 8865 2790 6435 2790 6435 1575
-4 0 0 50 0 20 14 0.0000 4 210 1260 6975 2250 overlay manager\001
--6
-6 6435 3780 8865 4995
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 6435 3780 8865 3780 8865 4995 6435 4995 6435 3780
-4 0 0 50 0 20 14 0.0000 4 165 675 7290 4455 video out\001
--6
-6 495 1440 2700 1980
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 495 1440 2700 1440 2700 1980 495 1980 495 1440
-4 0 0 50 0 20 14 0.0000 4 195 1920 585 1800 libspudec (DVD subtitles)\001
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
- 0 0 1.00 60.00 120.00
- 2700 4095 3105 4095 3105 3375 3600 3375
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 2700 1710 6435 1710
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 2700 3150 3600 3150
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2
- 0 0 1.00 60.00 120.00
- 0 0 1.00 60.00 120.00
- 7650 2790 7650 3780
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 5670 2565 6435 2565
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 2700 2430 3600 2430
diff --git a/doc/hackersguide/overlays.svg b/doc/hackersguide/overlays.svg
new file mode 100644
index 000000000..5880b5de1
--- /dev/null
+++ b/doc/hackersguide/overlays.svg
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5 -->
+<!-- CreationDate: Sat Jun 2 20:47:40 2007 -->
+<!-- Magnification: 1.050 -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ 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"
+ width="7.3in"
+ height="3.1in"
+ viewBox="507 1499 8812 3757"
+ id="svg4078"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docname="overlays.svg"
+ sodipodi:docbase="/home/flame/devel/repos/xine/xine-lib-1.2-newdocbook/doc/hackersguide"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata4139">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs4137" />
+ <sodipodi:namedview
+ inkscape:window-height="611"
+ inkscape:window-width="722"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="0.96194825"
+ inkscape:cx="328.5"
+ inkscape:cy="139.5"
+ inkscape:window-x="164"
+ inkscape:window-y="25"
+ inkscape:current-layer="svg4078" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1"
+ id="rect4141"
+ width="9029.1113"
+ height="3933.6128"
+ x="419.44238"
+ y="1434.3762" />
+ <g
+ style="stroke-width:.025in; stroke:black; fill:none"
+ id="g4080">
+<!-- Line: box --> <rect
+ x="3779"
+ y="2456"
+ width="2173"
+ height="1275"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4082" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4346"
+ y="3165"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="177"
+ text-anchor="start"
+ id="text4084">OSD renderer</text>
+<!-- Line: box --> <rect
+ x="519"
+ y="4015"
+ width="2314"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4086" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="944"
+ y="4393"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="177"
+ text-anchor="start"
+ id="text4088">public libxine API</text>
+<!-- Line: box --> <rect
+ x="519"
+ y="3023"
+ width="2314"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4090" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="708"
+ y="3401"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="177"
+ text-anchor="start"
+ id="text4092">libsputext (text subtitles)</text>
+<!-- Line: box --> <rect
+ x="519"
+ y="2267"
+ width="2314"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4094" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="614"
+ y="2645"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="177"
+ text-anchor="start"
+ id="text4096">libspucc (closed captions)</text>
+<!-- Line: box --> <rect
+ x="6755"
+ y="1653"
+ width="2551"
+ height="1275"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4098" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7322"
+ y="2362"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="177"
+ text-anchor="start"
+ id="text4100">overlay manager</text>
+<!-- Line: box --> <rect
+ x="6755"
+ y="3968"
+ width="2551"
+ height="1275"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4102" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7653"
+ y="4677"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="177"
+ text-anchor="start"
+ id="text4104">video out</text>
+<!-- Line: box --> <rect
+ x="519"
+ y="1511"
+ width="2314"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4106" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="614"
+ y="1889"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="177"
+ text-anchor="start"
+ id="text4108">libspudec (DVD subtitles)</text>
+<!-- Line --> <polyline
+ points="2834,4299 3259,4299 3259,3543 3761,3543 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4110" />
+<!-- Arrowhead on XXXpoint 3259 3543 - 3795 3543--> <polyline
+ points="3651 3574 3777 3543 3651 3511 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4112" />
+<!-- Line --> <polyline
+ points="2834,1795 6738,1795 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4114" />
+<!-- Arrowhead on XXXpoint 2834 1795 - 6771 1795--> <polyline
+ points="6627 1826 6753 1795 6627 1763 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4116" />
+<!-- Line --> <polyline
+ points="2834,3307 3761,3307 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4118" />
+<!-- Arrowhead on XXXpoint 2834 3307 - 3795 3307--> <polyline
+ points="3651 3338 3777 3307 3651 3275 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4120" />
+<!-- Line --> <polyline
+ points="8031,2946 8031,3950 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4122" />
+<!-- Arrowhead on XXXpoint 8031 2929 - 8031 3984--> <polyline
+ points="8000 3840 8031 3966 8062 3840 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4124" />
+<!-- Arrowhead on XXXpoint 8031 3968 - 8031 2913--> <polyline
+ points="8062 3057 8031 2931 8000 3057 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4126" />
+<!-- Line --> <polyline
+ points="5952,2692 6738,2692 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4128" />
+<!-- Arrowhead on XXXpoint 5952 2692 - 6771 2692--> <polyline
+ points="6627 2724 6753 2692 6627 2661 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4130" />
+<!-- Line --> <polyline
+ points="2834,2551 3761,2551 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4132" />
+<!-- Arrowhead on XXXpoint 2834 2551 - 3795 2551--> <polyline
+ points="3651 2582 3777 2551 3651 2519 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4134" />
+ </g>
+</svg>
diff --git a/doc/hackersguide/overview.sgml b/doc/hackersguide/overview.docbook
index bf036edbc..bf036edbc 100644
--- a/doc/hackersguide/overview.sgml
+++ b/doc/hackersguide/overview.docbook
diff --git a/doc/hackersguide/post_frame.fig b/doc/hackersguide/post_frame.fig
deleted file mode 100644
index efafa31d5..000000000
--- a/doc/hackersguide/post_frame.fig
+++ /dev/null
@@ -1,347 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Metric
-A4
-100.00
-Single
--2
-1200 2
-6 2970 585 9360 9945
-2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 3
- 3015 900 3915 900 3915 630
-2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 3015 630 9315 630 9315 9900 3015 9900 3015 630
-4 0 0 50 0 20 11 0.0000 4 165 675 3105 810 post plugin\001
--6
-6 5040 1125 7200 1530
-2 2 0 1 0 4 40 0 20 0.000 0 0 -1 0 0 5
- 5040 1125 7200 1125 7200 1530 5040 1530 5040 1125
-4 0 0 30 0 20 11 0.0000 4 165 1545 5220 1395 _x_post_intercept_frame\001
--6
-6 3645 990 4635 1620
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3735 1080 4635 1080 4635 1620 3735 1620 3735 1080
-2 2 0 1 0 4 30 0 20 0.000 0 0 -1 0 0 5
- 3645 990 4545 990 4545 1530 3645 1530 3645 990
--6
-6 5040 2160 7200 2565
-2 2 0 1 0 7 40 0 20 0.000 0 0 -1 0 0 5
- 5040 2160 7200 2160 7200 2565 5040 2565 5040 2160
-4 0 0 30 0 20 11 0.0000 4 165 1710 5220 2430 _x_post_frame_copy_down\001
--6
-6 5040 3060 7200 3465
-2 2 0 1 0 7 40 0 20 0.000 0 0 -1 0 0 5
- 5040 3060 7200 3060 7200 3465 5040 3465 5040 3060
-4 0 0 30 0 20 11 0.0000 4 165 1530 5220 3330 _x_post_frame_copy_up\001
--6
-6 3645 2025 4635 2655
-2 2 0 1 0 4 30 0 20 0.000 0 0 -1 0 0 5
- 3645 2025 4545 2025 4545 2565 3645 2565 3645 2025
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3735 2115 4635 2115 4635 2655 3735 2655 3735 2115
-4 0 0 20 0 18 25 0.0000 4 270 225 3825 2430 d\001
--6
-6 7830 2025 8820 2655
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 7920 2115 8820 2115 8820 2655 7920 2655 7920 2115
-2 2 0 1 0 4 30 0 -1 0.000 0 0 -1 0 0 5
- 7830 2025 8730 2025 8730 2565 7830 2565 7830 2025
-4 0 0 20 0 18 25 0.0000 4 270 225 8100 2520 d\001
--6
-6 7830 2925 8820 3555
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 7920 3015 8820 3015 8820 3555 7920 3555 7920 3015
-2 2 0 1 0 4 30 0 -1 0.000 0 0 -1 0 0 5
- 7830 2925 8730 2925 8730 3465 7830 3465 7830 2925
-4 0 0 20 0 18 25 0.0000 4 285 555 8100 3420 d u\001
--6
-6 3645 2925 4635 3555
-2 2 0 1 0 4 30 0 20 0.000 0 0 -1 0 0 5
- 3645 2925 4545 2925 4545 3465 3645 3465 3645 2925
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3735 3015 4635 3015 4635 3555 3735 3555 3735 3015
-4 0 0 20 0 18 25 0.0000 4 285 555 3825 3330 d u\001
--6
-6 7875 4725 8775 5265
-2 2 0 1 0 3 40 0 15 0.000 0 0 -1 0 0 5
- 7875 4725 8775 4725 8775 5265 7875 5265 7875 4725
-4 0 0 20 0 18 25 0.0000 4 270 225 8055 5130 d\001
--6
-6 3645 4005 4635 4635
-2 2 0 1 0 4 30 0 20 0.000 0 0 -1 0 0 5
- 3645 4005 4545 4005 4545 4545 3645 4545 3645 4005
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3735 4095 4635 4095 4635 4635 3735 4635 3735 4095
-4 0 0 20 0 18 25 0.0000 4 270 225 3825 4410 d\001
--6
-6 7875 6300 8775 6840
-2 2 0 1 0 3 40 0 15 0.000 0 0 -1 0 0 5
- 7875 6300 8775 6300 8775 6840 7875 6840 7875 6300
-4 0 0 20 0 18 25 0.0000 4 285 555 8055 6705 d u\001
--6
-6 7875 5625 8775 6165
-2 2 0 1 0 3 40 0 15 0.000 0 0 -1 0 0 5
- 7875 5625 8775 5625 8775 6165 7875 6165 7875 5625
-4 0 0 20 0 18 25 0.0000 4 285 555 8055 6030 d u\001
--6
-6 3645 7245 4635 7875
-2 2 0 1 0 4 30 0 20 0.000 0 0 -1 0 0 5
- 3645 7245 4545 7245 4545 7785 3645 7785 3645 7245
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3735 7335 4635 7335 4635 7875 3735 7875 3735 7335
-4 0 0 20 0 18 25 0.0000 4 270 225 3825 7650 d\001
--6
-6 3645 8145 4635 8775
-2 2 0 1 0 4 30 0 20 0.000 0 0 -1 0 0 5
- 3645 8145 4545 8145 4545 8685 3645 8685 3645 8145
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3735 8235 4635 8235 4635 8775 3735 8775 3735 8235
-4 0 0 20 0 18 25 0.0000 4 285 555 3825 8550 d u\001
--6
-6 5040 7830 7200 8235
-2 2 0 1 0 7 40 0 20 0.000 0 0 -1 0 0 5
- 5040 7830 7200 7830 7200 8235 5040 8235 5040 7830
-4 0 0 30 0 20 11 0.0000 4 165 1395 5220 8100 _x_post_frame_u_turn\001
--6
-6 990 1125 2340 1530
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 990 1125 2340 1125 2340 1530 990 1530 990 1125
-4 0 0 50 0 20 11 0.0000 4 165 630 1170 1395 get_frame\001
--6
-6 990 2025 2340 3510
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 990 2025 2340 2025 2340 3510 990 3510 990 2025
-4 0 0 50 0 20 11 0.0000 4 120 255 1170 2475 field\001
-4 0 0 50 0 20 11 0.0000 4 120 255 1170 2700 lock\001
-4 0 0 50 0 20 11 0.0000 4 165 705 1170 2925 proc_frame\001
-4 0 0 50 0 20 11 0.0000 4 165 630 1170 3150 proc_slice\001
-4 0 0 50 0 20 11 0.0000 4 165 1065 1170 3375 proc_macroblock\001
-4 0 0 50 0 20 11 0.0000 4 120 300 1170 2250 draw\001
--6
-6 990 4095 2340 6795
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 990 4095 2340 4095 2340 6795 990 6795 990 4095
-4 0 0 50 0 20 11 0.0000 4 120 255 1170 4555 field\001
-4 0 0 50 0 20 11 0.0000 4 120 255 1170 4761 lock\001
-4 0 0 50 0 20 11 0.0000 4 165 705 1170 4969 proc_frame\001
-4 0 0 50 0 20 11 0.0000 4 165 630 1170 5175 proc_slice\001
-4 0 0 50 0 20 11 0.0000 4 165 1065 1170 5383 proc_macroblock\001
-4 0 0 50 0 20 11 0.0000 4 120 300 1170 4347 draw\001
--6
-6 990 7335 2340 8640
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 990 7335 2340 7335 2340 8640 990 8640 990 7335
-4 0 0 50 0 20 11 0.0000 4 120 300 1170 7605 draw\001
--6
-6 9990 1125 11340 1530
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 9990 1125 11340 1125 11340 1530 9990 1530 9990 1125
-4 0 0 50 0 20 11 0.0000 4 165 630 10170 1395 get_frame\001
--6
-6 9990 2025 11340 3510
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 9990 2025 11340 2025 11340 3510 9990 3510 9990 2025
-4 0 0 50 0 20 11 0.0000 4 120 255 10170 2475 field\001
-4 0 0 50 0 20 11 0.0000 4 120 255 10170 2700 lock\001
-4 0 0 50 0 20 11 0.0000 4 165 705 10170 2925 proc_frame\001
-4 0 0 50 0 20 11 0.0000 4 165 630 10170 3150 proc_slice\001
-4 0 0 50 0 20 11 0.0000 4 165 1065 10170 3375 proc_macroblock\001
-4 0 0 50 0 20 11 0.0000 4 120 300 10170 2250 draw\001
--6
-6 9990 4140 11340 4545
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 9990 4140 11340 4140 11340 4545 9990 4545 9990 4140
-4 0 0 50 0 20 11 0.0000 4 165 630 10170 4410 get_frame\001
--6
-6 9990 4725 11340 6210
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 9990 4725 11340 4725 11340 6210 9990 6210 9990 4725
-4 0 0 50 0 20 11 0.0000 4 120 255 10170 5175 field\001
-4 0 0 50 0 20 11 0.0000 4 120 255 10170 5400 lock\001
-4 0 0 50 0 20 11 0.0000 4 165 705 10170 5625 proc_frame\001
-4 0 0 50 0 20 11 0.0000 4 165 630 10170 5850 proc_slice\001
-4 0 0 50 0 20 11 0.0000 4 165 1065 10170 6075 proc_macroblock\001
-4 0 0 50 0 20 11 0.0000 4 120 300 10170 4950 draw\001
--6
-6 9990 6390 11340 6795
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 9990 6390 11340 6390 11340 6795 9990 6795 9990 6390
-4 0 0 50 0 20 11 0.0000 4 120 240 10170 6660 free\001
--6
-6 180 585 765 1755
-2 2 0 2 0 7 20 0 -1 6.000 0 0 -1 0 0 5
- 225 630 720 630 720 1710 225 1710 225 630
-4 0 0 20 0 20 15 1.5708 4 210 960 540 1665 interception\001
--6
-6 180 1890 765 3735
-2 2 0 2 0 7 20 0 -1 6.000 0 0 -1 0 0 5
- 225 1935 720 1935 720 3690 225 3690 225 1935
-4 0 0 20 0 20 15 1.5708 4 225 1065 540 3375 pass through\001
--6
-6 180 3870 765 7020
-2 2 0 2 0 7 20 0 -1 6.000 0 0 -1 0 0 5
- 225 3915 720 3915 720 6975 225 6975 225 3915
-4 0 0 20 0 20 15 1.5708 4 225 1380 540 6165 modifying a copy\001
--6
-6 180 7155 765 8910
-2 2 0 2 0 7 20 0 -1 6.000 0 0 -1 0 0 5
- 225 7200 720 7200 720 8865 225 8865 225 7200
-4 0 0 20 0 20 15 1.5708 4 180 1245 540 8685 dead-end draw\001
--6
-6 180 9045 765 9945
-2 2 0 2 0 7 20 0 -1 6.000 0 0 -1 0 0 5
- 225 9090 720 9090 720 9900 225 9900 225 9090
-4 0 0 20 0 20 15 1.5708 4 225 570 540 9810 freeing\001
--6
-6 5040 4455 7200 4860
-2 2 0 1 0 7 40 0 20 0.000 0 0 -1 0 0 5
- 5040 4455 7200 4455 7200 4860 5040 4860 5040 4455
-4 0 0 30 0 20 11 0.0000 4 165 1710 5220 4725 _x_post_frame_copy_down\001
--6
-6 5040 6030 7200 6435
-2 2 0 1 0 7 40 0 20 0.000 0 0 -1 0 0 5
- 5040 6030 7200 6030 7200 6435 5040 6435 5040 6030
-4 0 0 30 0 20 11 0.0000 4 165 1530 5220 6300 _x_post_frame_copy_up\001
--6
-6 3645 6255 4635 6885
-2 2 0 1 0 4 30 0 20 0.000 0 0 -1 0 0 5
- 3645 6255 4545 6255 4545 6795 3645 6795 3645 6255
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3735 6345 4635 6345 4635 6885 3735 6885 3735 6345
-4 0 0 20 0 18 25 0.0000 4 285 555 3825 6660 d u\001
--6
-6 5040 9270 7200 9675
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 5040 9270 7200 9270 7200 9675 5040 9675 5040 9270
-4 0 0 30 0 20 11 0.0000 4 165 1845 5220 9540 _x_post_restore_video_frame\001
--6
-6 990 9270 2340 9675
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 990 9270 2340 9270 2340 9675 990 9675 990 9270
-4 0 0 50 0 20 11 0.0000 4 165 855 1170 9540 free / dispose\001
--6
-6 9990 9270 11340 9675
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 9990 9270 11340 9270 11340 9675 9990 9675 9990 9270
-4 0 0 50 0 20 11 0.0000 4 165 855 10170 9540 free / dispose\001
--6
-6 6660 4995 7515 5580
-2 3 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 4
- 7065 4995 6840 5220 7290 5220 7065 4995
-4 0 0 50 0 20 11 0.0000 4 150 825 6660 5400 modify frame\001
-4 0 0 50 0 20 11 0.0000 4 120 465 6840 5580 content\001
--6
-6 405 10170 2970 11250
-6 990 10170 1980 10800
-2 2 0 1 0 7 40 0 20 0.000 0 0 -1 0 0 5
- 1080 10260 1980 10260 1980 10800 1080 10800 1080 10260
-2 2 0 1 0 7 30 0 20 0.000 0 0 -1 0 0 5
- 990 10170 1890 10170 1890 10710 990 10710 990 10170
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 1 1 1.00 120.00 180.00
- 630 11025 630 10440 990 10440
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 1 1 1.00 120.00 180.00
- 2340 11025 2340 10530 1980 10530
-4 0 0 20 0 20 15 0.0000 4 165 465 405 11250 frame\001
-4 0 0 20 0 20 15 0.0000 4 165 975 1980 11250 frame->next\001
--6
-6 3375 10080 6300 11250
-2 2 0 1 0 4 40 0 20 0.000 0 0 -1 0 0 5
- 3375 10710 4275 10710 4275 11250 3375 11250 3375 10710
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3375 10080 4275 10080 4275 10620 3375 10620 3375 10080
-4 0 0 50 0 20 15 0.0000 4 225 1890 4410 10440 frame from original port\001
-4 0 0 50 0 20 15 0.0000 4 210 1425 4410 11070 intercepted frame\001
--6
-6 6660 10035 11250 11295
-6 8505 10035 9405 10575
-2 2 0 1 0 3 40 0 -1 0.000 0 0 -1 0 0 5
- 8505 10035 9405 10035 9405 10575 8505 10575 8505 10035
-4 0 0 20 0 18 25 0.0000 4 285 555 8685 10440 d u\001
--6
-6 6660 10170 8055 11295
-4 2 0 50 0 20 15 0.0000 4 165 1005 8055 10350 downstream\001
-4 2 0 50 0 20 15 0.0000 4 165 1380 8055 10650 meta-information\001
-4 2 0 50 0 20 15 0.0000 4 180 1080 8055 10950 from decoder\001
-4 2 0 50 0 20 15 0.0000 4 210 705 8055 11250 to output\001
--6
-6 9855 10170 11250 11295
-4 0 0 50 0 20 15 0.0000 4 210 765 9855 10350 upstream\001
-4 0 0 50 0 20 15 0.0000 4 165 1380 9855 10650 meta-information\001
-4 0 0 50 0 20 15 0.0000 4 210 915 9855 10950 from output\001
-4 0 0 50 0 20 15 0.0000 4 180 870 9855 11250 to decoder\001
--6
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 1 1 1.00 120.00 180.00
- 8100 10800 8775 10800 8775 10485
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
- 1 1 1.00 120.00 180.00
- 9810 10800 9135 10800 9135 10485
--6
-6 3645 9135 4635 9765
-2 2 0 1 0 4 30 0 20 0.000 0 0 -1 0 0 5
- 3645 9135 4545 9135 4545 9675 3645 9675 3645 9135
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 3735 9225 4635 9225 4635 9765 3735 9765 3735 9225
-4 0 0 20 0 18 25 0.0000 4 270 225 3825 9540 d\001
--6
-6 7875 9180 8775 9720
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 7875 9180 8775 9180 8775 9720 7875 9720 7875 9180
-4 0 0 20 0 18 25 0.0000 4 270 225 8055 9585 d\001
--6
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 120.00 180.00
- 9990 1305 7200 1305
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 120.00 180.00
- 5040 1305 2340 1305
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 7875 1035 8775 1035 8775 1575 7875 1575 7875 1035
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 120.00 180.00
- 2340 2340 9990 2340
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 120.00 180.00
- 9990 3240 2340 3240
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4
- 0 0 1.00 120.00 180.00
- 2340 4320 5625 4320 5625 6570 2340 6570
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4
- 0 0 1.00 120.00 180.00
- 9990 5895 6570 5895 6570 6570 9990 6570
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4
- 0 0 1.00 120.00 180.00
- 9990 4320 6570 4320 6570 4995 9990 4995
-2 2 0 1 0 3 40 0 20 0.000 0 0 -1 0 0 5
- 7875 4050 8775 4050 8775 4590 7875 4590 7875 4050
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4
- 0 0 1.00 120.00 180.00
- 2340 7560 5625 7560 5625 8460 2340 8460
-2 1 1 1 0 7 50 0 -1 10.000 0 0 -1 0 0 2
- 0 1800 11610 1800
-2 1 1 1 0 7 50 0 -1 10.000 0 0 -1 0 0 2
- 0 3780 11610 3780
-2 1 1 1 0 7 50 0 -1 10.000 0 0 -1 0 0 2
- 0 7065 11610 7065
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 120.00 180.00
- 2340 9450 5040 9450
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
- 0 0 1.00 120.00 180.00
- 7200 9450 9990 9450
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 6
- 6075 90 6075 540 3195 540 3015 315 3195 90 6075 90
-2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 6
- 6165 90 6165 540 9135 540 9315 315 9135 90 6165 90
-2 1 1 1 0 7 50 0 -1 10.000 0 0 -1 0 0 2
- 0 8955 11610 8955
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
- 3195 9990 3195 11385
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
- 6480 9990 6480 11385
-4 0 0 20 0 20 20 0.0000 4 210 270 5715 405 up\001
-4 0 0 20 0 20 20 0.0000 4 210 585 6300 405 down\001
diff --git a/doc/hackersguide/post_frame.svg b/doc/hackersguide/post_frame.svg
new file mode 100644
index 000000000..75dcd77a4
--- /dev/null
+++ b/doc/hackersguide/post_frame.svg
@@ -0,0 +1,1564 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5 -->
+<!-- CreationDate: Sat Jun 2 20:48:15 2007 -->
+<!-- Magnification: 1.050 -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ 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"
+ width="10.2in"
+ height="9.9in"
+ viewBox="-12 81 12214 11883"
+ id="svg4143"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docname="post_frame.svg"
+ sodipodi:docbase="/home/flame/devel/repos/xine/xine-lib-1.2-newdocbook/doc/hackersguide"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata4494">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs4492" />
+ <sodipodi:namedview
+ inkscape:window-height="611"
+ inkscape:window-width="722"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="0.45679015"
+ inkscape:cx="459"
+ inkscape:cy="445.49997"
+ inkscape:window-x="552"
+ inkscape:window-y="25"
+ inkscape:current-layer="svg4143" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1"
+ id="rect4496"
+ width="12700.504"
+ height="12145.769"
+ x="-201.72523"
+ y="-6.5896807" />
+ <g
+ style="stroke-width:.025in; stroke:black; fill:none"
+ id="g4145">
+<!-- Line --> <polyline
+ points="3165,944 4110,944 4110,661 "
+ style="stroke:#000000;stroke-width:16; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4147" />
+<!-- Line: box --> <rect
+ x="3165"
+ y="661"
+ width="6614"
+ height="9732"
+ rx="0"
+ style="stroke:#000000;stroke-width:16; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4149" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="3259"
+ y="850"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4151">post plugin</text>
+<!-- Line: box --> <rect
+ x="1039"
+ y="1181"
+ width="1417"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4153" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4155">get_frame</text>
+<!-- Line: box --> <rect
+ x="1039"
+ y="2125"
+ width="1417"
+ height="1559"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4157" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="2598"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4159">field</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="2834"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4161">lock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="3070"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4163">proc_frame</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="3307"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4165">proc_slice</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="3543"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4167">proc_macroblock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="2362"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4169">draw</text>
+<!-- Line: box --> <rect
+ x="1039"
+ y="4299"
+ width="1417"
+ height="2834"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4171" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="4782"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4173">field</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="4998"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4175">lock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="5216"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4177">proc_frame</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="5433"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4179">proc_slice</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="5651"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4181">proc_macroblock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="4563"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4183">draw</text>
+<!-- Line: box --> <rect
+ x="1039"
+ y="7700"
+ width="1417"
+ height="1370"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4185" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="7984"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4187">draw</text>
+<!-- Line: box --> <rect
+ x="10488"
+ y="1181"
+ width="1417"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4189" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4191">get_frame</text>
+<!-- Line: box --> <rect
+ x="10488"
+ y="2125"
+ width="1417"
+ height="1559"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4193" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="2598"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4195">field</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="2834"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4197">lock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="3070"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4199">proc_frame</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="3307"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4201">proc_slice</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="3543"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4203">proc_macroblock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="2362"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4205">draw</text>
+<!-- Line: box --> <rect
+ x="10488"
+ y="4346"
+ width="1417"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4207" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="4629"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4209">get_frame</text>
+<!-- Line: box --> <rect
+ x="10488"
+ y="4960"
+ width="1417"
+ height="1559"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4211" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="5433"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4213">field</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="5669"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4215">lock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="5905"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4217">proc_frame</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="6141"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4219">proc_slice</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="6377"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4221">proc_macroblock</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="5196"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4223">draw</text>
+<!-- Line: box --> <rect
+ x="10488"
+ y="6708"
+ width="1417"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4225" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="6992"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4227">free</text>
+<!-- Line: box --> <rect
+ x="1039"
+ y="9732"
+ width="1417"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4229" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="1228"
+ y="10015"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4231">free / dispose</text>
+<!-- Line: box --> <rect
+ x="10488"
+ y="9732"
+ width="1417"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4233" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10677"
+ y="10015"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4235">free / dispose</text>
+<!-- Line --> <polygon
+ points="7417,5244 7181,5480 7653,5480 7417,5244 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#bfbfbf; "
+ id="polygon4237" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6992"
+ y="5669"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4239">modify frame</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="7181"
+ y="5858"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4241">content</text>
+<!-- Line --> <polyline
+ points="661,11574 661,10960 850,10960 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4243" />
+<!-- Arrowhead on XXXpoint 661 10960 - 1055 10960--> <polygon
+ points="853 11023 1042 10960 853 10897 853 11023 "
+ style="stroke:#000000;stroke-width:8; fill:#000000;"
+ id="polygon4245" />
+<!-- Line --> <polyline
+ points="2456,11574 2456,11055 2266,11055 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4247" />
+<!-- Arrowhead on XXXpoint 2456 11055 - 2062 11055--> <polygon
+ points="2264 10992 2075 11055 2264 11118 2264 10992 "
+ style="stroke:#000000;stroke-width:8; fill:#000000;"
+ id="polygon4249" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4629"
+ y="10960"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4251">frame from original port</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4629"
+ y="11622"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4253">intercepted frame</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8456"
+ y="10866"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="end"
+ id="text4255">downstream</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8456"
+ y="11181"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="end"
+ id="text4257">meta-information</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8456"
+ y="11496"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="end"
+ id="text4259">from decoder</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8456"
+ y="11811"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="end"
+ id="text4261">to output</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10346"
+ y="10866"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4263">upstream</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10346"
+ y="11181"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4265">meta-information</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10346"
+ y="11496"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4267">from output</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="10346"
+ y="11811"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4269">to decoder</text>
+<!-- Line --> <polyline
+ points="8503,11338 9212,11338 9212,11195 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4271" />
+<!-- Arrowhead on XXXpoint 9212 11338 - 9212 10992--> <polygon
+ points="9275 11193 9212 11004 9149 11193 9275 11193 "
+ style="stroke:#000000;stroke-width:8; fill:#000000;"
+ id="polygon4273" />
+<!-- Line --> <polyline
+ points="10299,11338 9590,11338 9590,11195 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4275" />
+<!-- Arrowhead on XXXpoint 9590 11338 - 9590 10992--> <polygon
+ points="9653 11193 9590 11004 9527 11193 9653 11193 "
+ style="stroke:#000000;stroke-width:8; fill:#000000;"
+ id="polygon4277" />
+<!-- Line --> <polyline
+ points="10488,1370 7575,1370 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4279" />
+<!-- Arrowhead on XXXpoint 10488 1370 - 7543 1370--> <polyline
+ points="7745 1307 7556 1370 7745 1433 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4281" />
+<!-- Line --> <polyline
+ points="5291,1370 2473,1370 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4283" />
+<!-- Arrowhead on XXXpoint 5291 1370 - 2440 1370--> <polyline
+ points="2643 1307 2454 1370 2643 1433 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4285" />
+<!-- Line --> <polyline
+ points="2456,2456 10470,2456 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4287" />
+<!-- Arrowhead on XXXpoint 2456 2456 - 10503 2456--> <polyline
+ points="10301 2519 10490 2456 10301 2393 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4289" />
+<!-- Line --> <polyline
+ points="10488,3401 2473,3401 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4291" />
+<!-- Arrowhead on XXXpoint 10488 3401 - 2440 3401--> <polyline
+ points="2643 3338 2454 3401 2643 3464 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4293" />
+<!-- Line --> <polyline
+ points="2456,4535 5905,4535 5905,6897 2473,6897 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4295" />
+<!-- Arrowhead on XXXpoint 5905 6897 - 2440 6897--> <polyline
+ points="2643 6834 2454 6897 2643 6960 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4297" />
+<!-- Line --> <polyline
+ points="10488,6188 6897,6188 6897,6897 10470,6897 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4299" />
+<!-- Arrowhead on XXXpoint 6897 6897 - 10503 6897--> <polyline
+ points="10301 6960 10490 6897 10301 6834 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4301" />
+<!-- Line --> <polyline
+ points="10488,4535 6897,4535 6897,5244 10470,5244 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4303" />
+<!-- Arrowhead on XXXpoint 6897 5244 - 10503 5244--> <polyline
+ points="10301 5307 10490 5244 10301 5181 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4305" />
+<!-- Line --> <polyline
+ points="2456,7937 5905,7937 5905,8881 2473,8881 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4307" />
+<!-- Arrowhead on XXXpoint 5905 8881 - 2440 8881--> <polyline
+ points="2643 8818 2454 8881 2643 8944 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4309" />
+<!-- Line --> <polyline
+ points="0,1889 12188,1889 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:104 104;"
+ id="polyline4311" />
+<!-- Line --> <polyline
+ points="0,3968 12188,3968 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:104 104;"
+ id="polyline4313" />
+<!-- Line --> <polyline
+ points="0,7417 12188,7417 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:104 104;"
+ id="polyline4315" />
+<!-- Line --> <polyline
+ points="2456,9921 5273,9921 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4317" />
+<!-- Arrowhead on XXXpoint 2456 9921 - 5307 9921--> <polyline
+ points="5104 9984 5293 9921 5104 9858 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4319" />
+<!-- Line --> <polyline
+ points="7559,9921 10470,9921 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:41 41;"
+ id="polyline4321" />
+<!-- Arrowhead on XXXpoint 7559 9921 - 10503 9921--> <polyline
+ points="10301 9984 10490 9921 10301 9858 "
+ style="stroke:#000000;stroke-width:8; "
+ id="polyline4323" />
+<!-- Line --> <polygon
+ points="6377,94 6377,566 3354,566 3165,330 3354,94 6377,94 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon4325" />
+<!-- Line --> <polygon
+ points="6472,94 6472,566 9590,566 9779,330 9590,94 6472,94 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polygon4327" />
+<!-- Line --> <polyline
+ points="0,9401 12188,9401 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:104 104;"
+ id="polyline4329" />
+<!-- Line --> <polyline
+ points="3354,10488 3354,11952 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4331" />
+<!-- Line --> <polyline
+ points="6803,10488 6803,11952 "
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="polyline4333" />
+<!-- Line: box --> <rect
+ x="5291"
+ y="1181"
+ width="2267"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4335" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="1133"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4337" />
+<!-- Line: box --> <rect
+ x="5291"
+ y="2267"
+ width="2267"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect4339" />
+<!-- Line: box --> <rect
+ x="5291"
+ y="3212"
+ width="2267"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect4341" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="2220"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4343" />
+<!-- Line: box --> <rect
+ x="8314"
+ y="2220"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4345" />
+<!-- Line: box --> <rect
+ x="8314"
+ y="3165"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4347" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="3165"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4349" />
+<!-- Line: box --> <rect
+ x="8267"
+ y="4960"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00bf00; "
+ id="rect4351" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="4299"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4353" />
+<!-- Line: box --> <rect
+ x="8267"
+ y="6614"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00bf00; "
+ id="rect4355" />
+<!-- Line: box --> <rect
+ x="8267"
+ y="5905"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00bf00; "
+ id="rect4357" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="7700"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4359" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="8645"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4361" />
+<!-- Line: box --> <rect
+ x="5291"
+ y="8220"
+ width="2267"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect4363" />
+<!-- Line: box --> <rect
+ x="5291"
+ y="4677"
+ width="2267"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect4365" />
+<!-- Line: box --> <rect
+ x="5291"
+ y="6330"
+ width="2267"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect4367" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="6661"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4369" />
+<!-- Line: box --> <rect
+ x="5291"
+ y="9732"
+ width="2267"
+ height="425"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4371" />
+<!-- Line: box --> <rect
+ x="1133"
+ y="10771"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect4373" />
+<!-- Line: box --> <rect
+ x="3543"
+ y="11244"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4375" />
+<!-- Line: box --> <rect
+ x="3543"
+ y="10582"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4377" />
+<!-- Line: box --> <rect
+ x="8929"
+ y="10535"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4379" />
+<!-- Line: box --> <rect
+ x="3921"
+ y="9685"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4381" />
+<!-- Line: box --> <rect
+ x="8267"
+ y="9637"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4383" />
+<!-- Line: box --> <rect
+ x="8267"
+ y="1086"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4385" />
+<!-- Line: box --> <rect
+ x="8267"
+ y="4251"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ffff; "
+ id="rect4387" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5480"
+ y="1464"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4389">_x_post_intercept_frame</text>
+<!-- Line: box --> <rect
+ x="3826"
+ y="1039"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4391" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5480"
+ y="2551"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4393">_x_post_frame_copy_down</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5480"
+ y="3496"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4395">_x_post_frame_copy_up</text>
+<!-- Line: box --> <rect
+ x="3826"
+ y="2125"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4397" />
+<!-- Line: box --> <rect
+ x="8220"
+ y="2125"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4399" />
+<!-- Line: box --> <rect
+ x="8220"
+ y="3070"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4401" />
+<!-- Line: box --> <rect
+ x="3826"
+ y="3070"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4403" />
+<!-- Line: box --> <rect
+ x="3826"
+ y="4204"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4405" />
+<!-- Line: box --> <rect
+ x="3826"
+ y="7606"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4407" />
+<!-- Line: box --> <rect
+ x="3826"
+ y="8551"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4409" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5480"
+ y="8503"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4411">_x_post_frame_u_turn</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5480"
+ y="4960"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4413">_x_post_frame_copy_down</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5480"
+ y="6614"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4415">_x_post_frame_copy_up</text>
+<!-- Line: box --> <rect
+ x="3826"
+ y="6566"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4417" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="5480"
+ y="10015"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="139"
+ text-anchor="start"
+ id="text4419">_x_post_restore_video_frame</text>
+<!-- Line: box --> <rect
+ x="1039"
+ y="10677"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; "
+ id="rect4421" />
+<!-- Line: box --> <rect
+ x="3826"
+ y="9590"
+ width="944"
+ height="566"
+ rx="0"
+ style="stroke:#000000;stroke-width:8; stroke-linejoin:miter; stroke-linecap:butt; fill:#ff0000; "
+ id="rect4423" />
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="2551"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4425">d</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8503"
+ y="2645"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4427">d</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8503"
+ y="3590"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4429">d u</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="3496"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4431">d u</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8456"
+ y="5385"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4433">d</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="4629"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4435">d</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8456"
+ y="7039"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4437">d u</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8456"
+ y="6330"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4439">d u</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="8031"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4441">d</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="8976"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4443">d u</text>
+<!-- Line: box --> <rect
+ x="236"
+ y="661"
+ width="519"
+ height="1133"
+ rx="0"
+ style="stroke:#000000;stroke-width:16; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4445" />
+<!-- Text --> <g
+ transform="translate(566,1748) rotate(-90.00021046)"
+ id="g4447">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4449">interception</text>
+ </g>
+<!-- Line: box --> <rect
+ x="236"
+ y="2031"
+ width="519"
+ height="1842"
+ rx="0"
+ style="stroke:#000000;stroke-width:16; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4451" />
+<!-- Text --> <g
+ transform="translate(566,3543) rotate(-90.00021046)"
+ id="g4453">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4455">pass through</text>
+ </g>
+<!-- Line: box --> <rect
+ x="236"
+ y="4110"
+ width="519"
+ height="3212"
+ rx="0"
+ style="stroke:#000000;stroke-width:16; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4457" />
+<!-- Text --> <g
+ transform="translate(566,6472) rotate(-90.00021046)"
+ id="g4459">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4461">modifying a copy</text>
+ </g>
+<!-- Line: box --> <rect
+ x="236"
+ y="7559"
+ width="519"
+ height="1748"
+ rx="0"
+ style="stroke:#000000;stroke-width:16; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4463" />
+<!-- Text --> <g
+ transform="translate(566,9118) rotate(-90.00021046)"
+ id="g4465">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4467">dead-end draw</text>
+ </g>
+<!-- Line: box --> <rect
+ x="236"
+ y="9543"
+ width="519"
+ height="850"
+ rx="0"
+ style="stroke:#000000;stroke-width:16; stroke-linejoin:miter; stroke-linecap:butt; "
+ id="rect4469" />
+<!-- Text --> <g
+ transform="translate(566,10299) rotate(-90.00021046)"
+ id="g4471">
+ <text
+ xml:space="preserve"
+ x="0"
+ y="0"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4473">freeing</text>
+ </g>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="6992"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4475">d u</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="425"
+ y="11811"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4477">frame</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="2078"
+ y="11811"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="189"
+ text-anchor="start"
+ id="text4479">frame-&gt;next</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="9118"
+ y="10960"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4481">d u</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="4015"
+ y="10015"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4483">d</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="8456"
+ y="10062"
+ stroke="#000000"
+ fill="#000000"
+ font-family="Helvetica"
+ font-style="normal"
+ font-weight="bold"
+ font-size="315"
+ text-anchor="start"
+ id="text4485">d</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6000"
+ y="425"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="252"
+ text-anchor="start"
+ id="text4487">up</text>
+<!-- Text --> <text
+ xml:space="preserve"
+ x="6614"
+ y="425"
+ stroke="#000000"
+ fill="#000000"
+ font-family="DejaVu Sans Condensed"
+ font-style="normal"
+ font-weight="normal"
+ font-size="252"
+ text-anchor="start"
+ id="text4489">down</text>
+ </g>
+</svg>
diff --git a/doc/hackersguide/stream.sgml b/doc/hackersguide/stream.docbook
index b9690d9fe..b9690d9fe 100644
--- a/doc/hackersguide/stream.sgml
+++ b/doc/hackersguide/stream.docbook
diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am
index 2f7d162d2..9f3800ce6 100644
--- a/doc/man/Makefile.am
+++ b/doc/man/Makefile.am
@@ -1,3 +1,4 @@
+include $(top_srcdir)/misc/Makefile.quiet
include $(top_srcdir)/misc/Makefile.common
SUBDIRS = en
diff --git a/doc/man/en/Makefile.am b/doc/man/en/Makefile.am
index c8d616c35..f6e323558 100644
--- a/doc/man/en/Makefile.am
+++ b/doc/man/en/Makefile.am
@@ -1,3 +1,4 @@
+include $(top_srcdir)/misc/Makefile.quiet
include $(top_srcdir)/misc/Makefile.common
STATICMANS = xine-config.1 xine.5
diff --git a/doc/man/en/xine-config.1 b/doc/man/en/xine-config.1
index 3fe828166..af56fd844 100644
--- a/doc/man/en/xine-config.1
+++ b/doc/man/en/xine-config.1
@@ -13,25 +13,28 @@ xine\-config - script to get information about the installed version of libxine
[\-\-plugindir] [\-\-datadir] [\-\-scriptdir] [\-\-localedir]
.SH DESCRIPTION
.PP
+\fIxine\-config is DEPRECATED. Use pkg\-config instead.\fP
+.PP
\fIxine\-config\fP is a tool that is used to determine
the compiler and linker flags that should be used to compile
and link programs that use \fIlibxine\fP. It can also be used to determine
-the directories where \fIlibxine\fP expects plugins and skins.
-Finally, it's also used internally
-by the .m4 macros for GNU autoconf that are included with \fIxine-lib\fP.
-.
+the directories where \fIlibxine\fP expects plugins.
.SH OPTIONS
-\fIxine\-config\fP accepts the following options:
+\fIxine\-config\fP accepts the following options, passing them on (possibly
+modified) to \fIpkg\-config libxine\fP:
.TP 8
.B \-\-version
+\-\-modversion
+.br
Print the currently installed version of \fIlibxine\fP on the standard output.
.TP 8
.B \-\-libs
-Print the linker flags that are necessary to link \fIlibxine\fP to a program.
-.TP 8
+.TQ 8
.B \-\-cflags
.TQ 8
.B \-\-objcflags
+Passed on unmodified.
+.br
Print the compiler flags (for C and Objective C, respectively) that are
necessary to compile a program that uses \fIlibxine\fP.
.TP 8
@@ -44,21 +47,24 @@ necessary to compile a program that uses \fIlibxine\fP.
.B \-\-scriptdir
.TQ 8
.B \-\-localedir
+\-\-variable=...
+.br
Print the directory where, respectively, \fIlibxine\fP binaries, plugins,
data files, scripts and locale data are stored/expected.
.TP 8
.B \-\-prefix=PREFIX
+\-\-define\-variable=prefix=PREFIX
+.br
If specified, use PREFIX instead of the installation prefix that \fIxine-lib\fP
-was built with when computing the output for the \-\-cflags and
-\-\-libs options. This option is also used for the exec prefix
-if \-\-exec\-prefix was not specified. This option must be specified
-before any \-\-libs or \-\-cflags options.
+was built with. This option is also used for the exec prefix if
+\-\-exec\-prefix was not specified.
+
.TP 8
.B \-\-exec\-prefix=PREFIX
+\-\-define\-variable=exec_prefix=PREFIX
+.br
If specified, use PREFIX instead of the installation exec prefix that
-\fIxine-lib\fP was built with when computing the output for the \-\-cflags
-and \-\-libs options. This option must be specified before any
-\-\-libs or \-\-cflags options.
+\fIxine-lib\fP was built with.
.SH SEE ALSO
.BR xine-lib (3),
.BR xine (1)
diff --git a/doc/man/en/xine.5 b/doc/man/en/xine.5
index 3f80ea575..dd3621575 100644
--- a/doc/man/en/xine.5
+++ b/doc/man/en/xine.5
@@ -204,7 +204,8 @@ Play entry 0 of /tmp/ntsc.nrg (Nero file). Works for some simple Nero images.
.br
.SS DVB
.PP
-DVB MRLs require that ~/.xine/channels.conf exists and contains valid data.
+DVB MRLs require that xine-lib/channels.conf exists in $XDG_CONFIG_HOME/ or
+~/.config/ and contains valid data.
This can be obtained by generating a tuning file using the LinuxTV DVB apps
utility "scan" (or "dvbscan" if you're using a version newer than 1.1.0):
.PP