+++ /dev/null
-*.txt
-*.pdf
-*.html
-gst-python.ent
-tmpbuildcatalog
+++ /dev/null
-<?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.freedesktop.org/dev/"/>) and the mailing lists (<ulink url="http://gstreamer.freedesktop.org/lists/"/>).
-</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>
+++ /dev/null
-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
-
-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
-
-XMLTOFLAGS = --skip-validation -o $(CURDIR)
-XMLLINTFLAGS = --xinclude --noout --loaddtd --catalogs --postvalid
-
-all: $(DOCS)
-
-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 $@
-
-#check: tmpbuildcatalog
-# for d in $(XMLFILES); do \
-# $(XMLLINT) $(XMLLINTFLAGS) $(srcdir)/$$d; \
-# done
-
-dist-docs: $(TOPDOCS)
-
-dist-hook: dist-docs
- for d in $(TOPDOCS); do \
- install -m 444 $$d $(distdir)/../`basename $$d .txt`; \
- done
-
-# 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)
- $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) txt $<
-
-README.html: $(READMEFILES) $(FULLDEPS) html.xsl
- $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) xhtml-nochunks $<
-
-README.pdf: $(READMEFILES) $(FULLDEPS) pdf.xsl
- $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) pdf $<
-
-# partial docs
-
-PARTIALDEPS = gst-python.ent common.xsl part.xsl tmpbuildcatalog
-
-RELNOTES.txt: $(RELNOTESFILES) $(PARTIALDEPS)
- $(XMLTO) $(XMLTOFLAGS) $(call xmltoxslflags,$<,$+) txt $<
-
-%.txt: %.xml $(PARTIALDEPS)
- $(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
+++ /dev/null
-<?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.7.90">
- <title>2004-03-17 - 0.7.90 - Johan Dahlin <email>johan@gnome.org</email></title>
- <para>
- <itemizedlist>
- <listitem><para>Updated for 0.8.0</para></listitem>
- </itemizedlist>
- </para>
-</section>
-
-<section role="notintoc" id="release-0.1.0">
- <title>2003-07-10 - 0.1.0 - David I. Lehn <email>dlehn@users.sourceforge.net</email></title>
- <para>
- <itemizedlist>
- <listitem><para>First release</para></listitem>
- <listitem><para>Supports <emphasis>only</emphasis> GStreamer 0.6.x (0.7.x support requires a few changes)</para></listitem>
- </itemizedlist>
- </para>
-</section>
-
-</section>
-
-<!--=====================================================================-->
-
-</article>
+++ /dev/null
-<?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://gstreamer.freedesktop.org/bindings/python.html"/></para>
- </abstract>
- <revhistory>
- <revision>
- <revnumber>0.1.0</revnumber>
- <date>2003-07-10</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 && 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 <input file> <output file>
- $ cmp <input file> <output file>
- $ python vorbisplay.py <an Ogg Vorbis file>
-</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://gstreamer.freedesktop.org/documentation/"/> 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>) -> <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>() ->
- <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>
+++ /dev/null
-<?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"/>
-
-<!--=====================================================================-->
-
-<section id="homepage">
- <title>Gst-Python Homepage</title>
- <para><ulink url="http://gstreamer.freedesktop.org/bindings/python.html"/></para>
-</section>
-
-<!--=====================================================================-->
-
-</article>
+++ /dev/null
-<?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>
+++ /dev/null
-<?xml version='1.0'?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version='1.0'>
-<xsl:param name="section.label.includes.component.label" select="1"/>
-<xsl:param name="use.id.as.filename" select="1"/>
-</xsl:stylesheet>
+++ /dev/null
-<?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>
+++ /dev/null
-<!ENTITY version "@VERSION@">
-<!ENTITY pubdate "July 10, 2003">
+++ /dev/null
-<?xml version='1.0'?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version='1.0'>
-
-<xsl:param name="html.stylesheet" select="'gst-python.css'"/>
-<xsl:param name="linenumbering.extension" select="1"/>
-
-</xsl:stylesheet>
+++ /dev/null
-Release Checklist
------------------
-
-(procedure while just working on trunk)
-
-- update version in configure.ac
-- update date in docs/gst-python.ent.in
-- add revhistory revision in docs/README.xml if needed
-- add entry for current version to docs/NEWS.xml
-- 'make distcheck'
- - fix problems and repeat as needed
-- tag cvs ('cvs tag RELEASE-x_y_z')
-- GPG sign tarball
-- upload tarball to sourceforge
-- build release notes:
- - '(cd docs/; make RELNOTES.txt)'
-- announce:
- - gstreamer-{devel, announce}
- - freshmeat
+++ /dev/null
-<?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>
+++ /dev/null
-<?xml version='1.0'?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version='1.0'>
-
-<xsl:param name="body.margin.top">0.5in</xsl:param>
-
-<xsl:template name="is.graphic.extension">
- <xsl:param name="ext"></xsl:param>
- <xsl:if test="$ext = 'png'
- or $ext = 'pdf'
- or $ext = 'jpeg'
- or $ext = 'gif'
- or $ext = 'tif'
- or $ext = 'tiff'
- or $ext = 'bmp'">1</xsl:if>
-</xsl:template>
-
-</xsl:stylesheet>