redo autobuilt docs system with fancy XInclude features
authorDavid I. Lehn <dlehn@users.sourceforge.net>
Wed, 9 Jul 2003 23:51:45 +0000 (23:51 +0000)
committerDavid I. Lehn <dlehn@users.sourceforge.net>
Wed, 9 Jul 2003 23:51:45 +0000 (23:51 +0000)
Original commit message from CVS:
redo autobuilt docs system with fancy XInclude features

ChangeLog
docs/AUTHORS.xml [new file with mode: 0644]
docs/Makefile.am
docs/NEWS.xml [new file with mode: 0644]
docs/README.xml [new file with mode: 0644]
docs/RELNOTES.xml [new file with mode: 0644]
docs/TODO.xml [new file with mode: 0644]
docs/common.xsl
docs/full.xsl [new file with mode: 0644]
docs/gst-python.ent.in [new file with mode: 0644]
docs/part.xsl [new file with mode: 0644]

index ec1f6eb..17c176c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
        * README, AUTHORS, NEWS, TODO: removed (generated from docs/*)
 
-       * docs/.cvsignore: add generated files
+       * .cvsignore, docs/.cvsignore: add generated files
+
+       * docs/{AUTHORS.xml, NEWS.xml, README.xml, RELNOTES.xml, TODO.xml,
+       gst-python.ent.in, common.xsl, full.xsl, part.xsl, Makefile.am}: redo
+       autobuilt docs system with fancy XInclude features
 
 2003-06-26  David I. Lehn <dlehn@users.sourceforge.net>
 
diff --git a/docs/AUTHORS.xml b/docs/AUTHORS.xml
new file mode 100644 (file)
index 0000000..7c17cb1
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+  <!ENTITY % ents SYSTEM "gst-python.ent">
+  %ents;
+]>
+
+<article id="gst-python-authors">
+
+<!--=====================================================================-->
+
+<articleinfo>
+  <title>Gst-Python &version; Authors</title>
+  <copyright><year>2003</year><holder>David I. Lehn</holder></copyright>
+  <pubdate>&pubdate;</pubdate>
+  <authorgroup>
+    <author>
+      <firstname>David</firstname>
+      <othername role="mi">I.</othername>
+      <surname>Lehn</surname>
+      <email>dlehn@users.sourceforge.net</email>
+    </author>
+  </authorgroup>
+</articleinfo>
+
+<!--=====================================================================-->
+
+<section id="authors">
+<title>Authors</title>
+  
+<para>
+Please feel free to contact the developers.  They hang out on IRC (<ulink url="http://gstreamer.net/dev/"/>) and the mailing lists (<ulink url="http://gstreamer.net/contact/lists.php"/>).
+</para>
+
+<!--=================-->
+
+<section id="maintainer">
+<title>Maintainer</title>
+
+<itemizedlist>
+<listitem><para>David I. Lehn <email>dlehn@users.sourceforge.net</email></para></listitem>
+</itemizedlist>
+</section>
+
+<!--=================-->
+
+<section id="contributions">
+<title>Contributions</title>
+<para>
+Patches, suggestions, and other help:
+</para>
+
+<itemizedlist>
+<listitem><para>Kenichi Sato <email>ksato at users.sourceforge.net</email>: misc patches</para></listitem>
+<listitem><para>Thomas Vander Stichele <email>thomas at apestaart.org</email>: misc patches, build framework patches, Red Hat support</para></listitem>
+</itemizedlist>
+
+<para>
+Much of the framework for gst-python stolen from the excellent gtk and gconf bindings by:
+</para>
+
+<itemizedlist>
+<listitem><para>James Henstridge <email>james at daa.com.au</email></para></listitem>
+<listitem><para>Johan Dahlin <email>jdahlin at telia.com</email></para></listitem>
+<listitem><para>Matt Wilson <email>msw at redhat.com</email></para></listitem>
+<listitem><para>and many more...</para></listitem>
+</itemizedlist>
+
+</section>
+
+<!--=================-->
+
+<section id="gstreamer-team">
+<title>GStreamer Team</title>
+<para>
+And of course, none of this would be possible without the extreme hacker mojo
+of the whole GStreamer crew!
+</para>
+</section>
+
+<!--=================-->
+
+</section>
+
+<!--=====================================================================-->
+
+</article>
index c0d9007..4366a28 100644 (file)
@@ -1,21 +1,82 @@
-XMLFILES = gst-python.xml
-XSLFILES = common.xsl html.xsl
+READMEXMLFILES = README.xml NEWS.xml TODO.xml AUTHORS.xml
+READMEFILES = $(READMEXMLFILES) gst-python.ent
+
+RELNOTESXMLFILES = RELNOTES.xml
+RELNOTESFILES = $(RELNOTESXMLFILES) $(READMEXMLFILES) gst-python.ent
+
+XMLFILES = $(READMEXMLFILES) $(RELNOTESXMLFILES)
+XSLFILES = common.xsl full.xsl part.xsl html.xsl pdf.xsl
 CSSFILES = gst-python.css
 
-DOCS = gst-python.txt gst-python.html
+EXTRA_DIST = $(XMLFILES) $(XSLFILES) $(CSSFILES)
+
+DOCS = README.txt README.html #gst-python.pdf
+TOPDOCS = README.txt NEWS.txt TODO.txt AUTHORS.txt
+RELNOTES = RELNOTES.txt
+
+CLEANFILES = $(DOCS) $(TOPDOCS) $(RELNOTES) tmpbuildcatalog
+
+if BUILD_DOCS
+
+XMLTO = xmlto
+XMLTOFLAGS = --skip-validation -o $(CURDIR)
+XMLLINT = xmllint
+XMLLINTFLAGS = --xinclude --noout --loaddtd --catalogs --postvalid
 
 all: $(DOCS)
 
-gst-python.txt: gst-python.xml
-       xmlto txt $<
-#      cp gst-python.txt $(top_builddir)/../README
+tmpbuildcatalog: gst-python.ent
+       xmlcatalog --noout --create $@
+       xmlcatalog --noout --add system `cd $(srcdir) && pwd`/gst-python.ent $(CURDIR)/gst-python.ent $@
+       xmlcatalog --noout --add system $(srcdir)/gst-python.ent $(CURDIR)/gst-python.ent $@
 
-gst-python.html: gst-python.xml common.xsl html.xsl
-       xmlto -m common.xsl -m html.xsl xhtml-nochunks $<
+check: tmpbuildcatalog
+       for d in $(XMLFILES); do \
+               SGML_CATALOG_FILES=$$SGML_CATALOG_FILES\ $(CURDIR)/tmpbuildcatalog \
+               $(XMLLINT) $(XMLLINTFLAGS) $(srcdir)/$$d; \
+       done
 
-gst-python.pdf: gst-python.xml common.xsl pdf.xsl
-       xmlto -m common.xsl -m pdf.xsl pdf $<
+dist-docs: $(TOPDOCS)
 
-CLEANFILES = $(DOCS)
+dist-hook: dist-docs
+       for d in $(TOPDOCS); do \
+               mv $$d ../`basename $$d .txt`; \
+       done
 
-EXTRA_DIST = $(XMLFILES) $(XSLFILES) $(CSSFILES)
+# full docs
+
+# filter out xsl deps and make xslto flags
+xmltoxslflags = $(foreach xsl,$(filter %xsl,$(filter-out $(1),$(2))),-m $(srcdir)/$(xsl))
+FULLDEPS = common.xsl full.xsl tmpbuildcatalog
+
+README.txt: $(READMEFILES) $(FULLDEPS)
+       XML_CATALOG_FILES=$$XML_CATALOG_FILES\ $(CURDIR)/tmpbuildcatalog \
+       $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) txt $<
+
+README.html: $(READMEFILES) $(FULLDEPS) html.xsl
+       XML_CATALOG_FILES=$$XML_CATALOG_FILES\ $(CURDIR)/tmpbuildcatalog \
+       $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) xhtml-nochunks $<
+
+README.pdf: $(READMEFILES) $(FULLDEPS) pdf.xsl
+       XML_CATALOG_FILES=$$XML_CATALOG_FILES\ $(CURDIR)/tmpbuildcatalog \
+       $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) pdf $<
+
+# partial docs
+
+PARTIALDEPS = gst-python.ent common.xsl part.xsl tmpbuildcatalog
+
+RELNOTES.txt: $(RELNOTESFILES) $(PARTIALDEPS)
+       XML_CATALOG_FILES=$$XML_CATALOG_FILES\ $(CURDIR)/tmpbuildcatalog \
+       $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) txt $<
+
+%.txt: %.xml $(PARTIALDEPS)
+       XML_CATALOG_FILES=$$XML_CATALOG_FILES\ $(CURDIR)/tmpbuildcatalog \
+       $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) txt $<
+
+else
+
+dist-hook:
+       @echo "Error: Doc building must be enabled for autogeneration of README, NEWS, TODO, and AUTHORS for distribution."
+       @false
+
+endif
diff --git a/docs/NEWS.xml b/docs/NEWS.xml
new file mode 100644 (file)
index 0000000..5a5076f
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+  <!ENTITY % ents SYSTEM "gst-python.ent">
+  %ents;
+]>
+
+<article id="gst-python-news">
+
+<!--=====================================================================-->
+
+<articleinfo>
+  <title>Gst-Python &version; News</title>
+  <copyright><year>2003</year><holder>David I. Lehn</holder></copyright>
+  <pubdate>&pubdate;</pubdate>
+  <authorgroup>
+    <author>
+      <firstname>David</firstname>
+      <othername role="mi">I.</othername>
+      <surname>Lehn</surname>
+      <email>dlehn@users.sourceforge.net</email>
+    </author>
+  </authorgroup>
+</articleinfo>
+
+<!--=====================================================================-->
+
+<section id="news">
+<title>News</title>
+
+<section role="notintoc" id="release-0.1.0">
+  <title>2003-07-09 - 0.1.0 - David I. Lehn <email>dlehn@users.sourceforge.net</email></title>
+  <para>
+    <itemizedlist>
+      <listitem><para>First release</para></listitem>
+    </itemizedlist>
+  </para>
+</section>
+
+</section>
+
+<!--=====================================================================-->
+
+</article>
diff --git a/docs/README.xml b/docs/README.xml
new file mode 100644 (file)
index 0000000..0007b41
--- /dev/null
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+  <!ENTITY % local.common.attrib "xml:base CDATA #IMPLIED">
+  <!ENTITY % ents SYSTEM "gst-python.ent">
+  %ents;
+]>
+
+<article id="gst-python">
+<articleinfo>
+  <title>Gst-Python &version;: A Python Interface to GStreamer</title>
+  <publisher><publishername>The GStreamer Development Team</publishername></publisher>
+  <pubdate>&pubdate;</pubdate>
+  <copyright><year>2003</year><holder>David I. Lehn</holder></copyright>
+  <titleabbrev>gst-python</titleabbrev>
+  <authorgroup>
+    <author>
+      <firstname>David</firstname>
+      <othername role="mi">I.</othername>
+      <surname>Lehn</surname>
+      <email>dlehn@users.sourceforge.net</email>
+    </author>
+  </authorgroup>
+  <abstract>
+    <para>Introductory information for the GStreamer Python bindings.</para>
+    <para><ulink url="http://www.gstreamer.net/bindings/python/"/></para>
+  </abstract>
+  <revhistory>
+     <revision>
+        <revnumber>0.1.0</revnumber>
+        <date>2003-07-09</date>
+        <authorinitials>dil</authorinitials>
+        <revremark>Initial version.</revremark>
+     </revision>
+  </revhistory>
+</articleinfo>
+
+<!--=====================================================================-->
+
+<section id="about">
+<title>About</title>
+<para>
+
+<application>gst-python</application>: the <ulink url="http://www.python.org/">Python</ulink> bindings for the <ulink url="http://www.gstreamer.net/">GStreamer</ulink> project.  These bindings provide access to almost all of the GStreamer C API through an object oriented Python API.
+
+</para>
+</section>
+
+<!--=====================================================================-->
+
+<xi:include href="NEWS.xml#news" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!--=====================================================================-->
+
+<section id="installation">
+<title>Installation</title>
+
+<!--=================-->
+
+<section id="requirements">
+<title>Requirements</title>
+<itemizedlist>
+<listitem><para>
+Python 2.2 (<ulink url="http://www.python.org/"/>)
+</para></listitem>
+<listitem><para>
+GStreamer 0.6.x (<emphasis>except</emphasis> 0.6.1) (<ulink url="http://www.gstreamer.net/"/>)
+</para></listitem>
+<listitem><para>
+PyGTK 1.99.14 (<ulink url="http://www.daa.com.au/~james/pygtk/"/>)
+</para></listitem>
+</itemizedlist>
+</section>
+
+<!--=================-->
+
+<section id="building">
+<title>Building and Installation</title>
+
+<para>
+For build and install information please refer to the "INSTALL" file.  Installation is optional, gst-python can be used from the build directory.  The quick instructions: build and install PyGTK and GStreamer then build gst-python:
+</para>
+
+<para>
+<screen>
+ $ ./configure &amp;&amp; make
+</screen>
+</para>
+
+</section>
+
+<!--=================-->
+
+<section id="using">
+<title>Using</title>
+<para>
+You either need to install the package or add the root directory to your
+Python path:
+</para>
+
+<para>
+<screen>
+ $ export PYTHONPATH=$PYTHONPATH:`pwd`
+</screen>
+</para>
+
+<para>
+Try running examples:
+</para>
+
+<para>
+<screen>
+ $ cd examples/gstreamer/
+ $ python cp.py &lt;input file&gt; &lt;output file&gt;
+ $ cmp &lt;input file&gt; &lt;output file&gt;
+ $ python vorbisplay.py &lt;an Ogg Vorbis file&gt;
+</screen>
+</para>
+
+</section>
+
+<!--=================-->
+
+</section>
+
+<!--=====================================================================-->
+
+<section id="programming">
+<title>Programming</title>
+
+<!--=================-->
+
+<section id="general-api">
+<title>General API</title>
+<para>
+
+The gst-python bindings are directly generated from the GStreamer headers.  Look at the GStreamer documentation at <ulink url="http://www.gstreamer.net/docs/"/> for general API and programming issues.  In most cases the GStreamer classes and boxed types map directly to Python classes.  The function-based GObject methods also map onto Python methods.
+
+</para>
+</section>
+
+<!--=================-->
+
+<section id="divergence-from-c-api">
+<title>Divergence From C API</title>
+
+<para>Due to the nature of C and Python some of the GStreamer API is handled
+slightly different in Python than C.  There are a few of the GStreamer C
+functions that are not yet provided in gst-python.  These are mostly related to
+creating <xref linkend="python-elements" endterm="python-elements.title"/>.  A
+few others remain that return GList* or return values in their parameters.
+These have been wrapped as needed.  Please file a <link
+linkend="bugs">bug</link> if you need one of the unwrapped functions.</para>
+
+<para>API changes:</para>
+
+<itemizedlist>
+
+ <listitem><para><function>gst_props_entry_get_type</function> is accessed
+ through <function>PropsEntry.get_props_type</function>().  This is due to the
+ <function>_get_type</function> function extention being normally used for
+ <function>GType</function> access and is inaccessable
+ otherwise.</para></listitem>
+
+ <listitem><para>Special <link linkend="pipeline-iteration">pipeline
+ iteration</link> support through the following functions:</para>
+
+  <itemizedlist>
+
+   <listitem><para><function>add_iterate_bin</function>(<parameter
+   class="function">bin</parameter>) -&gt; <returnvalue>id</returnvalue>: used
+   to iterate a bin with a C idle loop callback instead of a Python
+   callback.</para></listitem>
+
+   <listitem><para><function>remove_iterate_bin</function>(<parameter
+   class="function">id</parameter>): used to remove the
+   <function>add_iterate_bin</function> idle loop callback
+   id.</para></listitem>
+
+   <listitem><para><function>iterate_bin_all</function>(<parameter
+   class="function">bin</parameter>): releases locks, calls
+   <function>gst_bin_iterate</function> until it returns 0, reacquires locks
+   and completes</para></listitem>
+
+  </itemizedlist>
+ </listitem>
+
+ <listitem><para><link linkend="python-elements">Python Elements</link> support through the following currently horribly inefficient functions:</para>
+
+  <itemizedlist>
+
+   <listitem><para><function>Buffer.get_data</function>() -&gt;
+   <returnvalue>string</returnvalue>: converts buffer data to a string and
+   returns it.</para></listitem>
+
+   <listitem><para><function>Buffer.set_data</function>(<parameter
+   class="function">string</parameter>): sets the buffer data from a
+   string.</para></listitem>
+
+  </itemizedlist>
+ </listitem>
+</itemizedlist>
+
+</section>
+
+<!--=================-->
+
+<section id="examples">
+<title>Examples</title>
+
+<para>The best documentation right now are the examples in <filename
+class="directory">./examples/gstreamer/</filename>.  Read them.</para>
+
+</section>
+
+<!--=================-->
+
+<section id="threads">
+<title>Threads</title>
+
+<para>Threading is a tricky subject for gst-python.  There are a few lock you
+need to be aware of:</para>
+
+<section id="gil">
+<title>GIL</title>
+
+<para>The CPython interpreter is single threaded.  Code execution in the
+interpreter is protected by a Global Interpreter Lock (GIL).  This means that C
+code can run in other threads in parallel but only one thread will be running
+Python code at any one point.  Most of this is handled internally by means of
+locking and unlocking the GIL at appropriate times.  Callback code and other
+various code paths between Python and C *should* be setup to do proper GIL
+handling.</para>
+  
+<para>However, it is possible that you may encounter a situation where proper
+locking is not done.  This is most likely due to calling a wrapper function
+that follows a sequence like this:</para>
+
+<orderedlist>
+<listitem><para>Python calls wrapper function</para></listitem>
+<listitem><para>wrapper function calls C GStreamer function</para></listitem>
+<listitem><para>C GStreamer function calls side effect code</para></listitem>
+<listitem><para>side effect code calls callback</para></listitem>
+<listitem><para>callback tries to acquire Python GIL but it's already locked</para></listitem>
+<listitem><para>deadlocked...</para></listitem>
+</orderedlist>
+
+<para>This has been fixed for commonly called functions that have side effects
+which are likely to re-enter the interpreter.  It just involves lock/unlock
+around the call to the C gst function.  But doing it for every function could
+have performance issues and, more importantly, is not an automated
+process.</para>
+
+<para>Please file a <link linkend="bugs">bug</link> if you have problems
+related to this and need other functions to be specially handled.</para>
+
+</section>
+
+<section id="gdk-lock">
+<title>Gdk Lock</title>
+
+<para>If you are using PyGTK you will have to deal with Gdk locking.  Make sure
+you're holding the Gdk lock while executing Gdk/Gtk calls.  See PyGTK
+documentation and FAQ list for more information.</para>
+
+</section>
+
+</section>
+
+<!--=================-->
+
+<section id="pipeline-iteration">
+<title>Pipeline Iteration</title>
+
+<para>There are a number of ways to iterate pipelines.
+<filename>./examples/gstreamer/bps.py</filename> is a small test program to
+measure the performance in buffers per second of these various techniques.
+Please see the example for how to use these techniques.</para>
+
+<itemizedlist>
+<listitem><para><function>Bin.iterate</function>() in Python from the gtk idle loop</para></listitem>
+<listitem><para><function>gst_bin_iterate</function>() in C from gtk idle loop</para></listitem>
+<listitem><para><function>Bin.iterate</function>() in a Python loop</para></listitem>
+<listitem><para><function>gst_bin_iterate</function>() in a C loop</para></listitem>
+</itemizedlist>
+
+<para>The method you chose depends on your application.  The idle loop methods
+are slightly slower yet more flexible.  Probably useful for interactive GUI
+applications.</para>
+
+<para>The basic loop methods are faster but probably more use for
+non-interactive applications.  A variation on these loops would be to also
+check for a stop condition which may provide performance increase and some
+level of control.</para>
+
+</section>
+
+<!--=================-->
+
+<section id="python-elements">
+<title id="python-elements.title">Python Elements</title>
+
+<para> It is possible to write Python subclasses of GstElement.  This support
+is very primitive and likely to change.  See
+<filename>./examples/gstreamer/rot13.py</filename> for an example.</para>
+
+</section>
+
+<!--=================-->
+
+</section>
+
+<!--=====================================================================-->
+
+<section id="bugs">
+<title>Bugs</title>
+<para>
+<emphasis>Please</emphasis> submit gst-python bugs, patches, or suggestions to GNOME Bugzilla (<ulink url="http://bugzilla.gnome.org/"/>). Product: GStreamer, Component: gst-python.  Or alternatively send a message to the gstreamer-devel list or the maintainer.  Thank you.
+</para>
+</section>
+
+<!--=====================================================================-->
+
+<xi:include href="TODO.xml#todo" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!--=====================================================================-->
+
+<xi:include href="AUTHORS.xml#authors" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!--=====================================================================-->
+
+</article>
diff --git a/docs/RELNOTES.xml b/docs/RELNOTES.xml
new file mode 100644 (file)
index 0000000..ce9aeff
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+  <!ENTITY % local.common.attrib "xml:base CDATA #IMPLIED">
+  <!ENTITY % ents SYSTEM "gst-python.ent">
+  %ents;
+]>
+
+<article id="gst-python-release-notes">
+
+<!--=====================================================================-->
+
+<articleinfo>
+  <title>Gst-Python &version; Release Notes</title>
+</articleinfo>
+
+<!--=====================================================================-->
+
+<xi:include href="NEWS.xml#release-&version;" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!--=====================================================================-->
+
+<para><ulink url="http://www.gstreamer.net/bindings/python/"/></para>
+
+<!--=====================================================================-->
+
+</article>
diff --git a/docs/TODO.xml b/docs/TODO.xml
new file mode 100644 (file)
index 0000000..279db76
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+  <!ENTITY % ents SYSTEM "gst-python.ent">
+  %ents;
+]>
+
+<article id="gst-python-todo">
+
+<!--=====================================================================-->
+
+<articleinfo>
+  <title>Gst-Python &version; ToDo</title>
+  <copyright><year>2003</year><holder>David I. Lehn</holder></copyright>
+  <pubdate>&pubdate;</pubdate>
+  <authorgroup>
+    <author>
+      <firstname>David</firstname>
+      <othername role="mi">I.</othername>
+      <surname>Lehn</surname>
+      <email>dlehn@users.sourceforge.net</email>
+    </author>
+  </authorgroup>
+</articleinfo>
+
+<!--=====================================================================-->
+
+<section id="todo">
+<title>ToDo</title>
+<itemizedlist>
+<listitem><para>handle more of the functions that need manual wrapping code</para></listitem>
+<listitem><para>add check that pygtk built with <parameter class="command">--enable-thread</parameter></para></listitem>
+<listitem><para>improve Python gstreamer.Element creation</para>
+  <itemizedlist>
+  <listitem><para>perhaps drop <function>_set_foo_function</function>() calls in favor of object methods</para></listitem>
+  <listitem><para>sane buffer handling with buffer type or Numeric?</para></listitem>
+  </itemizedlist>
+</listitem>
+<listitem><para>docs</para>
+  <itemizedlist>
+  <listitem><para>API ref</para></listitem>
+  <listitem><para>manual</para></listitem>
+  <listitem><para>tutorial</para></listitem>
+  </itemizedlist>
+</listitem>
+<listitem><para>more examples</para></listitem>
+<listitem><para>convert build system to distutils</para></listitem>
+<listitem><para>wrap other GStreamer helper libs</para></listitem>
+<listitem><para>add some standard widgets</para>
+  <itemizedlist>
+  <listitem><para>gtk video widget (similar to widget gst-player is using)</para></listitem>
+  </itemizedlist>
+</listitem>
+<listitem><para>testsuite</para></listitem>
+</itemizedlist>
+</section>
+
+<!--=====================================================================-->
+
+</article>
index 8495981..2404eab 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 version='1.0'>
-<xsl:param name="section.autolabel" select="1"/>
 <xsl:param name="section.label.includes.component.label" select="1"/>
 <xsl:param name="use.id.as.filename" select="1"/>
 </xsl:stylesheet>
diff --git a/docs/full.xsl b/docs/full.xsl
new file mode 100644 (file)
index 0000000..2722f5b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+<xsl:param name="section.autolabel" select="1"/>
+<xsl:template match="section[@role = 'notintoc']" mode="toc"/>
+</xsl:stylesheet>
diff --git a/docs/gst-python.ent.in b/docs/gst-python.ent.in
new file mode 100644 (file)
index 0000000..e3913d3
--- /dev/null
@@ -0,0 +1,2 @@
+<!ENTITY version "@VERSION@">
+<!ENTITY pubdate "June 28, 2003">
diff --git a/docs/part.xsl b/docs/part.xsl
new file mode 100644 (file)
index 0000000..cdc6d96
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:param name="section.autolabel" select="0"/>
+<xsl:param name="generate.toc">
+article nop
+</xsl:param>
+
+</xsl:stylesheet>