gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash/packaging/doc gnashuser.html.in gnashuser...


From: Rob Savoye
Subject: [Gnash-commit] gnash/packaging/doc gnashuser.html.in gnashuser...
Date: Sat, 01 Mar 2008 21:27:19 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    08/03/01 21:27:18

Modified files:
        packaging/doc  : gnashuser.html.in gnashuser.ref.in 

Log message:
        Updated versions.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gnashuser.html.in?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gnashuser.ref.in?cvsroot=gnash&r1=1.1&r2=1.2

Patches:
Index: gnashuser.html.in
===================================================================
RCS file: /sources/gnash/gnash/packaging/doc/gnashuser.html.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- gnashuser.html.in   1 Mar 2008 15:18:22 -0000       1.1
+++ gnashuser.html.in   1 Mar 2008 21:27:18 -0000       1.2
@@ -1,17 +1,17 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash User Manual</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.72.0"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" 
lang="en"><div class="titlepage"><div><div><h1 class="title"><a 
name="index"></a>Gnash User Manual</h1></div><div><p class="releaseinfo">
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash User Manual</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" 
lang="en"><div class="titlepage"><div><div><h1 class="title"><a 
name="index"></a>Gnash User Manual</h1></div><div><p class="releaseinfo">
         This manual describes version 0.8.2 of Gnash.
     </p></div><div><p class="copyright">Copyright © 2005, 2006, 2007, 2008 
Free Software Foundation</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>
     Permission is granted to copy, distribute and/or modify this document
-    under the terms of the <a href="#fdl" title="Appendix A. GNU Free 
Documentation License"><em class="citetitle">GNU
+    under the terms of the <a class="link" href="#fdl" title="Appendix A. GNU 
Free Documentation License"><em class="citetitle">GNU
     Free Documentation License</em></a>, Version 1.1 or any later
     version published by the Free Software Foundation with no Invariant
     Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
     a copy of the GFDL at this 
-    <a href="#fdl" title="Appendix A. GNU Free Documentation License">link</a> 
or in the file COPYING-DOCS
+    <a class="link" href="#fdl" title="Appendix A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
     distributed with this manual.
    </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
Gnash User Manual version 0.1</td><td align="left">Feb 2008</td></tr><tr><td 
align="left" colspan="2"> 
       <p class="author">Rob Savoye
-      <code class="email">&lt;<a 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+      <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
       The end user parts of the manual have been pulled out of
       the original version of the manual, and rewritten.
       </p>
@@ -74,7 +74,7 @@
       time, so often builds from a development snapshot will work
       when using the older release packaged in your distribution
       doesn't. You can find daily snapshots of the latest CVS tree
-      at: <a href="http://www.gnashdev.org/dev_snapshots/"; target="_top">
+      at: <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">
       http://www.gnashdev.org/dev_snapshots</a>.
     </p><p>
       Gnash uses ffmpeg for codecs, so any file supported by Mplayer
@@ -459,8 +459,8 @@
 
   </pre></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="build"></a>Chapter 3. 
Installing and Configuring Gnash</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#gettingsource">Getting the Source</a></span></dt><dt><span 
class="sect2"><a href="#getcodecs">Getting Codec 
Support</a></span></dt></dl></dd></dl></div><p>
     There are two ways of installing Gnash:
-    <a href="#">using a package manager</a>
-    or <a href="#gettingsource" title="Getting the Source">installing from 
source</a>.
+    <a class="link" href="#">using a package manager</a>
+    or <a class="link" href="#gettingsource" title="Getting the 
Source">installing from source</a>.
   </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="requirements"></a>Requirements</h2></div></div></div><p>
       Before downloading and installing Gnash, check that your
       hardware and software meet the following requirements.
@@ -476,7 +476,7 @@
          </p></li><li><p>
            128 MB RAM
          </p></li><li><p>
-           Video &#8212; Gnash will run on anything from a raw frame
+           Gnash will run on anything from a raw frame
            buffer up to an OpenGL-supporting graphics card.
          </p></li></ul></div><p>
        The following table provides a list of the Operating System/CPU
@@ -523,47 +523,47 @@
        operating system, it is better to download the source code and build
        Gnash locally. 
       </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="gettingsource"></a>Getting the 
Source</h3></div></div></div><p>
-         Gnash is available as a <a href="#sourcereleases" 
title="Releases">release
-         tarball</a>, a <a href="#sourcerepo" title="Repository">development 
-         checkout</a>, or a <a href="#sourcesnapshot" 
title="Snapshot">development
+         Gnash is available as a <a class="link" href="#sourcereleases" 
title="Releases">release
+         tarball</a>, a <a class="link" href="#sourcerepo" 
title="Repository">development 
+         checkout</a>, or a <a class="link" href="#sourcesnapshot" 
title="Snapshot">development
          snapshot</a>.
        </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="sourcereleases"></a>Releases</h4></div></div></div><p>
            The source can be acquired from a
-           <a href="http://www.gnu.org/prep/ftp.html"; target="_top">GNU FTP
+           <a class="ulink" href="http://www.gnu.org/prep/ftp.html"; 
target="_top">GNU FTP
            Mirror</a>.  The release version is intended to be
            stable, and is probably your best choice if the release took
            place recently.  If you need features or fixes which were
            introduced after the release, consider a 
-           <a href="#sourcerepo" title="Repository">CVS checkout</a> or the
-           <a href="#sourcesnapshot" title="Snapshot">daily snapshot</a>.
+           <a class="link" href="#sourcerepo" title="Repository">CVS 
checkout</a> or the
+           <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a>.
          </p><p>
            To download, select a mirror near you, then choose the
            <code class="filename">gnash</code> directory.
          </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcesnapshot"></a>Snapshot</h4></div></div></div><p>
            The daily development snapshot can be downloaded from
-           <a href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">http://www.gnashdev.org/dev_snapshots/</a>.
+           <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">http://www.gnashdev.org/dev_snapshots/</a>.
            This is the best option if you need changes which were introduced
-           after the <a href="#sourcereleases" title="Releases">last 
release</a> of
-           Gnash, but are unable to <a href="#sourcerepo" 
title="Repository">download
+           after the <a class="link" href="#sourcereleases" 
title="Releases">last release</a> of
+           Gnash, but are unable to <a class="link" href="#sourcerepo" 
title="Repository">download
            directly from the repository.</a>
          </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcerepo"></a>Repository</h4></div></div></div><p>
            The latest development sources are available via
            anonymous CVS.  This is recommended
            if you need features or bug fixes which were introduced after
-           the <a href="#sourcereleases" title="Releases">last release</a>.  
Look at
-           the <a href="#sourcesnapshot" title="Snapshot">daily snapshot</a> 
if you
+           the <a class="link" href="#sourcereleases" title="Releases">last 
release</a>.  Look at
+           the <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a> if you
            experience difficulty accessing the repository.
          </p><p>
            To download via anonymous CVS, first set the
-           environment variable <span><strong 
class="command">CVS_RSH</strong></span> to
-           <span><strong class="command">ssh</strong></span>, then check out 
the source code.
+           environment variable <span 
class="command"><strong>CVS_RSH</strong></span> to
+           <span class="command"><strong>ssh</strong></span>, then check out 
the source code.
            The example below uses the GNU Bourne-Again shell (bash): 
          </p><pre class="screen">
            export CVS_RSH="ssh"
            cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
          </pre><p>
            It is also possible to browse the repository
-           <a href="http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash"; 
target="_top">http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash</a> on the 
web.
+           <a class="ulink" 
href="http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash"; 
target="_top">http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash</a> on the 
web.
          </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="getcodecs"></a>Getting 
Codec Support</h3></div></div></div><p>
          Gnash requires codec support to handle audio and video
          correctly. Some platforms like Ubuntu or Fedora under the
@@ -580,7 +580,7 @@
     the player, feedback is critical to any successful project.  Not
     only does it let us know that people use Gnash, but it helps us  
     understand the community's needs. Gnash uses a bug tracker on
-    <a href="http://savannah.gnu.org"; 
target="_top">http://savannah.gnu.org</a> to manage these reports.
+    <a class="ulink" href="http://savannah.gnu.org"; 
target="_top">http://savannah.gnu.org</a> to manage these reports.
   </p><p>
     When filing a report, please follow the guidelines below. The better
     your bug report is, the easier it will be for the developers to
@@ -599,11 +599,11 @@
     </p><p>
       You can get a fresh binary package of Gnash, as well as recent 
       source packages from
-      <a href="http://www.getgnash.org/packages/"; target="_top">
+      <a class="ulink" href="http://www.getgnash.org/packages/"; target="_top">
        http://www.getgnash.org/packages
       </a>. 
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_search"></a>Determine if the bug was previously 
reported</h2></div></div></div><p>
-      Search the <a href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">Gnash
+      Search the <a class="ulink" 
href="https://savannah.gnu.org/bugs/?group=gnash"; target="_top">Gnash
       bug tracker</a> to see if the bug has already been identified.
     </p><p>
       If the issue has already been reported, you should not file
@@ -640,7 +640,7 @@
       to the developers.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_file"></a>Filing a bug report</h2></div></div></div><p>
       After following the steps described above, you can file a bug report at 
-      <a href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">https://savannah.gnu.org/bugs/?group=gnash</a>.
+      <a class="ulink" href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">https://savannah.gnu.org/bugs/?group=gnash</a>.
     </p></div></div><div class="glossary"><div class="titlepage"><div><div><h2 
class="title"><a name="glossary"></a>Glossary</h2></div></div></div><div 
class="glossdiv"><h3 class="title">A</h3><dl><dt>
        ActionScript
       </dt><dd><p>
@@ -781,13 +781,13 @@
        Kpart
       </dt><dd><p>
          <span class="emphasis"><em>Kpart</em></span> is a plugin for 
Konqueror which is
-         enabled with the <a href="#">configuration option</a>
+         enabled with the <a class="link" href="#">configuration option</a>
          <span class="emphasis"><em>--enable-klash</em></span>.
        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">L</h3><dl><dt>
        libmad
       </dt><dd><p>
-         libmad is a mp3-decoding library, which can be used by Gnash's
-         sound handler to decode mp3-audio.  
+         libmad is a mp3-decoding library, which used to be an option for Gnash
+         handling of sound (dropped since 0.8.2).
        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">M</h3><dl><dt>
        Mesa
       </dt><dd><p>
@@ -891,12 +891,12 @@
          configuration of Gnash when compiling.
        </p><p>
          There are currently two sound handlers available in <span 
class="application">Gnash</span>:
-         SDL and Gstreamer.  The SDL sound handler uses ffmpeg or 
-         libmad for decoding mp3-audio, although it can be built without 
-         mp3-support. The Gstreamer-sound handler uses the available 
+         ffmpeg and Gstreamer.  The ffmpeg sound handler uses SDL for
+         mixing.
+         The Gstreamer-sound handler uses the available 
          plugins to decode the audio, so it might not work if some 
-         important plugins are missing.  The SDL sound handler is 
-         recommended.  
+         important plugins are missing.  The GST sound handler is 
+         recommended (the default).
        </p></dd><dt>
        sprite
       </dt><dd><p>
@@ -938,13 +938,13 @@
         <span class="application">Gnash</span> is maintained by Rob Savoye. 
Other active developers
        are: Sandro Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad
        Musick, Benjamin Wolsey, and Zou Lunkai. Please send all
-       comments and suggestions to <code class="email">&lt;<a 
href="mailto:address@hidden";>address@hidden
+       comments and suggestions to <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden
        </a>&gt;</code>. Past and sometimes current developers are Tomas
        Groth and Markus Gothe.
     </p><p>
         <span class="application">Gnash</span> was initially derived from 
<span class="application">GameSWF</span>.
         <span class="application">GameSWF</span> is maintained by
-        Thatcher Ulrich <code class="email">&lt;<a 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
+        Thatcher Ulrich <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
         people contributed to <span class="application">GameSWF</span>:
         Mike Shaver, Thierry Berger-Perrin,
        Ignacio Castaño, Willem Kokke, Vitaly Alexeev, Alexander Streit, 
@@ -994,7 +994,7 @@
       language.
     </p><p><a name="fdl-secondary"></a>
       A "Secondary Section" is a named appendix or a
-      front-matter section of the <a href="#fdl-document">Document</a> that 
deals exclusively
+      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
       with the relationship of the publishers or authors of the
       Document to the Document's overall subject (or to related
       matters) and contains nothing that could fall directly within
@@ -1005,17 +1005,17 @@
       legal, commercial, philosophical, ethical or political position
       regarding them.
     </p><p><a name="fdl-invariant"></a>
-      The "Invariant Sections" are certain <a href="#fdl-secondary"> Secondary 
Sections</a> whose titles
+      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
       are designated, as being those of Invariant Sections, in the
-      notice that says that the <a href="#fdl-document">Document</a> is 
released under this
+      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
       License.
     </p><p><a name="fdl-cover-texts"></a>
       The "Cover Texts" are certain short passages of
       text that are listed, as Front-Cover Texts or Back-Cover Texts,
-      in the notice that says that the <a href="#fdl-document">Document</a> is 
released under this
+      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
       License.
     </p><p><a name="fdl-transparent"></a>
-      A "Transparent" copy of the <a href="#fdl-document"> Document</a> means 
a machine-readable
+      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
       copy, represented in a format whose specification is available
       to the general public, whose contents can be viewed and edited
       directly and straightforwardly with generic text editors or (for
@@ -1047,7 +1047,7 @@
       most prominent appearance of the work's title, preceding the
       beginning of the body of the text.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
-      You may copy and distribute the <a href="#fdl-document">Document</a> in 
any medium, either
+      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
       commercially or noncommercially, provided that this License, the
       copyright notices, and the license notice saying this License
       applies to the Document are reproduced in all copies, and that
@@ -1056,13 +1056,13 @@
       control the reading or further copying of the copies you make or
       distribute. However, you may accept compensation in exchange for
       copies. If you distribute a large enough number of copies you
-      must also follow the conditions in <a href="#fdl-section3" title="3. 
COPYING IN QUANTITY">section 3</a>.
+      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
     </p><p>
       You may also lend copies, under the same conditions stated
       above, and you may publicly display copies.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
-      If you publish printed copies of the <a 
href="#fdl-document">Document</a> numbering more than 100,
-      and the Document's license notice requires <a 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
+      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
       the copies in covers that carry, clearly and legibly, all these
       Cover Texts: Front-Cover Texts on the front cover, and
       Back-Cover Texts on the back cover. Both covers must also
@@ -1071,7 +1071,7 @@
       words of the title equally prominent and visible. You may add
       other material on the covers in addition. Copying with changes
       limited to the covers, as long as they preserve the title of the
-      <a href="#fdl-document">Document</a> and satisfy these
+      <a class="link" href="#fdl-document">Document</a> and satisfy these
       conditions, can be treated as verbatim copying in other
       respects.
     </p><p>
@@ -1080,8 +1080,8 @@
       reasonably) on the actual cover, and continue the rest onto
       adjacent pages.
     </p><p>
-      If you publish or distribute <a href="#fdl-transparent">Opaque</a> 
copies of the <a href="#fdl-document">Document</a> numbering more than 100,
-      you must either include a machine-readable <a 
href="#fdl-transparent">Transparent</a> copy along with
+      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
       each Opaque copy, or state in or with each Opaque copy a
       publicly-accessible computer-network location containing a
       complete Transparent copy of the Document, free of added
@@ -1096,68 +1096,68 @@
       public.
     </p><p>
       It is requested, but not required, that you contact the authors
-      of the <a href="#fdl-document">Document</a> well before
+      of the <a class="link" href="#fdl-document">Document</a> well before
       redistributing any large number of copies, to give them a chance
       to provide you with an updated version of the Document.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
-      You may copy and distribute a <a href="#fdl-modified">Modified 
Version</a> of the <a href="#fdl-document">Document</a> under the conditions of
-      sections <a href="#fdl-section2" title="2. VERBATIM COPYING">2</a> and 
<a href="#fdl-section3" title="3. COPYING IN QUANTITY">3</a> above, provided 
that you release
+      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
+      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
       the Modified Version under precisely this License, with the
       Modified Version filling the role of the Document, thus
       licensing distribution and modification of the Modified Version
       to whoever possesses a copy of it. In addition, you must do
       these things in the Modified Version:
     </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
-           Use in the <a href="#fdl-title-page">Title
+           Use in the <a class="link" href="#fdl-title-page">Title
            Page</a> (and on the covers, if any) a title distinct
-           from that of the <a href="#fdl-document">Document</a>, and from 
those of
+           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
            previous versions (which should, if there were any, be
            listed in the History section of the Document). You may
            use the same title as a previous version if the original
            publisher of that version gives permission.
          </p></li><li style="list-style-type: circle"><p><b>B. </b>
-           List on the <a href="#fdl-title-page">Title
+           List on the <a class="link" href="#fdl-title-page">Title
            Page</a>, as authors, one or more persons or entities
            responsible for authorship of the modifications in the
-           <a href="#fdl-modified">Modified Version</a>,
+           <a class="link" href="#fdl-modified">Modified Version</a>,
            together with at least five of the principal authors of
-           the <a href="#fdl-document">Document</a> (all of
+           the <a class="link" href="#fdl-document">Document</a> (all of
            its principal authors, if it has less than five).
          </p></li><li style="list-style-type: circle"><p><b>C. </b>
-           State on the <a href="#fdl-title-page">Title
-           Page</a> the name of the publisher of the <a 
href="#fdl-modified">Modified Version</a>, as the
+           State on the <a class="link" href="#fdl-title-page">Title
+           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
            publisher.
          </p></li><li style="list-style-type: circle"><p><b>D. </b>
-           Preserve all the copyright notices of the <a 
href="#fdl-document">Document</a>.
+           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
          </p></li><li style="list-style-type: circle"><p><b>E. </b>
            Add an appropriate copyright notice for your modifications
            adjacent to the other copyright notices.
          </p></li><li style="list-style-type: circle"><p><b>F. </b>
            Include, immediately after the copyright notices, a
            license notice giving the public permission to use the
-           <a href="#fdl-modified">Modified Version</a> under
+           <a class="link" href="#fdl-modified">Modified Version</a> under
            the terms of this License, in the form shown in the
            Addendum below.
          </p></li><li style="list-style-type: circle"><p><b>G. </b>
-           Preserve in that license notice the full lists of <a 
href="#fdl-invariant"> Invariant Sections</a> and
-           required <a href="#fdl-cover-texts">Cover
-           Texts</a> given in the <a href="#fdl-document">Document's</a> 
license notice.
+           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
+           required <a class="link" href="#fdl-cover-texts">Cover
+           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
          </p></li><li style="list-style-type: circle"><p><b>H. </b>
            Include an unaltered copy of this License.
          </p></li><li style="list-style-type: circle"><p><b>I. </b>
            Preserve the section entitled "History", and
            its title, and add to it an item stating at least the
-           title, year, new authors, and publisher of the <a 
href="#fdl-modified">Modified Version </a>as given on
-           the <a href="#fdl-title-page">Title Page</a>.  If
+           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
+           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
            there is no section entitled "History" in the
-           <a href="#fdl-document">Document</a>, create one
+           <a class="link" href="#fdl-document">Document</a>, create one
            stating the title, year, authors, and publisher of the
            Document as given on its Title Page, then add an item
            describing the Modified Version as stated in the previous
            sentence.
          </p></li><li style="list-style-type: circle"><p><b>J. </b>
-           Preserve the network location, if any, given in the <a 
href="#fdl-document">Document</a> for public access
-           to a <a href="#fdl-transparent">Transparent</a>
+           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
+           to a <a class="link" href="#fdl-transparent">Transparent</a>
            copy of the Document, and likewise the network locations
            given in the Document for previous versions it was based
            on. These may be placed in the "History"
@@ -1172,64 +1172,64 @@
            each of the contributor acknowledgements and/or
            dedications given therein.
          </p></li><li style="list-style-type: circle"><p><b>L. </b>
-           Preserve all the <a href="#fdl-invariant">Invariant
-           Sections</a> of the <a href="#fdl-document">Document</a>, unaltered 
in their
+           Preserve all the <a class="link" href="#fdl-invariant">Invariant
+           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
            text and in their titles.  Section numbers or the
            equivalent are not considered part of the section titles.
          </p></li><li style="list-style-type: circle"><p><b>M. </b>
            Delete any section entitled
            "Endorsements". Such a section may not be
-           included in the <a href="#fdl-modified">Modified
+           included in the <a class="link" href="#fdl-modified">Modified
            Version</a>.
          </p></li><li style="list-style-type: circle"><p><b>N. </b>
            Do not retitle any existing section as
            "Endorsements" or to conflict in title with
-           any <a href="#fdl-invariant">Invariant
+           any <a class="link" href="#fdl-invariant">Invariant
            Section</a>.
          </p></li></ul></div><p>
-      If the <a href="#fdl-modified">Modified Version</a>
+      If the <a class="link" href="#fdl-modified">Modified Version</a>
       includes new front-matter sections or appendices that qualify as
-      <a href="#fdl-secondary">Secondary Sections</a> and
+      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
       contain no material copied from the Document, you may at your
       option designate some or all of these sections as invariant. To
-      do this, add their titles to the list of <a 
href="#fdl-invariant">Invariant Sections</a> in the
+      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
       Modified Version's license notice.  These titles must be
       distinct from any other section titles.
     </p><p>
       You may add a section entitled "Endorsements",
-      provided it contains nothing but endorsements of your <a 
href="#fdl-modified">Modified Version</a> by various
+      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
       parties--for example, statements of peer review or that the text
       has been approved by an organization as the authoritative
       definition of a standard.
     </p><p>
-      You may add a passage of up to five words as a <a 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
-      of up to 25 words as a <a href="#fdl-cover-texts">Back-Cover Text</a>, 
to the end of
-      the list of <a href="#fdl-cover-texts">Cover Texts</a>
-      in the <a href="#fdl-modified">Modified Version</a>.
+      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
+      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
+      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
+      in the <a class="link" href="#fdl-modified">Modified Version</a>.
       Only one passage of Front-Cover Text and one of Back-Cover Text
       may be added by (or through arrangements made by) any one
-      entity. If the <a href="#fdl-document">Document</a>
+      entity. If the <a class="link" href="#fdl-document">Document</a>
       already includes a cover text for the same cover, previously
       added by you or by arrangement made by the same entity you are
       acting on behalf of, you may not add another; but you may
       replace the old one, on explicit permission from the previous
       publisher that added the old one.
     </p><p>
-      The author(s) and publisher(s) of the <a 
href="#fdl-document">Document</a> do not by this License
+      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
       give permission to use their names for publicity for or to
-      assert or imply endorsement of any <a href="#fdl-modified">Modified 
Version </a>.
+      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
-      You may combine the <a href="#fdl-document">Document</a>
+      You may combine the <a class="link" href="#fdl-document">Document</a>
       with other documents released under this License, under the
-      terms defined in <a href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
+      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
       above for modified versions, provided that you include in the
-      combination all of the <a href="#fdl-invariant">Invariant
+      combination all of the <a class="link" href="#fdl-invariant">Invariant
       Sections</a> of all of the original documents, unmodified,
       and list them all as Invariant Sections of your combined work in
       its license notice.
     </p><p>
       The combined work need only contain one copy of this License,
-      and multiple identical <a href="#fdl-invariant">Invariant
+      and multiple identical <a class="link" href="#fdl-invariant">Invariant
       Sections</a> may be replaced with a single copy. If there are
       multiple Invariant Sections with the same name but different
       contents, make the title of each such section unique by adding
@@ -1246,7 +1246,7 @@
       and any sections entitled "Dedications".  You must
       delete all sections entitled "Endorsements."
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
-      You may make a collection consisting of the <a 
href="#fdl-document">Document</a> and other documents
+      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
       released under this License, and replace the individual copies
       of this License in the various documents with a single copy that
       is included in the collection, provided that you follow the
@@ -1259,16 +1259,16 @@
       follow this License in all other respects regarding verbatim
       copying of that document.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
-      A compilation of the <a href="#fdl-document">Document</a> or its 
derivatives with
+      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
       other separate and independent documents or works, in or on a
       volume of a storage or distribution medium, does not as a whole
-      count as a <a href="#fdl-modified">Modified Version</a>
+      count as a <a class="link" href="#fdl-modified">Modified Version</a>
       of the Document, provided no compilation copyright is claimed
       for the compilation.  Such a compilation is called an
       "aggregate", and this License does not apply to the
       other self-contained works thus compiled with the Document , on
       account of their being thus compiled, if they are not themselves
-      derivative works of the Document.  If the <a 
href="#fdl-cover-texts">Cover Text</a> requirement of <a href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a> is applicable to these
+      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
       copies of the Document, then if the Document is less than one
       quarter of the entire aggregate, the Document's Cover Texts may
       be placed on covers that surround only the Document within the
@@ -1276,7 +1276,7 @@
       aggregate.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
       Translation is considered a kind of modification, so you may
-      distribute translations of the <a href="#fdl-document">Document</a> 
under the terms of <a href="#fdl-section4" title="4. MODIFICATIONS">section 
4</a>. Replacing <a href="#fdl-invariant"> Invariant Sections</a> with
+      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
       translations requires special permission from their copyright
       holders, but you may include translations of some or all
       Invariant Sections in addition to the original versions of these
@@ -1286,7 +1286,7 @@
       translation and the original English version of this License,
       the original English version will prevail.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
-      You may not copy, modify, sublicense, or distribute the <a 
href="#fdl-document">Document</a> except as expressly
+      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
       provided for under this License. Any other attempt to copy,
       modify, sublicense or distribute the Document is void, and will
       automatically terminate your rights under this License. However,
@@ -1294,14 +1294,14 @@
       License will not have their licenses terminated so long as such
       parties remain in full compliance.
     </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
-      The <a href="http://www.gnu.org/fsf/fsf.html"; target="_top">Free Software
+      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
       Foundation</a> may publish new, revised versions of the GNU
       Free Documentation License from time to time. Such new versions
       will be similar in spirit to the present version, but may differ
-      in detail to address new problems or concerns. See <a 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
+      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
     </p><p>
       Each version of the License is given a distinguishing version
-      number. If the <a href="#fdl-document">Document</a>
+      number. If the <a class="link" href="#fdl-document">Document</a>
       specifies that a particular numbered version of this License
       "or any later version" applies to it, you have the
       option of following the terms and conditions either of that
@@ -1320,13 +1320,13 @@
        Permission is granted to copy, distribute and/or modify this
        document under the terms of the GNU Free Documentation
        License, Version 1.1 or any later version published by the
-       Free Software Foundation; with no<a href="#fdl-invariant">Invariant 
Sections</a>, with no <a href="#fdl-cover-texts">Front-Cover Texts</a>,
-       and with no <a href="#fdl-cover-texts">Back-Cover
+       Free Software Foundation; with no<a class="link" 
href="#fdl-invariant">Invariant Sections</a>, with no <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a>,
+       and with no <a class="link" href="#fdl-cover-texts">Back-Cover
        Texts</a>. A copy of the license is included in
        the section entitled "GNU Free Documentation License".
       </p></blockquote></div><p>
       If your document contains nontrivial examples of program code,
       we recommend releasing these examples in parallel under your
-      choice of free software license, such as the <a 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
+      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
       License</a>, to permit their use in free software.
     </p></div></div></div></body></html>

Index: gnashuser.ref.in
===================================================================
RCS file: /sources/gnash/gnash/packaging/doc/gnashuser.ref.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- gnashuser.ref.in    1 Mar 2008 15:18:23 -0000       1.1
+++ gnashuser.ref.in    1 Mar 2008 21:27:18 -0000       1.2
@@ -1,771 +1,4583 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash Reference Manual</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.72.0"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" 
lang="en"><div class="titlepage"><div><div><h1 class="title"><a 
name="index"></a>Gnash Reference Manual</h1></div><div><p class="releaseinfo">
-        This manual describes version 0.8.2 of Gnash.
-    </p></div><div><p class="copyright">Copyright © 2005, 2006, 2007, 2008 
Free Software Foundation</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>
-    Permission is granted to copy, distribute and/or modify this document
-    under the terms of the <a href="#fdl" title="Appendix A. GNU Free 
Documentation License"><em class="citetitle">GNU
-    Free Documentation License</em></a>, Version 1.1 or any later
-    version published by the Free Software Foundation with no Invariant
-    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
-    a copy of the GFDL at this 
-    <a href="#fdl" title="Appendix A. GNU Free Documentation License">link</a> 
or in the file COPYING-DOCS
-    distributed with this manual.
-   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
Gnash User Manual version 0.4</td><td align="left">Feb 2008</td></tr><tr><td 
align="left" colspan="2"> 
-      <p class="author">Rob Savoye
-      <code class="email">&lt;<a 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
-      The end user parts of the manual have been pulled out of
-      the original version of the manual, and rewritten. This
-      is now a reference manual only.
-      </p>
-      
-      <p class="publisher">Open Media Now! Foundation</p>
-    </td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table 
of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1. 
Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported ?</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#rtmp">2. RTMP 
Protocol</a></span></dt><dd><dl><dt><span class="sect1"><a href="#amf">AMF 
Format</a></span></dt></dl></dd><dt><span class="chapter"><a href="#authors">3. 
Authors</a></span></dt><dt><span class="appendix"><a href="#fdl">A. GNU Free 
Documentation License</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section1">1. APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section2">2. VERBATIM 
COPYING</a></span></dt><dt><span class="sect1"><a href="#fdl-section3">3. 
COPYING IN QUANTITY</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section5">5. COMBINING DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section6">6. COLLECTIONS OF 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section7">7. 
AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section8">8. TRANSLATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section9">9. TERMINATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section10">10. FUTURE REVISIONS OF THIS 
LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><div 
class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a 
name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported ?</a></span></dt></dl></div><p>
-    <span class="application">Gnash</span> is a free SWF movie player.  It is 
available as a
-    stand-alone application or as a plugin for several popular
-    web browsers. It supports playing media from a disk or streaming
-    over a network connection. Some popular video sharing sites like
-    YouTube are supported from a wide vaariety of devices from
-    embedded ones to modern desktops.
-  </p><p>
-    <span class="application">Gnash</span> has a better focus on security, 
allowing the user tight
-    control of all network or disk based I/O. Gnash also supports
-    extending ActionScript by creating your own. You can write
-    wrappers for any development library, and import them into the
-    player much like perl or python does.
-  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="audience"></a>Audience</h2></div></div></div><p>
-      This manual is primarily focused on users interested in how to
-      get Gnash installed from a package, and basic usage as a web
-      browser plugin. For more technical details, please refer to the
-      Gnash Reference manual.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="runs-on"></a>What Is Supported ?</h2></div></div></div><p>
-      Gnash is known to compile for most any POSIX and ANSI C++
-      conforming system if you have all the dependent libraries
-      installed. Systems we test on, and which Gnash is know to
-      run on are Ubuntu, Fedora, Debian, OpenBSD, NetBSD, FreeBSD,
-      Win32, and Darwin (OSX) primarily. Occasionally other platforms
-      are built, primarily by those distribution maintainers. This
-      includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, and
-      Gentoo.
-    </p><p>
-      Gnash is a capable of reading up to SWF v9 files and opcodes,
-      but primarily supports SWF v7, with better SWF v8 and v9
-      support under heavy developement. With the 0.8.2 release,
-      Gnash includes initial parser support for SWF v8 and v9.
-      Not all ActionScript 2 classes are implemented yet, but all of the
-      most heavily used ones are. Many ActionScript 2 classes are
-      partially implemented; there is support for all of the
-      commonly used methods of each class.
-    </p><p>
+START-INFO-DIR-ENTRY
+This is gnash_ref.info, produced by makeinfo version 4.11 from gnash_ref.texi.
+
+* Gnash Reference Manual: (gnash_ref).   Gnash
+END-INFO-DIR-ENTRY
+
+
+File: gnash_ref.info,  Node: Top,  Next: Introduction,  Up: (dir)
+
+Gnash Reference Manual
+**********************
+
+* Menu:
+
+* Introduction::
+* Building from Source::
+* Software Internals::
+* Gnash Extensions::
+* RTMP Protocol::
+* Mozilla/Firefox NSAPI Plugin::
+* Appendix::
+* Authors::
+* GNU Free Documentation License::
+
+--- The Detailed Node Listing ---
+
+Introduction
+
+* Audience::
+* What Is Supported ?::
+
+Building from Source
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+Software Internals
+
+* A Tour of Gnash::
+* Sound handling in Gnash::
+* Testing : Testing.
+* Adding New ActionScript Class::
+
+Gnash Extensions
+
+* Creating A New Extension::
+* Debugging An Extension::
+* Included Extensions::
+
+RTMP Protocol
+
+* AMF Format::
+
+Mozilla/Firefox NSAPI Plugin
+
+* Plugin C API::
+* Plugin C++ API::
+* OpenGL and Threads::
+* Plugin Event Handling::
+
+Appendix
+
+* Code Style::
+
+GNU Free Documentation License
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash_ref.info,  Node: Introduction,  Next: Building from Source,  Prev: 
Top,  Up: Top
+
+1 Introduction
+**************
+
+Gnash is a free SWF movie player.  It is available as a stand-alone
+application or as a plugin for several popular web browsers. It
+supports playing media from a disk or streaming over a network
+connection. Some popular video sharing sites like YouTube are supported
+from a wide vaariety of devices from embedded ones to modern desktops.
+
+   Gnash has a better focus on security, allowing the user tight
+control of all network or disk based I/O. Gnash also supports extending
+ActionScript by creating your own. You can write wrappers for any
+development library, and import them into the player much like perl or
+python does.
+
+* Menu:
+
+* Audience::
+* What Is Supported ?::
+
+
+File: gnash_ref.info,  Node: Audience,  Next: What Is Supported ?,  Up: 
Introduction
+
+1.1 Audience
+============
+
+This manual is primarily focused on users interested in how to get
+Gnash installed from a package, and basic usage as a web browser
+plugin. For more technical details, please refer to the Gnash Reference
+manual.
+
+
+File: gnash_ref.info,  Node: What Is Supported ?,  Prev: Audience,  Up: 
Introduction
+
+1.2 What Is Supported ?
+=======================
+
+Gnash is known to compile for most any POSIX and ANSI C++ conforming
+system if you have all the dependent libraries installed. Systems we
+test on, and which Gnash is know to run on are Ubuntu, Fedora, Debian,
+OpenBSD, NetBSD, FreeBSD, Win32, and Darwin (OSX) primarily.
+Occasionally other platforms are built, primarily by those distribution
+maintainers. This includes BeOS, Haiku, Syllable, OS/2, Solaris,
+Slackware, and Gentoo.
+
+   Gnash is a capable of reading up to SWF v9 files and opcodes, but
+primarily supports SWF v7, with better SWF v8 and v9 support under
+heavy developement. With the 0.8.2 release, Gnash includes initial
+parser support for SWF v8 and v9.  Not all ActionScript 2 classes are
+implemented yet, but all of the most heavily used ones are. Many
+ActionScript 2 classes are partially implemented; there is support for
+all of the commonly used methods of each class.
+
       Gnash has implemented about 80% of ActionScript v. 2.0, and has
-      begun implementing ActionScript v. 3.0. Gnash supports the
-      majority of Flash opcodes up to SWF version 9, and a wide
-      sampling of ActionScript classes for SWF version 8.
-    </p><p>
-      As ActionsScript 3 is a more developed version of
-      ActionScript 2, many of the same classes work for
-      both. Support has been added to Gnash's ActionScript library
-      to support the new ActionScript 3 filters, which get applied
-      to every class. Implementing ActionScript clases is often the
-      easiest way for new Gnash developers to make a contribution
-      without a deep internal knpowledge of Gnash.
-    </p><p>
-      Gnash has included video support since early 2007, but this is
-      an every changing field of reverse engineering. Many of the
-      popular video sharing sites use SWF v8 or v9, which Gnash
-      still has imperfect support for. This is improving all the
-      time, so often builds from a development snapshot will work
-      when using the older release packaged in your distribution
-      doesn't. You can find daily snapshots of the latest CVS tree
-      at: <a href="http://www.gnashdev.org/dev_snapshots/"; target="_top">
-      http://www.gnashdev.org/dev_snapshots</a>.
-    </p><p>
+begun implementing ActionScript v. 3.0. Gnash supports the majority of
+Flash opcodes up to SWF version 9, and a wide sampling of ActionScript
+classes for SWF version 8.
+
+   As ActionsScript 3 is a more developed version of ActionScript 2,
+many of the same classes work for both. Support has been added to
+Gnash's ActionScript library to support the new ActionScript 3 filters,
+which get applied to every class. Implementing ActionScript clases is
+often the easiest way for new Gnash developers to make a contribution
+without a deep internal knpowledge of Gnash.
+
+   Gnash has included video support since early 2007, but this is an
+every changing field of reverse engineering. Many of the popular video
+sharing sites use SWF v8 or v9, which Gnash still has imperfect support
+for. This is improving all the time, so often builds from a development
+snapshot will work when using the older release packaged in your
+distribution doesn't. You can find daily snapshots of the latest CVS
+tree at: http://www.gnashdev.org/dev_snapshots
+(http://www.gnashdev.org/dev_snapshots/).
+
       Gnash uses ffmpeg for codecs, so any file supported by Mplayer
-      should work with Gnash. Gnash supports the loading of patent
-      free codecs like Ogg Vorbis or Theora from disk based files,
-      while work is being done to support these codecs when embedded
-      in a SWF file. Ffmpeg contains the codecs used by the current
-      SWF defintion, FLV, VP6 (ON2), H.263, H.264, and MP3.
-    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="rtmp"></a>Chapter 2. 
RTMP Protocol</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#amf">AMF 
Format</a></span></dt></dl></div><p>
-    This document is based mostly on my own reverse engineering of the
-    RTMP protocol and AMF format. <span 
class="emphasis"><em>tcpdump</em></span> and
-    <span class="emphasis"><em>ethereal</em></span> are your friend. Some 
additional info that got
-    me started was from the <a href="http://www.osflash.org/red5"; 
target="_top">Red5</a>
-    project. <span class="emphasis"><em>Red5</em></span> is the only other 
open source Flash
-    server. So some details are still vague, but as the implementation
-    appears to work, we'll figure out what they are later.
-  </p><p>
+should work with Gnash. Gnash supports the loading of patent free
+codecs like Ogg Vorbis or Theora from disk based files, while work is
+being done to support these codecs when embedded in a SWF file. Ffmpeg
+contains the codecs used by the current SWF defintion, FLV, VP6 (ON2),
+H.263, H.264, and MP3.
+
+
+File: gnash_ref.info,  Node: Building from Source,  Next: Software Internals,  
Prev: Introduction,  Up: Top
+
+2 Building from Source
+**********************
+
+* Menu:
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+
+File: gnash_ref.info,  Node: Overview,  Next: Getting The Source,  Up: 
Building from Source
+
+2.1 Overview
+============
+
+The typical process of building from source will involve getting the
+source (*note Getting The Source::), build dependencies (*note Code
+Dependencies::), configuration (*note Configuring Gnash::), compilation
+(*note Compiling the Code::), testing (*note Running the Tests::), and
+installation (*note Installation::).  A simplified overview of the
+process would be:
+
+
+             ./autogen.sh
+             ./configure
+             make
+             make check
+             make install
+
+   If you are compiling with GCC you will probably need to use a machine
+with at least 128 megabytes of physical RAM; 64MB is not enough for a
+couple of the files, even with swap enabled and optimisation turned off.
+
+   At present the Gnash source is about 30 MB to extracted and
+configured and requires a total of about 125 megabytes to compile it.
+
+   Continue reading for detailed step-by-step instructions of the
+entire procedure.
+
+
+File: gnash_ref.info,  Node: Getting The Source,  Next: Code Dependencies,  
Prev: Overview,  Up: Building from Source
+
+2.2 Getting The Source
+======================
+
+* Menu:
+
+* Releases::
+* CVS Access::
+
+
+File: gnash_ref.info,  Node: Releases,  Next: CVS Access,  Up: Getting The 
Source
+
+2.2.1 Releases
+--------------
+
+Tarballs of official releases can be found in the download area of the
+project's GNU Savannah page at http://savannah.gnu.org/projects/gnash
+(http://savannah.gnu.org/projects/gnash) or under
+http://ftp.gnu.org/gnu/gnash (http://ftp.gnu.org/gnu/gnash)
+
+
+File: gnash_ref.info,  Node: CVS Access,  Prev: Releases,  Up: Getting The 
Source
+
+2.2.2 CVS Access
+----------------
+
+The latest Gnash development sources are available via anonymous CVS.
+Use the following commands to check them out (just hit return when you
+are prompted for the password):
+
+
+         export CVS_RSH=ssh
+         cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+
+you will then be able to update your copy from the repository using
+
+
+         cd gnash
+         cvs update -d
+
+   If you only have access to the internet via a web proxy, you will
+find daily source snapshots of the latest CVS tree in
+http://www.gnashdev.org/dev_snapshots
+(http://www.gnashdev.org/dev_snapshots/)
+
+
+File: gnash_ref.info,  Node: Code Dependencies,  Next: Testing Dependencies,  
Prev: Getting The Source,  Up: Building from Source
+
+2.3 Code Dependencies
+=====================
+
+Gnash has a number of dependencies on other packages.  If you install
+the dependencies using a package manager, be certain to install the
+development versions of the packages.  The normal versions are often
+missing the headers Gnash needs to compile.
+
+   Some dependencies have other dependencies, like GTk also needs
+glib2, atk, and pango to produce a fully linked executable. Different
+distributions also use differing dependencies, sometimes a package will
+depend on libxml2 on one system, but libexpat on another.
+
+*Code Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Boost      Required   1.32 or     Boost is  In Gnash,  `libboost-thread-dev,`
+                      higher     a library  Boost      
libboost-date-time-devlibboost-thread-devel,
+                                 of         libraries  
libboost-devlibboost-date-time-devel
+                                 portable   are used   '          '`
+                                 C++        extensively,           
boost-headers,
+                                 classes    primarily             boost-libs,
+                                 and        boost-gthread           or just
+                                 templates. and                   boost '
+                                            boost-date-time.           
+                                            Boost is              
+                                            used for              
+                                            thread                
+                                            and mutext            
+                                            handling.             
+libxml2    Required               Libxml2   This       
`libxml2-dev'`libxml2-devel'`libxml2'
+                                 is the     library               
+                                 GNOME XML  is used               
+                                 parser     to parse              
+                                 library    messages              
+                                 and is     for the               
+                                 available  XML                   
+                                 at         XMLNode,              
+                                 http://xmlsoft.orgor                    
+                                 (http://xmlsoft.org).XMLSocket             
+                                            ActionScript           
+                                            classes.              
+AGG        Possibly   2.4 or      AGG is    Gnash      
`libagg-dev'`agg-devel'`agg'
+           Required   higher     the        requires              
+                                 AntiGrain  the                   
+                                 low-level  installation           
+                                 2D         of at                 
+                                 graphics   least one             
+                                 library.   renderer.             
+                                            AGG is                
+                                            considered            
+                                            the _best             
+                                            supported_            
+                                            renderer              
+                                            for Gnash.            
+OpenGL     Possibly               OpenGL    Gnash      
`libgl1-mesa-dev'`libmesa-devel'`mesa'
+           Required              is a       requires              
+                                 standard   the                   
+                                 specificationinstallation           
+                                 defining a of at                 
+                                 cross-languageleast one             
+                                 cross-platformrenderer.             
+                                 API for    If you                
+                                 writing    don't                 
+                                 applicationshave a                
+                                 which      hardware              
+                                 produce    accelerated           
+                                 3D and 2D  driver,               
+                                 graphics.  you're                
+                                 It         better                
+                                 supports   off using             
+                                 hardware   AGG for               
+                                 acceleration.the                   
+                                 You can    renderer.             
+                                 download                         
+                                 a free                           
+                                 implementation                      
+                                 from                             
+                                 http://www.mesa3d.org                      
+                                 (http://www.mesa3d.org),                      
+                                 although                         
+                                 it                               
+                                 doesn't                          
+                                 support                          
+                                 hardware                         
+                                 acceleration.                      
+Cairo      Possibly               Cairo is  Gnash      
`libcairo2-dev'`cairo-devel'`cairo'
+           Required              a 2D       requires              
+                                 graphics   the                   
+                                 library    installation           
+                                 with       of at                 
+                                 support    least one             
+                                 for        renderer.             
+                                 multiple   Cairo is              
+                                 output     considered            
+                                 devices.   the                   
+                                 It will    _least                
+                                 automaticallysupported_            
+                                 use        renderer              
+                                 graphic    for Gnash.            
+                                 card                             
+                                 acceleration                      
+                                 when                             
+                                 available,                       
+                                 and has                          
+                                 an                               
+                                 experimental                      
+                                 OpenGL                           
+                                 backend.                         
+GTK        Possibly   2.2 or      GTK is    Gnash      
`libgtk2.0-dev'`gtk-devel'`gtk+2'
+           Required   higher     the GIMP   requires              
+                                 Toolkit    the                   
+                                 GUI        installation           
+                                 library    of at                 
+                                 used by    least one             
+                                 the GNOME  GUI                   
+                                 desktop.   library.              
+                                 It uses    GTK is                
+                                 Cairo      considered            
+                                 internally.to be the             
+                                 Gtk        _best                 
+                                 enables    supported_            
+                                 better     GUI                   
+                                 integrationlibrary               
+                                 with       option                
+                                 Firefox,   for Gnash.            
+                                 as well                          
+                                 as better                        
+                                 event                            
+                                 handling                         
+                                 and                              
+                                 higher                           
+                                 level GUI                        
+                                 constructs                       
+                                 like                             
+                                 menus and                        
+                                 dialog                           
+                                 boxes.                           
+GtkGlExt   Possibly               GtkGlExt  This       
`libgtkglext1-dev'`gtkglext-devel'`gtkglext'
+           Required              integrates library               
+                                 OpenGL     is                    
+                                 into GTK.  required              
+                                            in order              
+                                            to use                
+                                            the GTK               
+                                            GUI                   
+                                            library               
+                                            in                    
+                                            conjunction           
+                                            with the              
+                                            OpenGL                
+                                            renderer.             
+SDL        Possibly               The       Gnash      
`libsdl1.2-dev'`SDL-devel'`SDL-1.2'
+           Required              Simple     requires              
+                                 DirectMediathe                   
+                                 Layer is   installation           
+                                 a          of at                 
+                                 cross-platformleast one             
+                                 multimedia GUI                   
+                                 library    library.              
+                                 which      SDL may               
+                                 provides   also be               
+                                 abstractionused as a             
+                                 for        sound                 
+                                 audio,     handler               
+                                 graphics,  regardless            
+                                 sound and  of                    
+                                 input      whether               
+                                 APIs.      it is                 
+                                 SDL is     employed              
+                                 available  as a GUI              
+                                 from       library.              
+                                 http://www.libsdl.orgThe GUI               
+                                 (http://www.libsdl.org).library               
+                                            is                    
+                                            _poorly               
+                                            supported_            
+                                            in Gnash,             
+                                            but the               
+                                            sound                 
+                                            handler               
+                                            is the                
+                                            _best                 
+                                            supported_            
+                                            in Gnash.             
+FLTK       Possibly   2.0 or      The Fast  Gnash      No         No
+           Required   higher     Light      requires   distributiondistribution
+                                 ToolKit    the        packages   packages
+                                 is a       installationare        are
+                                 portable   of at      available. available.No
+                                 GUI        least one             distribution
+                                 library    GUI                   packages
+                                 which is   library.              are
+                                 intended   FLTK may              available.
+                                 as a       be used               
+                                 replacementin                    
+                                 for the    conjunction           
+                                 SDL GUI.   with the              
+                                            Cairo and             
+                                            AGG                   
+                                            renderers.            
+KDE        Possibly               Kdelibs   Gnash      
`kdelibs3-dev,`kdelibs-devel,
+           Required              is a       requires   
kdebase-dev'kdebase-devel'`kdelibs,
+                                 collection the                   kdebase'
+                                 of         installation           
+                                 libraries  of at                 
+                                 needed to  least one             
+                                 compile    GUI                   
+                                 KDE        library.              
+                                 applications.Kdelibs               
+                                            is also               
+                                            required              
+                                            for the               
+                                            Kpart                 
+                                            plugin                
+                                            for                   
+                                            Konqueror.            
+Gstreamer  Optional               Gstreamer If you     
`libgstreamer0.8-dev'`gstreamer-devel'`gstreamer-0.10'
+                                 is a       would                 
+                                 video      like                  
+                                 handler.   video                 
+                                            playback,             
+                                            you must              
+                                            install               
+                                            one of                
+                                            the video             
+                                            handlers.             
+gst-ffmpeg Possibly               gst-ffmpegThis       
`gstreamer0.8-ffmpeg-dev'`gstreamer-ffmpeg-devel'`gstreamer-ffmpeg'
+           Required              allows     package               
+                                 you to     is                    
+                                 use the    required              
+                                 FFMPEG     if you                
+                                 decoder    would                 
+                                 with       like to               
+                                 Gstreamer. use                   
+                                            Gstreamer             
+                                            as a                  
+                                            video                 
+                                            handler.              
+FFMPEG     Possibly               FFMPEG    If you     
`ffmpeg-dev'`ffmpeg-devel'`ffmpeg'
+           Required              is a       would                 
+                                 video      like                  
+                                 handler.   video                 
+                                            playback,             
+                                            you must              
+                                            install               
+                                            one of                
+                                            the video             
+                                            handlers.             
+                                            When                  
+                                            using the             
+                                            gstreamer-ffmpeg           
+                                            plugin,               
+                                            ffmpeg                
+                                            doesn't               
+                                            need to be            
+                                            installed,            
+                                            as it's               
+                                            part of               
+                                            the                   
+                                            plugin.               
+                                            For                   
+                                            systems               
+                                            without               
+                                            Gstreamer             
+                                            support,              
+                                            ffmpeg                
+                                            can be                
+                                            used                  
+                                            directly.             
+JPEG       Optional              JPEG       This       
`libjpeg62-dev'`libjpeg'`jpeg'
+                                 (http://www.ijg.org/)library               
+                                 is a       is used               
+                                 lossy      for                   
+                                 image      rendering             
+                                 format     JPEGs.                
+                                 which is                         
+                                 heavily                          
+                                 used for                         
+                                 images.                          
+PNG        Optional              PNG        This       
`libpng12-dev'`libpng'`png'
+                                 (http://www.libpng.org/pub/png/)library       
        
+                                 is a       is used               
+                                 patent-freefor                   
+                                 image      rendering             
+                                 format     PNGs.                 
+                                 which is                         
+                                 comparable                       
+                                 to _GIF_.                        
+libcurl    Optional               libcurl   This       
`libcurl4-gnutls'`libcurl'`curl'
+                                 is the     library               
+                                 multiprotocalis used               
+                                 file       for URL               
+                                 transfer   downloading.           
+                                 library.                         
+Glib2      Optional               Glib2 is  This       
`glib2-dev'`glib2-devel'`glib2'
+                                 a          library               
+                                 dependency is used               
+                                 of Gtk,    for                   
+                                 and is a   convenience.           
+                                 collection                       
+                                 of                               
+                                 commonly                         
+                                 used                             
+                                 functions.                       
+Atk        Optional               Atk is a  This       `atk-dev'  
`atk-devel'`atk'
+                                 dependency library               
+                                 of Gtk,    is used               
+                                 and is     for                   
+                                 used for   accessiblity..           
+                                 accessibility                      
+                                 support.                         
+Pango      Optional               Pango is  This       
`pango-dev'`pango-devel'`pango'
+                                 a          library               
+                                 dependency is used               
+                                 of Gtk,    for font              
+                                 and is     handling.             
+                                 used for                         
+                                 font                             
+                                 handling.                        
+automake   Possibly   1.6.0       Automake  This       `automake' 
`automake'`automake'
+           Required              is a tool  package               
+                                 for        is                    
+                                 generating required              
+                                 _Makefile.in_to run                
+                                 files.     _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+autoconf   Possibly   2.59        Autoconf  This       `autoconf' 
`autoconf'`autoconf'
+           Required              is a       package               
+                                 package    is                    
+                                 for        required              
+                                 generating to run                
+                                 configure  _autogen.sh_,           
+                                 scripts.   which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+gettext    Possibly   0.14.6      Gettext   This       `gettext'  
`gettext'`gettext'
+           Required              is part    package               
+                                 of the     is                    
+                                 GNU        required              
+                                 Translationto run                
+                                 Project.   _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+libtool    Possibly   1.5.22      This is   This       
`libltdl3-dev'`libtool'`libtool'
+           Required              a generic  package               
+                                 library    is                    
+                                 support    required              
+                                 script.    to run                
+                                            _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+
+
+File: gnash_ref.info,  Node: Testing Dependencies,  Next: Documentation 
Dependencies,  Prev: Code Dependencies,  Up: Building from Source
+
+2.4 Testing Dependencies
+========================
+
+Gnash tries to run as many tests as possible, but will simply skip
+tests if the tools to run them are unavailable.
+
+*Testing Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Ming       Optional   0.4.0_beta4 Ming is   Ming is    No         No
+                      or higher  an         the        distributiondistribution
+                                 ActionScriptprimary    packages   packages
+                                 compiler.  compiler   are        are
+                                            for        available. available.No
+                                            ActionScript           distribution
+                                            testcases.            packages
+                                                                  are
+                                                                  available.
+Mtasc      Optional   1.12 or     Mtasc is  Mtasc is   `mtasc'    No
+                      higher     an         used in               distribution
+                                 ActionScriptsome                  packages
+                                 compiler.  tests.                are
+                                                                  available.No
+                                                                  distribution
+                                                                  packages
+                                                                  are
+                                                                  available.
+swfc       Optional   part of     Swfc a    Swfc is    No         No
+                      swftools   swf        used in    distributiondistribution
+                      0.8.1      decompiler.some       packages   packages
+                                            testcases. are        are
+                                                       available. available.No
+                                                                  distribution
+                                                                  packages
+                                                                  are
+                                                                  available.
+swfmill    Optional   0.2.12      Swfmill   Swfmill    No         No
+                                 is an      is used    distributiondistribution
+                                 XML-based  in some    packages   packages
+                                 SWF        testcases. are        are
+                                 (Shockwave            available. available.No
+                                 Flash)                           distribution
+                                 processing                       packages
+                                 tool.                            are
+                                                                  available.
+Python     Optional   2.4 or      Python    Python is  `python'   
`python'`python'
+                      higher     is a       used by               
+                                 scripting  part of               
+                                 language.  the                   
+                                            testing               
+                                            framework.            
+DejaGnu    Optional   1.4 or      DejaGnu   DejaGnu    `dejagnu'  
`dejagnu'`dejagnu'
+                      higher     is a       is used               
+                                 testing    to run                
+                                 framework. multiple              
+                                            tests in              
+                                            an                    
+                                            automated             
+                                            fashion.              
+
+
+File: gnash_ref.info,  Node: Documentation Dependencies,  Next: Configuring 
Gnash,  Prev: Testing Dependencies,  Up: Building from Source
+
+2.5 Documentation Dependencies
+==============================
+
+The following packages are used to build Gnash's documentation.
+
+*Documentation Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Docbook    Required              Docbook    Gnash      
`docbook-utils'`docbook-dtd41-sgml'
+                                 
(http://http://docbook.sourceforge.net/)documentationand        and
+                                 is is an   is         
`docbook-dsssl'`docbook-style-dsssl'docbook
+                                 industry-standardwritten               
+                                 XML        in                    
+                                 format     Docbook.              
+                                 for                              
+                                 technical                        
+                                 documentation.                      
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 
http://sourceforge.net/project/showfiles.php?group_id=21935#files               
       
+                                 
(http://sourceforge.net/project/showfiles.php?group_id=21935#files).            
          
+DocBook2X  Optional               This      DocBook2X  
`docbook2x'`docbook2x'`docbook2x'
+                                 software   is                    
+                                 package    required              
+                                 converts   to                    
+                                 Docbook    produce               
+                                 documents  HTML and              
+                                 to the     Texinfo               
+                                 traditionalformats.              
+                                 man page                         
+                                 format,                          
+                                 GNU                              
+                                 Texinfo                          
+                                 format,                          
+                                 and HTML                         
+                                 (via                             
+                                 Texinfo)                         
+                                 format.                          
+                                 It is                            
+                                 available                        
+                                 at                               
+                                 http://docbook2x.sourceforge.net/             
         
+                                 (http://docbook2x.sourceforge.net/).          
            
+DocBook-utilsOptional               This      
DocBook-utils`docbook-utils'`docbook-utils'`docbook-utils'
+                                 software   is                    
+                                 package    required              
+                                 converts   to                    
+                                 Docbook    produce               
+                                 documents  HTML and              
+                                 to the     Texinfo               
+                                 traditionalformats.              
+                                 man page                         
+                                 format,                          
+                                 GNU                              
+                                 Texinfo                          
+                                 format,                          
+                                 and HTML                         
+                                 (via                             
+                                 Texinfo)                         
+                                 format.                          
+Texinfo    Possibly               Texinfo   Texinfo    `texinfo'  
`texinfo'`texinfo'
+           Required              can be     is                    
+                                 used to    required              
+                                 convert    if you                
+                                 DocBook2X  wish to               
+                                 output     product               
+                                 into GNU   GNU info              
+                                 info       pages.                
+                                 pages.                           
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 http://ftp.gnu.org/gnu/texinfo/               
       
+                                 (http://ftp.gnu.org/gnu/texinfo/).            
          
+FOP        Optional   0.20.5      FormattingFOP is     `fop'      `fop'`fop'
+                                 Objects    required              
+                                 Processor  for PDF               
+                                 is a       output.               
+                                 print                            
+                                 formatter                        
+                                 driven by                        
+                                 XSL                              
+                                 formatting                       
+                                 objects.                         
+                                 It is a                          
+                                 Java                             
+                                 application                      
+                                 which can                        
+                                 output                           
+                                 PDF, PCL,                        
+                                 PS, SVG,                         
+                                 XML,                             
+                                 Print,                           
+                                 AWT, MIF,                        
+                                 and Text.                        
+                                 It is                            
+                                 available                        
+                                 at                               
+                                 http://xmlgraphics.apache.org/fop/            
          
+                                 (http://xmlgraphics.apache.org/fop/).         
             
+Java       Possibly               FOP       Sun's      Download   Download
+(j2re)     Required              requires   Java       the        the
+                                 Sun's      runtime    package    package
+                                 Java       (j2re) is  from Sun   from Sun
+                                 runtime    required   
(http://java.sun.com).(http://java.sun.com).
+                                 (GCJ does  to use                
+                                 not work   FOP.                  
+                                 with                             
+                                 FOP).                            
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 http://java.sun.com                      
+                                 (http://java.sun.com).                      
+JAI        Possibly               Sun's     JAI is     Download   Download
+           Required              Java       required   the        the
+                                 Advanced   if you     package    package
+                                 Imaging    wish to    from Sun   from Sun
+                                 API can    include    
(http://java.sun.com/products/java-media/jai/iio.html).(http://java.sun.com/products/java-media/jai/iio.html).
+                                 be         graphics              
+                                 downloaded in a PDF              
+                                 from       file being            
+                                 
http://java.sun.com/products/java-media/jai/iio.htmlgenerated             
+                                 
(http://java.sun.com/products/java-media/jai/iio.html).with FOP.             
+
+   If you install j2re, set the _JAVA_HOME_ environment variable to the
+top directory of the j2re installation.  If you encounter problems with
+the Java installation, you may also need to add this path to the
+_CLASSPATH_ environment variable.
+
+
+File: gnash_ref.info,  Node: Configuring Gnash,  Prev: Documentation 
Dependencies,  Up: Building from Source
+
+2.6 Configuring Gnash
+=====================
+
+Gnash, like most GNU projects, allows a user to select various options
+before compiling its source code. These options include selecting from
+the available features, specifying custom paths for installation, and
+cross compiling support uses GNU Autoconf
+(http://www.gnu.org/software/autoconf/) for configuration.
+
+   If you opted to download the [Cross reference to non-existant ID
+"sourcerepo"] of Gnash, the _configure_ script will not be included.
+It can be created by running _autogen.sh_ from the source root
+directory:
+
+
+           ./autogen.sh
+
+Note that there are some dependencies (*note Code Dependencies::) for
+autogen.
+
+   All the standard `configure' options are available.  In addition,
+Gnash has two types of options: those that [Cross reference to
+non-existant ID "features"], and those that specify custom paths for
+development packages (*note Specifying Custom Paths::) which are not
+found during the default search.  A complete list of _all_
+configuration options, including standard ones, can be seen by typing:
+
+
+           ./configure --help |less
+
+Read further for a more detailed explanation of Gnash-specific options.
+
+   The syntax for running _configure_ is as follows:
+
+
+           configure <options>
+
+The example below shows the `configure' options which create the
+smallest working standalone version of Gnash.  In this example,
+`configure' is being run from the source root directory:
+
+
+         ./configure --disable-debugger --disable-cygnal \
+         --disable-plugin --enable-media=ffmpeg --enable-gui=sdl
+
+   By default, you shouldn't need to supply any options to configure.
+The configure script will attempt to determine what to build based on
+the development libraries you have installed. The default configuration
+for Gnash is both GTK and KDE GUIs, the AGG renderer, and Gstreamer for
+mltimedia support, with no extensions built.
+
+   Being higher portable, Gnash has many configuration options
+available, and not all are supposed to work together. A common mistake
+when configuring Gnash is to supply too many options, overdriving
+Gnash's ability to do the right thing.
+
+* Menu:
+
+* Features::
+* Specifying Custom Paths::
+
+
+File: gnash_ref.info,  Node: Features,  Next: Specifying Custom Paths,  Up: 
Configuring Gnash
+
+2.6.1 Features
+--------------
+
+Some switches can be used during configuration to enable or disable
+features of Gnash. Some of the most important configuration options are:
+
+   * `--enable-gui' lets you specify your GUI of choice.  The default
+     option is GTK.
+
+   * `--enable-renderer' allows a renderer to be chosen.  The default
+     renderer is AGG.
+
+   * `--enable-media' permits a media handler to be selected.  The
+     default is Gstreamer.
+
+   A complete list of available features follows.
+
+*Configuration Options - Features*
+
+Option                               Function
+`--enable-debugger'                  Enable support for the Flash
+                                     debugger. The debugger is mainly of
+                                     interest to Flash developers, and
+                                     is still under development.
+`--enable-lirc'                       Enable support for the LIRC remote
+                                     control protocol.
+`--enable-cygnal'                     Build the Cygnal streaming media
+                                     server.
+`--disable-menus'                     Disable building all the menus for
+                                     the GUI. THis is used by mobile
+                                     devices without as much screen
+                                     space.
+`--enable-docbook'                   Enable the generation of HTML,
+                                     INFO, and MAN versions of the
+                                     documentation from the Docbook XML.
+                                     You will then be able to use `make
+                                     html', `make info', and `make man'
+                                     commands. By default, man,info and
+                                     html pages are generated.
+`--enable-gui=gtk|sdl|kde|fltk|fb|hildon|alp'Select the Graphic User Interface
+                                     to use (choose one).?
+                                     [undisplayable block object]
+`--enable-i810-lod-bias'             Enable fix for Intel 810 LOD bias
+                                     problem. Older versions of libMesa
+                                     on the Intel i810 or i815 graphics
+                                     processor need this flag or Gnash
+                                     will core dump. This has been fixed
+                                     in newer versions (summer 2005) of
+                                     libMesa.
+`--enable-media=ffmpeg|gst|none'      Select the specified media decoder
+                                     and sound engine.  FFMPEG uses the
+                                     SDL sound engine; GST uses its own.
+                                     `GST' is the default decoder.  ?
+                                     [undisplayable block object] You
+                                     should only select one media
+                                     decoder.
+`--disable-nsapi'`--enable-nsapi'    Force disable/enable building the
+                                     NPAPI plugin.  By default the
+                                     Mozilla plugin is built if the GTK
+                                     gui is selected.  Specify the
+                                     `--with-npapi-plugindir=' option to
+                                     specify where the plugin should be
+                                     installed.
+`--disable-kparts'`--enable-kparts'  Force disable/enable building the
+                                     KPARTS plugin. By default the KDE
+                                     plugin is built if the kde gui is
+                                     selected.  Specify the
+                                     `--with-kde-plugindir=' and
+                                     `--with-kde-servicesdir=' options
+                                     (or more generally the
+                                     `--with-kde-pluginprefix=' one) to
+                                     specify where the plugin should be
+                                     installed. The default installation
+                                     dir is extracted from kde-config.
+`--disable-plugins'                  Disable build of both kparts and
+                                     npapi plugins
+`--enable-renderer=opengl|cairo|agg' Enable support for the a graphics
+                                     backend. Currently only `opengl' and
+                                     `agg' work sufficiently. OpenGL is
+                                     used when you have hardware
+                                     accelerated graphics. AGG i used
+                                     when you do not have hardware
+                                     accelerated graphics. Typically
+                                     most desktop machines have OpenGL
+                                     support, and most embedded systems
+                                     do not. OpenGl is the default when
+                                     building Gnash, although the
+                                     quality of AGG's rendering is
+                                     currently superior to OpenGL.
+`--enable-sdk-install'               Enable installing the libraries and
+                                     headers as an SDK.
+`--disable-shared'                   Enable installing the shared
+                                     libraries and headers.  Note that
+                                     the extensions mechanism may not
+                                     work if shared libraries are
+                                     disabled.
+`--enable-strict'                    Turn verbose GCC compiler warnings.
+                                     By default only `-Wall' is used
+                                     with GCC.
+`--enable-fps-debug'                 Enable FPS debugging code. When
+                                     this feature is compiled in you can
+                                     use the -f switch of Gnash to have
+                                     FPS printed at regular intervals.
+`--enable-write'                     Makes the Mozilla plugin write the
+                                     currently playing SWF movie to
+                                     `/tmp'.
+`--disable-mit-shm'                  Disable support for the MIT-SHM X
+                                     extensions.  Currently support is
+                                     only available using GTK gui and
+                                     AGG renderer.  Keeping it enabled
+                                     is not a problem as it will not be
+                                     used if not available in the
+                                     current X session.
+
+
+File: gnash_ref.info,  Node: Specifying Custom Paths,  Prev: Features,  Up: 
Configuring Gnash
+
+2.6.2 Specifying Custom Paths
+-----------------------------
+
+By default, none of these options should be required unless you want
+Gnash to use a specific version of a development package, or if the
+configure test fails to find a component.  Please [Cross reference to
+non-existant ID "bugreport"] if a configure test fails.
+
+   The following custom path options are available:
+
+*Custom Path Options*
+
+Option                               Function
+`--x-includes=DIR'                    X include files are in DIR.
+`--x-libraries=DIR'                   X library files are in DIR.
+`--with-libxml=PFX'                   Prefix to where libxml is
+                                     installed.
+`--with-libxml-libraries=DIR'         Directory where libxml library is
+                                     installed.
+`--with-libxml-includes=DIR'          Directory where libxml header
+                                     files are installed.
+`--with-docbook=DIR'                  Directory where the DocBook
+                                     style-sheets are installed.
+`--with-sdl-prefix=PFX'               Prefix where SDL is installed.
+`--with-zlib-incl'                    Directory where zlib header is
+                                     installed.
+`--with-zlib-lib'                     Directory where zlib library is
+                                     installed.
+`--with-jpeg-incl'                    Directory where jpeg header is
+                                     installed.
+`--with-jpeg-lib'                     Directory where jpeg library is
+                                     installed.
+`--with-png-incl'                     Directory where png header is
+                                     installed.
+`--with-png-lib'                      Directory where png library is
+                                     installed.
+`--with-qt-dir'                       Directory where QT is installed.
+                                     This is only used by the Klash
+                                     plugin.
+`--with-qt-includes'                  Directory where the QT header
+                                     files are installed. This is only
+                                     used by the Klash plugin.
+`--with-qt-libraries'                 Directory where the QT libraries
+                                     are installed. This is only used by
+                                     the Klash plugin.
+`--with-npapi-plugindir'              This is the directory to install
+                                     the NPAPI (Mozilla) plugin in.  By
+                                     default it goes to
+                                     ~/.mozilla/plugins.
+`--with-kde-pluginprefix'             This option sets the default
+                                     install dir for all KPARTS (kde)
+                                     files.  The plugin will be
+                                     installed in PREFIX/lib/kde3, use
+                                     `-with-kde-plugindir' to override.
+                                     The service file in
+                                     PREFIX/share/services, use
+                                     `--with-kde-servicesdir' to
+                                     override. The config file in
+                                     PREFIX/share/config, use
+                                     `--with-kde-configdir' to override.
+                                     The appdata file in
+                                     PREFIX/share/apps/klash, use
+                                     `--with-kde-appsdatadir' to
+                                     override.
+`--with-kde-plugindir'                This is the directory to install
+                                     the KPARTS (kde) plugin in.  By
+                                     default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     module -expandvars, or
+                                     $(prefix)/share/services if
+                                     kde-config is not found.
+`--with-kde-servicesdir'              This is the directory to install
+                                     the KPARTS (kde) service in.  By
+                                     default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     services -expandvars, or
+                                     $(libdir)/kde3 if kde-config is not
+                                     found.
+`--with-kde-configdir'                This is the directory to install
+                                     the KPARTS (kde) config files in.
+                                     By default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     config -expandvars, or
+                                     $(prefix)/share/config if
+                                     kde-config is not found.
+`--with-kde-appsdatadir'              This is the directory to install
+                                     the KPARTS (kde) application data
+                                     files in.  By default it is what's
+                                     set by -with-kde-pluginprefix or
+                                     what's returned by kde-config
+                                     -install data -expandvars, or
+                                     $(prefix)/share/apps if kde-config
+                                     is not found.
+`--with-ming'                         Ming is used to build test cases,
+                                     but not by the Gnash player itself.
+`--with-ogg_incl'                     Directory where the libogg headers
+                                     are installed.
+`--with-ogg_lib'                      Directory where the libogg library
+                                     is installed.
+`--with-gstreamer-incl'               Directory where the Gstreamer
+                                     headers are installed. Gstreamer
+                                     version 0.10 or greater must be
+                                     used.
+`--with-gstreamer-lib'                Directory where the Gstreamer
+                                     library is installed. Gstreamer
+                                     version 0.10 or greater must be
+                                     used.
+`--with-opengl-includes'              Directory where OpenGL (libMesa)
+                                     headers are installed.
+`--with-opengl-lib'                   Directory where the OpenGL
+                                     (libMesa) library is installed.
+`--with-glext-incl'                   Directory where GtkGlExt headers
+                                     are installed.
+`--with-glext-lib'                    Directory where the GtkGlExt
+                                     library is installed.
+`--with-gtk2-incl'                    Directory where the Gtk2 headers
+                                     are installed.
+`--with-gtk2-lib'                     Directory where the Gtk2 library
+                                     is installed.
+`--with-cairo_incl'                   Directory where the Cairo headers
+                                     are installed.
+`--with-cairo-lib'                    Directory where the Cairo library
+                                     is installed.
+`--with-glib-incl'                    Directory where the Glib headers
+                                     are installed.
+`--with-glib-lib'                     Directory where the Glib library
+                                     is installed.
+`--with-pango-incl'                   Directory where the Pango headers
+                                     are installed.
+`--with-pango-lib'                    Directory where the Pango library
+                                     is installed.
+`--with-atk-incl'                     Directory where the ATK headers
+                                     are installed.
+`--with-atk-lib'                      Directory where the ATK library is
+                                     installed.
+`--with-pthread-incl'                 Directory where the Pthread
+                                     headers are installed.
+`--with-pthread-lib'                  Directory where the Pthread
+                                     library is installed.
+`--with-agg-incl'                     Directory where the AGG
+                                     (Antigrain) headers are installed.
+`--with-agg-lib'                      Directory where the AGG
+                                     (Antigrain) library is installed.
+`--with-ffmpeg-incl'                  Directory where the FFMPEG headers
+                                     are installed.
+`--with-ffmpeg-lib'                   Directory where the FFMPEG library
+                                     is installed.
+`--with-boost-incl'                   Directory where the Boost headers
+                                     are installed.
+`--with-boost-lib'                    Directory where the Boost library
+                                     is installed.
+`--with-curl-incl'                    Directory where the libCurl
+                                     headers are installed.
+`--with-curl-lib'                     Directory where the libCurl
+                                     library is installed.
+
+   Once you have [Cross reference to non-existant ID
+"pre-configuration"] Gnash, you are ready to build the code.  Gnash is
+built using _GNU make_.
+
+* Menu:
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+
+File: gnash_ref.info,  Node: Compiling the Code,  Next: Creating the 
Documentation,  Up: Building from Source
+
+2.7 Compiling the Code
+======================
+
+The most basic way to compile code is simply:
+
+
+       make
+
+If the compilation ends with an error, check the output of _configure_
+and ensure that you are not missing any required prerequisites.  The
+output of `make' can be verbose; you may wish to pipe the output to a
+file.
+
+   The variables used by _make_ can be redefined when the program is
+invoked, if you desire it.   The most interesting flags are _CFLAGS_
+and _CXXFLAGS_, which are often used to enable debugging or turn of
+optimization.  The default value for both of these variables is _-O2
+-g_.  A list of influential environment variables can be seen in the
+configuration help:
+
+     ./configure --help
+
+   In the following example, debugging is enabled and optimization is
+disabled:
+
+     make CFLAGS=-g CXXFLAGS=-g
+
+
+File: gnash_ref.info,  Node: Creating the Documentation,  Next: Running the 
Tests,  Prev: Compiling the Code,  Up: Building from Source
+
+2.8 Creating the Documentation
+==============================
+
+By default, documentation is not built when you install (*note
+Installation::) Gnash.  This is because there are a number of [Cross
+reference to non-existant ID "docdepend"].  Documentation is built when
+it is specified with a specific target in the generated `Makefile' in
+the `doc/C' sub-directory.  If you type `make install' in this
+directory, all documents will be built.
+
+   You must specify a target output format when you wish to create
+documentation.  The available output formats are: `html', `pdf', `info',
+`man', and `alldocs'.  It is also possible to output `GNOME help' if
+the [Cross reference to non-existant ID "features"] `--enable-ghelp'
+was used.  The `alldocs' target will build all output formats except
+_GNOME help_.  For example, to create HTML output, type:
+
+
+       make html
+
+   Gnash also uses Doxygen
+(http://www.stack.nl/~dimitri/doxygen/index.html) to produce _HTML_
+documentation of Gnash internals.  You must have Doxygen installed to
+produce this documentation, which is built from the `doc' directory
+with the command (documents will be placed in the subdirectory
+`apidoc/html'):
+
+
+       make apidoc
+
+
+File: gnash_ref.info,  Node: Running the Tests,  Prev: Creating the 
Documentation,  Up: Building from Source
+
+2.9 Running the Tests
+=====================
+
+Before beginning the potentially lengthy install, it is wise to test
+the installation.  If a test fails, please report it by following the
+[Cross reference to non-existant ID "bugreport"].
+
+* Menu:
+
+* Using DejaGnu::
+* Running The Tests Manually::
+* Installation::
+* Cross Configuring::
+
+
+File: gnash_ref.info,  Node: Using DejaGnu,  Next: Running The Tests Manually, 
 Up: Running the Tests
+
+2.9.1 Using DejaGnu
+-------------------
+
+The easiest way to run Gnash's test suite is to install _DejaGnu
+(http://www.gnu.org/software/dejagnu)_.  After installing DejaGnu, run:
+
+
+         make check
+
+* Menu:
+
+* Increasing Verbosity::
+* Running Some Tests::
+
+
+File: gnash_ref.info,  Node: Increasing Verbosity,  Next: Running Some Tests,  
Up: Using DejaGnu
+
+2.9.1.1 Increasing Verbosity
+............................
+
+If you encounter a problem with a test, increasing the verbosity may
+make the issue easier to spot.  Additional details are visible when
+_RUNTESTFLAGS_ are used to add the _verbose_ and _all_ options.  The
+`verbose' option prints more information about the testing process,
+while the `all' option includes details on passing tests.
+
+
+           make check RUNTESTFLAGS="-v -a"
+
+
+File: gnash_ref.info,  Node: Running Some Tests,  Prev: Increasing Verbosity,  
Up: Using DejaGnu
+
+2.9.1.2 Running Some Tests
+..........................
+
+It is possible to run just a single test, or a subdirectory of tests,
+by specifying the directory or compiled test file.
+
+   Some tests rely on _testsuite/Dejagnu.swf_, which in turn relies on
+_Ming_.  This file is created when you run `make check' for the entire
+testsuite, and can also be created on demand:
+
+
+           make -C testsuite Dejagnu.swf
+
+   In this example, the `clip_as_button2' test is compiled and run:
+
+
+           make -C testsuite/samples clip_as_button2-TestRunner
+           cd testsuite/samples && ./clip_as_button2-TestRunner
+
+This creates and runs all the tests in the directory `movies.all':
+
+
+           make -C testsuite/movies.all check
+
+
+File: gnash_ref.info,  Node: Running The Tests Manually,  Next: Installation,  
Prev: Using DejaGnu,  Up: Running the Tests
+
+2.9.2 Running The Tests Manually
+--------------------------------
+
+You may also run test cases by hand, which can be useful if you want to
+see all the debugging output from the test case.  Often the messages
+which come from deep within Gnash are most useful for development.
+
+   The first step is to compile the test case, which can be done with
+`make XML-v#.swf' where the '#' is replaced with the _target_ SWF
+version or versions.  For example:
+
+
+         make XML-v{5,6,7,8}.swf
+
+* Menu:
+
+* Movie tests::
+* ActionScript Unit Tests::
+
+
+File: gnash_ref.info,  Node: Movie tests,  Next: ActionScript Unit Tests,  Up: 
Running The Tests Manually
+
+2.9.2.1 Movie tests
+...................
+
+This creates a Flash movie version of the test case, which can be run
+with a standalone Flash player.  For instance, the target for SWF
+version 6 could be run with Gnash:
+
+
+           gnash -v XML-v6.swf
+
+
+File: gnash_ref.info,  Node: ActionScript Unit Tests,  Prev: Movie tests,  Up: 
Running The Tests Manually
+
+2.9.2.2 ActionScript Unit Tests
+...............................
+
+Unit tests for ActionScript classes in `testsuite/actionscript.all' are
+run without a graphical display:
+
+
+           gprocessor -v XML-v6.swf
+
+
+File: gnash_ref.info,  Node: Installation,  Next: Cross Configuring,  Prev: 
Running The Tests Manually,  Up: Running the Tests
+
+2.9.3 Installation
+------------------
+
+Now that Gnash has been compiled and tested, use the following command
+to install it:
+
+
+           make install
+
+The above command installs the standalone player.  If the correct files
+were found by `configure' and if the `--disable-plugin' option was not
+specified, the Gnash browser plugin is also installed.
+
+   Gnash installs a number of libraries (*note Libraries::), namely:
+_libbase_, _libgeometry_, _libbackend_, _libserver_, and _libmozsdk_.
+Executables (*note Executables::) consist of the (optional) plugin,
+`gprocessor', `cygnal',  and `gnash'.  Documentation (*note
+Documentation::) may also be installed.  The installation location is
+controlled with the _-prefix_ configure option (*note Specifying Custom
+Paths::), except for plugins, which are explicitly set with
+_-plugin-dir_.
+
+   Note that if you are using a single file-system _NFS_ mounted to
+multiple platforms, the configuration option (*note Specifying Custom
+Paths::) _-exec-prefix_ may be used to specify where platform-dependent
+executables and libraries are installed.
+
+* Menu:
+
+* Libraries::
+* Executables::
+* Documentation::
+
+
+File: gnash_ref.info,  Node: Libraries,  Next: Executables,  Up: Installation
+
+2.9.3.1 Libraries
+.................
+
+Installed libraries are located in `/usr/local/lib' by default.  If the
+_-prefix_ option was used in [Cross reference to non-existant ID
+"pre-configuration"], the libraries will be installed in the directory
+`lib' inside the path you specified.  If the libraries are stored in a
+non-standard location, you must identify the path in one of two ways.
+
+   The traditional way to do this on UNIX platforms is to set the
+_LD_LIBRARY_PATH_ variable to the path plus `/lib'.  For example, if you
+installed in `/home/gnash', the _LD_LIBRARY_PATH_ path would be
+`/home/gnash/lib'.  Multiple paths are delimited with a colon (':').
+
+   GNU/Linux allows the custom path to be added to `/etc/ld.so.conf'.
+After adding the path, run _ldconfig_ as root to update the runtime
+cache.
+
+
+File: gnash_ref.info,  Node: Executables,  Next: Documentation,  Prev: 
Libraries,  Up: Installation
+
+2.9.3.2 Executables
+...................
+
+The Mozilla plugin is built from headers (the Mozilla SDK) provided
+with Gnash and does not need extra development packages to be
+installed. By default, the plugin is installed to
+`~/.mozilla/plugins/'. To enable the plugin for other users, copy the
+file `libgnashplugin.so' to `.mozilla/plugins/' in their home directory.
+You may also specify the plugin installation directory by using the
+`--with-plugindir' option at configuration time (*note Specifying
+Custom Paths::).
+
+   These defaults are likely to change in future versions of Gnash.
+
+   The remaining executables are installed in the `bin' subdirectory of
+the directory specified by during configuration.  If no path was
+specified, the default is `/usr/local/bin'.
+
+
+File: gnash_ref.info,  Node: Documentation,  Prev: Executables,  Up: 
Installation
+
+2.9.3.3 Documentation
+.....................
+
+Documentation is not built by default; please refer to the section on
+documentation (*note Creating the Documentation::) for more information
+on building documentation.
+
+   `man' and `info' are installed in `/usr/local/share/man' and
+`/usr/local/share/info' respectively, unless the `--mandir' or
+`--infodir' configuration options (*note Specifying Custom Paths::) are
+used.
+
+   _GNOME help_ documentation uses the directory
+`/usr/local/share/gnash/doc/gnash/C/' by default.  A configuration file
+in the Gnash source tree, `doc/C/gnash.omf' is used to specify under
+which menu item Gnash appears in the _GNOME help_ system.
+
+
+File: gnash_ref.info,  Node: Cross Configuring,  Prev: Installation,  Up: 
Running the Tests
+
+2.9.4 Cross Configuring
+-----------------------
+
+To cross configure and compile Gnash, begin by building a target system
+on your workstation.  This includes cross compilers for the target
+architecture, and some system headers.  You will also need to cross
+compile all the [Cross reference to non-existant ID "docdepend"]
+normally needed to build Gnash. This can on occasion be a daunting
+process, as not libraries will cross configure and cross compile. There
+is more information about cross compiling all the dependant packages on
+the http://www.gnashdev.org (http://www.gnashdev.org) web site.
+
+   If you need to build your own tool chain, that is beyond the scope
+of this manual. There are various resources on the web for howto's on
+building GCC based cross toolchains. Two popular sites are
+http://frank.harvard.edu/~coldwell/toolchain/
+(http://frank.harvard.edu/~coldwell/toolchain/) and
+http://www.kegel.com/crosstool/ (http://www.kegel.com/crosstool/). This
+can also be a very time consuming and frustrating process, even for
+experienced developers.
+
+   Because the process of building your own cross tool chain can be
+harder than one may wish, there are several other cross development
+environments that simulate a native environment to make it easier to
+develop. These also let you develop for both native and cross builds.
+Several popular ones are Access Linux Platform
+(http://www.access-company.com/products/linux/alp.html), Scratchbox
+(http://www.scratchbox.org/), Open Embedded
+(http://www.openembedded.org/), Maemo (http://maemo.org/).
+
+   To build for an ARM based system on an x86 based systems, configure
+like this using the traditional style cross toolchain, configure like
+this:
+
+
+         ../../gnash/configure --build=i686-pc-linux-gnu
+         --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
+         --disable-kparts --enable-gui=fb --enable-renderer=agg
+         --disable-shared --disable-menus
+
+   The important configuration options are the ones which specify the
+architecture for the build:
+
+-target
+     The target architecture, where the final executables are expected
+     to run.
+
+-host
+     The host architecture, where the executables are expected to run.
+     Usually this is the same as the _-target_, except when building a
+     compiler as a Canadian Cross.  In this case, you might build a
+     cross compiler on a UNIX system which runs on a win32 machine,
+     producing code for a third architecture, such as ARM.  In this
+     example, _-target_ would be 'arm-unknown-linux-gnu', while _-host_
+     would be 'win32'.
+
+-build
+     This is the system the build is running on.
+
+   The following example of _configure_ builds for an ARM system on an
+x86 system.  It was run after an ARM system was built in `/usr/arm' and
+other required libraries were cross compiled.
+
+
+           ./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+           --host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu 
--disable-plugin
+
+
+File: gnash_ref.info,  Node: Software Internals,  Next: Gnash Extensions,  
Prev: Building from Source,  Up: Top
+
+3 Software Internals
+********************
+
+* Menu:
+
+* A Tour of Gnash::
+* Sound handling in Gnash::
+* Testing : Testing.
+* Adding New ActionScript Class::
+
+
+File: gnash_ref.info,  Node: A Tour of Gnash,  Next: Sound handling in Gnash,  
Up: Software Internals
+
+3.1 A Tour of Gnash
+===================
+
+The top level of Gnash has several libraries, _libgnashbase_,
+_libgnashgeo_, _libgnashserver_, _libgnashasobjs_ and
+_libgnashbackend_. There are several utility programs included for
+debug parsing and processing of Flash movie files, and other useful
+utilitis for examining local Shared Objects and sniffingh
+LocalConnections.
+
+* Menu:
+
+* The Libraries::
+* The Applications::
+* The Plugin::
+* The Debug Logging System::
+
+
+File: gnash_ref.info,  Node: The Libraries,  Next: The Applications,  Up: A 
Tour of Gnash
+
+3.1.1 The Libraries
+-------------------
+
+* Menu:
+
+* libgnashbase::
+* libgnashgeo::
+* libgnashgui::
+* libgnashserver::
+* libgnashasobjs::
+* libgnashamf::
+* libgnashbackend::
+* libgnashplugin::
+* libklashpart::
+
+
+File: gnash_ref.info,  Node: libgnashbase,  Next: libgnashgeo,  Up: The 
Libraries
+
+3.1.1.1 libgnashbase
+....................
+
+Libgnashbase contains support classes used by the rest of the code.This
+library has no dependencies on any of the other Gnash libraries.
+
+   Gnash makes heavy use of smart pointers, so memory allocations are
+freed up automatically by the interpreter. Both STL and Boost smart
+pointers are used.
+
+
+File: gnash_ref.info,  Node: libgnashgeo,  Next: libgnashgui,  Prev: 
libgnashbase,  Up: The Libraries
+
+3.1.1.2 libgnashgeo
+...................
+
+Libgnashgeo contains code for device independent graphics routines.
+
+
+File: gnash_ref.info,  Node: libgnashgui,  Next: libgnashserver,  Prev: 
libgnashgeo,  Up: The Libraries
+
+3.1.1.3 libgnashgui
+...................
+
+Libgnashgui contains code for a portable GUI class that supports using
+GTK2, a framebuffer, SDL, or KDE, FLTK, or Aqua.
+
+
+File: gnash_ref.info,  Node: libgnashserver,  Next: libgnashasobjs,  Prev: 
libgnashgui,  Up: The Libraries
+
+3.1.1.4 libgnashserver
+......................
+
+Libgnashserver is the guts of the interpreter itself. This is where the
+main code for the interpreter lives. Includes in libserver are the two
+support libraries for the parser and the core of the virtual machine.
+
+
+File: gnash_ref.info,  Node: libgnashasobjs,  Next: libgnashamf,  Prev: 
libgnashserver,  Up: The Libraries
+
+3.1.1.5 libgnashasobjs
+......................
+
+Libgnashasobjs contains all the ActionScript classes used by the
+interpreter.
+
+
+File: gnash_ref.info,  Node: libgnashamf,  Next: libgnashbackend,  Prev: 
libgnashasobjs,  Up: The Libraries
+
+3.1.1.6 libgnashamf
+...................
+
+AMF is the data format used internally by SWF files. This is Gnash's
+support library to handle AMF data. This is used by the ActionScript
+classes SharedObject and LocalConnection. This is also used by the
+NetStream class when using thre RTMP streaming network protocol.
+
+
+File: gnash_ref.info,  Node: libgnashbackend,  Next: libgnashplugin,  Prev: 
libgnashamf,  Up: The Libraries
+
+3.1.1.7 libgnashbackend
+.......................
+
+Libgnashbackend is a library containing the rendering code that glues
+this display to the Gnash. Supported rendering backends are OpenGL,
+Cairo, and AGG.
+
+
+File: gnash_ref.info,  Node: libgnashplugin,  Next: libklashpart,  Prev: 
libgnashbackend,  Up: The Libraries
+
+3.1.1.8 libgnashplugin
+......................
+
+Libgnashplugin is the Mozilla/Firefox plugin.
+
+
+File: gnash_ref.info,  Node: libklashpart,  Prev: libgnashplugin,  Up: The 
Libraries
+
+3.1.1.9 libklashpart
+....................
+
+Libklashpart is the Konqueror plugin.
+
+
+File: gnash_ref.info,  Node: The Applications,  Next: The Plugin,  Prev: The 
Libraries,  Up: A Tour of Gnash
+
+3.1.2 The Applications
+----------------------
+
+There are currently a few standalone programs in Gnash, which serve to
+either assist with Gnash development or play flash movies.
+
+* Menu:
+
+* The Standalone Player::
+* Gprocesser::
+* SOLdumper::
+* Dumpshm::
+
+
+File: gnash_ref.info,  Node: The Standalone Player,  Next: Gprocesser,  Up: 
The Applications
+
+3.1.2.1 The Standalone Player
+.............................
+
+This is the standalone OpenGL back-end used to play movies. There are
+several command-line options and keyboard control keys used by Gnash.
+
+
+File: gnash_ref.info,  Node: Gprocesser,  Next: SOLdumper,  Prev: The 
Standalone Player,  Up: The Applications
+
+3.1.2.2 Gprocesser
+..................
+
+Gprocesser is used to print out the actions (using the -va option) or
+the parsing (using the -vp option) of a flash movie. It is also used to
+produce the _.gsc_ files that Gnash uses to cache data, thereby
+speeding up the loading of files.
+
+
+File: gnash_ref.info,  Node: SOLdumper,  Next: Dumpshm,  Prev: Gprocesser,  
Up: The Applications
+
+3.1.2.3 SOLdumper
+.................
+
+SOLDumper is a utility program used to find and dump the content of
+_Local Shared Objects_, also called "Flash Cookies" by some.
+
+
+File: gnash_ref.info,  Node: Dumpshm,  Prev: SOLdumper,  Up: The Applications
+
+3.1.2.4 Dumpshm
+...............
+
+Dumpshm is a program used to find and dump the contents of the
+_LocalConnection_ shared memory segment.
+
+
+File: gnash_ref.info,  Node: The Plugin,  Next: The Debug Logging System,  
Prev: The Applications,  Up: A Tour of Gnash
+
+3.1.3 The Plugin
+----------------
+
+The plugin is designed to work within Mozilla or Firefox, although
+there is Konqueror support as well. The plugin uses the Mozilla NSAPI
+plugin API to be cross platform, and is portable, as well as being well
+integrated into Mozilla based browsers.
+
+* Menu:
+
+* Current Status::
+* GUI Support::
+* Mozplugger::
+* Klash::
+
+
+File: gnash_ref.info,  Node: Current Status,  Next: GUI Support,  Up: The 
Plugin
+
+3.1.3.1 Current Status
+......................
+
+As of March 30, 2006, the plugin works! This works in a fashion similar
+to MozPlugger in that the standalone player is used instead of using a
+thread. This gets around the issue of having to maintain a separate
+player to support the plugin. It also gets around the other issues that
+Gnash itself is not thread safe at this time.
+
+   As of Jan, 2007, streaming video, ala "YouTube" works, along with
+other video sharing sites.
+
+
+File: gnash_ref.info,  Node: GUI Support,  Next: Mozplugger,  Prev: Current 
Status,  Up: The Plugin
+
+3.1.3.2 GUI Support
+...................
+
+Any plugin that wants to display in a browser window needs to be tied
+into the windowing system of the platform being used. On GNU/Linux
+systems, Firefox is a GTK2+ application.  There is also KDE support
+through the use of the Klash plugin.
+
+   Gnash can use either several different GUI toolkits to create the
+window, and to handle events for the standalone player.
+
+   The SDL version is more limited, but runs on all platforms,
+including win32. It has no support for event handling, which means
+mouse clicks, keyboard presses, and window resizing doesn't work. I
+personally find the default event handler slow and unresponsive. Gnash
+has support to use fast events, (currently not enabled) which is an SDL
+hack using a background thread to pump events into the SDL event queue
+at a much higher rate.
+
+   There are a variety of development libraries that build a GUI widget
+system on top of SDL and OpenGL. The use of these to add menus and
+dialog boxes to the SDL version is being considered.
+
+   The GTK support is currently the most functional, and the best
+integrated into Firefox. The performance of this version is better than
+the SDL version because of the more efficient event handling within
+GTK. For the best end user experience, use the GTK enabled version.
+
+   GTK also allows Gnash to have menus and dialog boxes. Currently this
+is only being utilized in a limited fashion for now. There is a right
+mouse button menu that allows the user to control the movie being
+player the same way the existing keyboard commands do.
+
+
+File: gnash_ref.info,  Node: Mozplugger,  Next: Klash,  Prev: GUI Support,  
Up: The Plugin
+
+3.1.3.3 Mozplugger
+..................
+
+Mozplugger (http://mozplugger.mozdev.org/) is a _Mozilla/Firefox_
+plugin that uses external programs to play video, audio, and other
+multimedia content in the browser. With some support added to the
+external application, it's possible to force the external program to
+use the internal window in the browser where this plugin is supposed to
+display. This enables one to then run the standalone player and display
+its output in the browser.
+
+   While this is not an optimal solution, it does enable one to use
+Gnash as the flash player when browsing. The main issue appears to be
+that the Flash movie being played doesn't get any mouse or keyboard
+input. That may be a mozplugger configuration issue, however.
+
+   Use of MozPlugger is obsolete now that the Gnash plugin works.
+Still, this may be useful still on some platforms.
+
+   Add this to your _$(HOME)/.mozilla/mozpluggerrc_ file to enable this:
+
+
+           application/x-shockwave-flash:swf:Shockwave Gnash
+             nokill embed noisy ignore_errors hidden fill swallow(Gnash) loop: 
gnash -v "$file" -x $window
+             : gnash -v "$file" -x $window
+
+   Once this is added, you must delete the
+_$(HOME)/.mozilla/firefox/pluginreg.dat_ file to force Firefox to
+register the plugins again. This is an ASCII text file, so if the patch
+has been added correctly, you'll see an entry for _swf_ files after it
+is recreated. You will need to restart Firefox to recreate this file.
+
+   This file is not recreated immediately when restarting Firefox, but
+waits till the first time a plugin is used. You can force creation of
+this file by typing _about:plugins_ into the URL entry of the browser
+window. The output will also contain information about the mozplugger.
+You should see an entry for Gnash now.
+
+
+File: gnash_ref.info,  Node: Klash,  Prev: Mozplugger,  Up: The Plugin
+
+3.1.3.4 Klash
+.............
+
+Klash is MozPlugger type support for KDE's Konqueror web browser. Klash
+makes Gnash a _kpart_, so it's integrated into KDE better than when
+using MozPlugger. Klash uses the standalone player, utilizing Gnash's
+"-x" window plugin command line option.
+
+   By default, Klash is not built. To enable building Klash, use the
+_-enable-klash_ option when configuring. Other than installing, there
+is nothing else that needs to be done to install Klash.
+
+
+File: gnash_ref.info,  Node: The Debug Logging System,  Prev: The Plugin,  Up: 
A Tour of Gnash
+
+3.1.4 The Debug Logging System
+------------------------------
+
+Gnash supports a debug logging system which supports both C and C++
+natively. This means you can use both _printf()_ style debug messages
+and C++ _iostreams_ style, where you can print C++ objects directly as
+you would when using _cout_.
+
+   In the beginning, Gnash only supported the C API for debug logging,
+so it is the most heavily used in Gnash. This API was used in the
+_log_msg()_ and _log_error()_ functions, and used a callback to set
+them up.
+
+   If a filename is not specified at object construction time, a
+default name of _gnash-dbg.log_ is used. If Gnash is started from the
+command line, the debug log will be created in the current directory.
+When executing Gnash from a launcher under _GNOME_ or _KDE_ the debug
+file goes in your home directory, since that's considered the current
+directory.
+
+   There is common functionality between using the C or C++ API.
+Optional output is based on flags that can be set or unset. Multiple
+levels of verbosity are supported, so you can get more output by
+supplying multiple _-v_ options on the command line. You can also
+disable the creation of the debug log.
+
+   Currently the use of the C++ API for logging is discouraged, do to
+performance issues.and the generic log_msg() has been replaced by more
+spcific function calls to allow more control of what gets displayed and
+logged.
+
+* Menu:
+
+* Logging System C API::
+* Logging System C++ API::
+
+
+File: gnash_ref.info,  Node: Logging System C API,  Next: Logging System C++ 
API,  Up: The Debug Logging System
+
+3.1.4.1 Logging System C API
+............................
+
+These functions are clones of the originals as they were used for
+Gnash. These function the same as always except output can be logged to
+disk now as well. These currently print no timestamp with the output,
+which is the older functionality. As these functions are implemented on
+top of the C++ API now, they can be used without corrupting the output
+buffers.
+
+log_error(const char* fmt, ...)
+     Display an error message if verbose output is enabled. By default
+     the error messages are always written to the disk file, but
+     optionally displayed in the terminal.
+
+void log_unimpl
+     Displays a warning to the user about missing Gnash features.  We
+     expect all calls to this function to disappear over time, as we
+     implement those features of Flash.
+
+void log_trace
+     Used only for explicit user traces
+
+void log_debug
+     Logs debug information.
+
+void log_action
+     Log action execution information. Wrap all calls to this function
+     (and other related statements) into an IF_VERBOSE_ACTION macro, so
+     to allow completely removing all the overhead at compile time and
+     reduce it at runtime.
+
+void log_parse
+     Log SWF parsing  Wrap all calls to this function (and other
+     related statements) into an IF_VERBOSE_PARSE macro, so to allow
+     completely removing all the overhead at compile time and reduce it
+     at runtime.
+
+void log_security
+     Display a message with security related information.
+
+void log_swferror
+     This indicates an error in how the binary SWF file was
+     constructed, i.e.probably a bug in the tools used to build the SWF
+     file. Wrap all calls to this function (and other related
+     statements) into an IF_VERBOSE_MALFORMED_SWF macro, so to allow
+     completely removing all the overhead at compile time and reduce it
+     at runtime.
+
+log_warning(const char* fmt, ...)
+     Display a warning message if verbose output is enabled. By default
+     the error messages are always written to the disk file, but
+     optionally displayed in the terminal.
+
+
+File: gnash_ref.info,  Node: Logging System C++ API,  Prev: Logging System C 
API,  Up: The Debug Logging System
+
+3.1.4.2 Logging System C++ API
+..............................
+
+This is the new C++ streams based API that can be used to print C++
+objects natively. All output lines are timestamped.
+
+   There are two macros used for program tracing. these can be used in
+both C or C++ code with one little difference. Since C doesn't have
+destructors, you must call _GNASH_REPORT_RETURN_ at the end of a
+function to display the function returning message.
+
+GNASH_REPORT_FUNCTION;
+     When this is included in a C++ method, a message is printed when
+     entering and exiting this method by hooking into the constructor
+     and destructor. These are always written to the disk file, but
+     optionally written to the screen only at the highest levels of
+     verbosity.
+
+GNASH_REPORT_RETURN;
+     This is used by C functions to print the returning from function
+     debug message. For C++, this macro is executed automatically by
+     the destructor.
+
+   This is the main API for the logging system. By default everything
+is setup to write to the default _gnash-dbg.log_ file whenever a
+verbose option is supplied. Optionally it is possible to open a log
+file with a specified name, allowing multiple output files.
+
+closeLog(void)
+     Close a debug log. The disk file remains.
+
+removeLog(void)
+     Delete the debug log file from disk.
+
+setVerbosity(void)
+     Increment the verbosity level.
+
+setVerbosity(int)
+     Set the verbosity level.
+
+setStamp(bool flag)
+     If _flag_ is _true_, then print a timestamp prefixed to every
+     output line. If _flag_ is _false_, then don't print a timestamp.
+
+setWriteDisk(bool flag)
+     If _flag_ is _true_, then create the disk file. If _flag_ is
+     _false_, then don't create the disk file.
+
+
+File: gnash_ref.info,  Node: Sound handling in Gnash,  Next: Testing,  Prev: A 
Tour of Gnash,  Up: Software Internals
+
+3.2 Sound handling in Gnash
+===========================
+
+When a SWF-file contains audio Gnash uses its sound handlers to play it.
+At the moment there are two sound handlers, but it is likely that more
+will be made.
+
+   There are two different settings related to sound support: _[Cross
+reference to non-existant ID "pluginsound"]_ and _[Cross reference to
+non-existant ID "standalonesound"]_.  This was done in order to allow
+the plugin to be independently configured, for instance to block sound
+from advertisements.
+
+* Menu:
+
+* Sound types::
+* Sound parsing::
+* Sound playback::
+* The SDL sound backend::
+* The Gstreamer backend::
+* Future audio backends::
+* Detailed description of the Gstreamer backend::
+
+
+File: gnash_ref.info,  Node: Sound types,  Next: Sound parsing,  Up: Sound 
handling in Gnash
+
+3.2.1 Sound types
+-----------------
+
+Sounds can be divided into two groups: event-sounds and soundstreams.
+Event-sounds are contained in a single SWF frame, but the playtime can
+span multiple frames. Soundstreams can be (and normally are) divided
+between the SWF frames the soundstreams spans. This means that if a
+gotoframe-action jumps to a frame which contains data for a soundstream,
+playback of the stream can be picked up from there.
+
+
+File: gnash_ref.info,  Node: Sound parsing,  Next: Sound playback,  Prev: 
Sound types,  Up: Sound handling in Gnash
+
+3.2.2 Sound parsing
+-------------------
+
+When Gnash parses a SWF-file, it creates a sound handler if possible
+and hands over the sounds to it. Since the event-sounds are contained
+in one frame, the entire event-sound is retrieved at once, while a
+soundstream maybe not be completely retrieved before the entire
+SWF-file has been parsed. But since the entire soundstream doesn't need
+to be present when playback starts, it is not necessary to wait.
+
+
+File: gnash_ref.info,  Node: Sound playback,  Next: The SDL sound backend,  
Prev: Sound parsing,  Up: Sound handling in Gnash
+
+3.2.3 Sound playback
+--------------------
+
+When a sound is about to be played Gnash calls the sound handler, which
+then starts to play the sound and return. All the playing is done by
+threads (in both SDL and Gstreamer), so once started the audio and
+graphics are not sync'ed with each other, which means that we have to
+trust both the graphic backend and the audio backend to play at correct
+speed.
+
+
+File: gnash_ref.info,  Node: The SDL sound backend,  Next: The Gstreamer 
backend,  Prev: Sound playback,  Up: Sound handling in Gnash
+
+3.2.4 The SDL sound backend
+---------------------------
+
+The current SDL sound backend has replaced the original sound handler,
+based on SDL_mixer, which by design had some limitations, making it
+difficult to implement needed features such as support for soundstreams.
+The SDL sound backend supports both event-sounds and soundstreams,
+using Gnash's internal ADPCM, and optionally MP3 support, using either
+FFMPEG or LIBMAD.  When it receives sound data it is stored without
+being decoded, unless it is ADPCM, which is decoded in the parser. When
+playing, backend relies on a function callback for retrieving output
+sound, which is decoded and re-sampled if needed, and all sound output
+is mixed together.  The current SDL sound backend was made since Gnash
+needed a working sound backend as soon as possible, and since the
+gstreamer backend at the time suffered from bugs and/or lack of
+features in gstreamer. The result was the most complete and best sound
+handler so far.  The advantages of the SDL sound handler is speed, and
+ease of use, while its only real disadvantage is that it has to be
+compiled with MP3 support, which some Linux distributions will probably
+not like...
+
+
+File: gnash_ref.info,  Node: The Gstreamer backend,  Next: Future audio 
backends,  Prev: The SDL sound backend,  Up: Sound handling in Gnash
+
+3.2.5 The Gstreamer backend
+---------------------------
+
+The Gstreamer backend, though not complete, supports both soundstreams
+and event-sounds. When receiving sound data it stores it compressed,
+unless if it's ADPCM event-sounds, which it decodes by the parser.
+When the playback starts, the backend sets up a Gstreamer bin
+containing a decoder (and other things needed) and places it in a
+Gstreamer pipeline, which plays the audio. All the sound data is not
+passed at once, but in small chunks, and via callbacks the pipeline
+gets fed. The advantages of the Gstreamer backend is that it supports
+both kinds of sound, it avoids all the legal MP3-stuff, and it should
+be relatively easy to add VORBIS support. The drawbacks are that it has
+longer "reply delay" when starting the playback of a sound, and it
+suffers under some bugs in Gstreamer that are yet to be fixed.
+
+
+File: gnash_ref.info,  Node: Future audio backends,  Next: Detailed 
description of the Gstreamer backend,  Prev: The Gstreamer backend,  Up: Sound 
handling in Gnash
+
+3.2.6 Future audio backends
+---------------------------
+
+It would probably be desirable to make more backends in the future,
+either because other and better backend systems are brought to our
+attention, or perhaps because an internal sound handling is better
+suited for embedded platform with limited software installed.
+
+
+File: gnash_ref.info,  Node: Detailed description of the Gstreamer backend,  
Prev: Future audio backends,  Up: Sound handling in Gnash
+
+3.2.7 Detailed description of the Gstreamer backend
+---------------------------------------------------
+
+Gstreamer uses pipelines, bins and elements. Pipelines are the main
+bin, where all other bins or elements are places. Visually the audio
+pipeline in Gnash looks like this:
+
+
+        ___
+       |Bin|_
+       |___| \
+        ___   \ _____       ____________
+       |Bin|___|Adder|_____|Audio output|
+       |___|   |_____|     |____________|
+        ___   /
+       |Bin|_/
+       |___|
+
+   There is one bin for each sound which is being played. If a sound is
+played more the once at the same time, multiple bins will be made. The
+bins contains:
+
+
+
+       
|source|---|capsfilter|---|decoder|---|aconverter|---|aresampler|---|volume|
+
+   In the source element we place parts of the undecoded sound data, and
+when playing the pipeline will pull the data from the element. Via
+callbacks it is refilled if needed. In the capsfilter the data is
+labeled with the format of the data. The decoder (surprise!) decodes
+the data. The audioconverter converts the now raw sound data into a
+format accepted by the adder, all input to the adder must in the same
+format. The audio re-sampler re-samples the raw sound data into a sample
+accepted by the adder, all input to the adder must in the same sample
+rate. The volume element makes it possible to control the volume of
+each sound.
+
+   When a sound is done being played it emits a End-Of-Stream-signal
+(EOS), which is caught by an event-handler-callback, which then makes
+sure that the bin in question is removed from the pipeline. When a
+sound is told by Gnash to stop playback before it has ended playback,
+we do something (not yet finally implemented), which makes the bin emit
+an EOS, and the event-handler-callback will remove the sound from the
+pipeline. Unfortunately Gstreamer currently has a bug which causes the
+entire pipeline to stop playing when unlinking an element from the
+pipeline; so far no fix is known.
+
+   Gstreamer also contains a bug concerning linking multiple elements to
+the adder in rapid succession, which causes to adder to "die" and stop
+the playback.
+
+
+File: gnash_ref.info,  Node: Testing,  Next: Adding New ActionScript Class,  
Prev: Sound handling in Gnash,  Up: Software Internals
+
+3.3 Testing
+===========
+
+Instructions on running tests (*note Running the Tests::) can be found
+in the section on building Gnash.
+
+* Menu:
+
+* Testing Tools::
+* Test Cases::
+* Writing ActionScript Tests::
+* Writing Ming-based self-contained SWF tests::
+* Writing self-contained SWF tests with other compilers::
+* Writing Test Runners::
+
+
+File: gnash_ref.info,  Node: Testing Tools,  Next: Test Cases,  Up: Testing
+
+3.3.1 Testing Tools
+-------------------
+
+Currently Gnash uses three other tools to help with testing. Two of
+these are free compilers for the Flash format. This lets us write
+simple test cases for Gnash to test specific features, and to see how
+the features operate.
+
+   The primary compiler used at this time is Ming (http://ming.sf.net).
+Since release 0.3, _Ming_ includes a command-line compiler, _makeswf_.
+This allows test case development to be done entirely with free tools.
+
+   The other tools are optional.  DejaGnu
+(http://www.gnu.org/software/dejagnu) is used to run multiple test
+cases in an automated manner. _DejaGnu_ is used by many other GNU
+(http://www.gnu.org) projects like GCC (http://gcc.gnu.org) and Samba
+(http://www.samba.org).
+
+
+File: gnash_ref.info,  Node: Test Cases,  Next: Writing ActionScript Tests,  
Prev: Testing Tools,  Up: Testing
+
+3.3.2 Test Cases
+----------------
+
+ActionScript test cases are located under testsuite/actionscript.all/;
+these are organized in one file for the ActionScript class.  Other
+Ming-generated tests are under testsuite/ming-misc.all/; these are
+typically used to test specific tag types.  Full movies are located in
+testsuite/movies.all/ and sample movies are found in testsuite/samples/.
+Other directories in testsuite/ are (or shall be) used for other kind
+of tests.
+
+
+File: gnash_ref.info,  Node: Writing ActionScript Tests,  Next: Writing 
Ming-based self-contained SWF tests,  Prev: Test Cases,  Up: Testing
+
+3.3.3 Writing ActionScript Tests
+--------------------------------
+
+Writing ActionScript tests is very simple. The _makeswf_ compiler makes
+use of the C preprocessor, thus allowing the inclusion of definitions
+for macros and external files. We use these feature to provide common
+utilities for test units.
+
+   Each test unit sets an _rcsid_ variable, includes the _check.as_
+file and performs some checks using the provided macros. Here is an
+example:
+
+
+
+         // This variable will be used by check.as
+         // to show testcase info as part of the test runs.
+         rcsid="Name and version of this testcase, usually the RCS id";
+
+         #include "check.as"
+
+         // Test object creation
+         check(new Object() instanceOf Object);
+
+         // Test parseInt
+         check(isNaN(parseInt('none')));
+
+         // Test assignment
+         var a = 1;
+         check_equals(a, 1);
+
+         // .. your tests here ...
+
+   The check(expr) macro will _trace_ PASSED or FAILED together with
+the expression being evaluated and the line number of the check. This
+is the format expected by DejaGnu.
+
+   The _check_equals(obtained, expected)_ macro uses equality operator
+_==_ to check for equality. When possible, use of the _check_equals()_
+macro is preferred over _check()_ because it shows what the actual
+result was in case of a failure.
+
+   Additionally, the check.as file provides a transparent way to send
+results to a TextField rather then using trace. This is very useful
+when you use a flash player without tracing support.
+
+   Test units are built by running _make TestName-v#.swf_.  This will
+use TestName.as as source and the value of # as target version.
+Allowed target version are from 5 to 8 (inclusive).
+
+   Note that if you get a syntax error from the compiler, the line
+number will refer to the pre-processed file. This file is called
+_TestName.as.pp_ or _TestName-v#.swf.frame#.pp_ (depending on Ming
+version) and it's not thrown away by _makeswf_ to make debugging easier.
+
+   Sometimes an expression is only supported by a specific SWF version,
+or it's evaluated differently by different SWF versions.  For this
+purpose the framework provides an OUTPUT_VERSION macro that you can use
+to switch code based on output version. For example:
+
+
+
+         #if OUTPUT_VERSION >= 7
+         check(_root.getSWFVersion == OUTPUT_VERSION);
+         #endif
+
+
+File: gnash_ref.info,  Node: Writing Ming-based self-contained SWF tests,  
Next: Writing self-contained SWF tests with other compilers,  Prev: Writing 
ActionScript Tests,  Up: Testing
+
+3.3.4 Writing Ming-based self-contained SWF tests
+-------------------------------------------------
+
+Ming-based test cases are located in testsuite/misc-ming.all and
+contain a test generator and a test runner.  The test generator
+(usually a C program) is used to produce the SWF file, while the test
+runner (a C++ program) will run it using a MovieTester class.  Note
+that only the test generator needs Ming, not the test runner, so if
+Ming isn't installed on the user's host, the test cases can still be
+run as long as SWF has been distributed.
+
+   Producing tests using Ming has the advantage that you can easily see
+and modify the full source code for the SWF movie, and you can use some
+facilities (*note Using Ming-based test generators facilities::)
+provided by the Gnash testing framework to easily run tests.
+
+   For generic Ming API documentation, see http://www.libming.org
+(http://www.libming.org/).
+
+* Menu:
+
+* Using Ming-based test generators facilities::
+
+
+File: gnash_ref.info,  Node: Using Ming-based test generators facilities,  Up: 
Writing Ming-based self-contained SWF tests
+
+3.3.4.1 Using Ming-based test generators facilities
+...................................................
+
+Ming-based test generator facilities, which might be moved into a
+loadable SWF in the future, can be currently used by your test
+generator by including the ming_utils.h file and calling the
+appropriate functions.
+
+   The most useful facility provided for Ming-based SWF test generators
+is a Dejagnu-like TestState ActionScript class.  In order to use this
+facility you must call 'add_dejagnu_functions()' right after Movie
+creation.  The function takes an SWFMovie object and some parameters
+specifying depth and location of the "visual" trace textfield; it
+instantiates a global 'TestState' ActionScript object to keep track of
+test's state.
+
+   You will _not_ need to directly invoke the TestState object created
+by the 'add_dejagnu_functions()' routine, rather you will be using C
+macros hiding its complexity:
+
+
+
+       check(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+
+       xcheck(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+               A failure is expected
+               (for cases where the call exposes a known bug).
+
+       check_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+
+       xcheck_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+               A failure is expected (for cases where the call exposes a known 
bug).
+
+       print_tests_summary(SWFMovie mo)
+
+                     This will print a summary of tests run, and should be
+               called as the last step in your SWF generator.
+
+   Test cases generated using Ming and the provided facilities (*note
+Using Ming-based test generators facilities::) will be self-contained,
+which means they can be used as tests by simply running them with
+whatever Player you might have.  Any 'check' or 'check_equals' result
+will be both traced and printed in a textfield. You can use 'gprocessor
+-v' to have Gnash use them as tests.
+
+   See section Writing Test Runners (*note Writing Test Runners::) for
+information about writing SWF test runners.
+
+
+File: gnash_ref.info,  Node: Writing self-contained SWF tests with other 
compilers,  Next: Writing Test Runners,  Prev: Writing Ming-based 
self-contained SWF tests,  Up: Testing
+
+3.3.5 Writing self-contained SWF tests with other compilers
+-----------------------------------------------------------
+
+If you want/need to use a different compiler for your test cases
+(there's plenty of open source tools for generating SWF out there), you
+can still make use of a loadable SWF utility provided as part of the
+Gnash testsuite to let your test consistent with the rest of the suite.
+
+   The loadable module is called Dejagnu.swf and is built during make
+check under testsuite/misc-ming.all. In order to use it you will need
+to load it into your SWF. We currently load it with an IMPORT tag for
+our ActionScript based test cases, but you can probably also use
+loadMovie or whatever works in the target SWF you're generating. Just
+make sure that the module is initialized before using it. You can check
+this by inspecting the dejagnu_module_initialized variable, which will
+be set to 'true' when all initialization actions contained in the
+Dejagnu.swf file are executed.
+
+   Once the module is loaded you will be able to invoke the following
+functions, all registered against the _root sprite (effects of _lockroot
+untested):
+
+
+
+       check(expression, [message]);
+
+               Evaluate the expression.
+               Trace result (PASSED: expression / FAILED: expression).
+               If fails, *visually* trace the failure.
+               If second argument is given, it will be used instead of
+               'expression' for printing results.
+
+       check_equals(obtained, expected)
+
+               Evaluate an expression against an expected output.
+               Trace result (PASSED: obtained == expected / FAILED: expected 
X, obtained Y)
+               If fails, *visually* trace the failure.
+
+       xcheck(expression, [message]);
+
+               Evaluate the expression.
+               Trace result (XPASSED: expression / XFAILED: expression).
+               If fails, *visually* trace the failure.
+               If second argument is given, it will be used instead of
+               'expression' for printing results.
+
+       xcheck_equals(obtained, expected)
+
+               Evaluate an expression against an expected output.
+               Trace result (XPASSED: obtained == expected / XFAILED: expected 
X, obtained Y)
+               If fails, *visually* trace the failure.
+
+       note(string)
+
+               Print string, both as debugging and *visual* trace.
+
+       totals()
+
+                     Print a summary of tests run, both as debugging and 
*visual* traces.
+
+   Visual traces are lines of text pushed to a textarea defined by the
+Dejagnu.swf module.  The textarea is initially placed at 0, 50 and is
+600x800 in size.  You can resize/move the clip after loading it.  Also,
+you can completely make the clip invisible if that bothers you. The
+important thing is the *debuggin* trace (call to the trace function).
+The latter will be used by the testing framework.
+
+   See section Writing Test Runners (*note Writing Test Runners::) for
+information about writing a test runners for your self-contained tests.
+
+
+File: gnash_ref.info,  Node: Writing Test Runners,  Prev: Writing 
self-contained SWF tests with other compilers,  Up: Testing
+
+3.3.6 Writing Test Runners
+--------------------------
+
+Test runners are executables that run one or more tests, writing
+results in Dejagnu form to standard output.
+
+   The Dejagnu form uses a standard set of labels when printing test
+results.  These are:
+
+Label                                Meaning
+PASSED                               The test succeeded.
+FAILED                               The test failed.
+XPASSED                              The test succeeded, but was
+                                     expected to fail.
+XFAILED                              The test failed, and was expected
+                                     to fail.
+UNRESOLVED                           The results of the test could not
+                                     be automatically parsed.
+UNTESTED                             This test case is not complete.
+UNSUPPORTED                          The test case relies on a
+                                     conditional feature which is not
+                                     present in your environment.
+
+   The following labels may also appear:
+
+Label                                Meaning
+ERROR                                There was a serious error in
+                                     running the test.
+WARNING                              There may have been a problem with
+                                     running the test.
+NOTE                                 There was some additional
+                                     information given about the test.
+
+* Menu:
+
+* Using the generic test runner for self-contained SWF tests::
+* Writing Movie testers::
+
+
+File: gnash_ref.info,  Node: Using the generic test runner for self-contained 
SWF tests,  Next: Writing Movie testers,  Up: Writing Test Runners
+
+3.3.6.1 Using the generic test runner for self-contained SWF tests
+..................................................................
+
+The simplest test runner is one that simply invokes Gnash in verbose
+mode against a self-contained SWF test movie.  Self-contained SWF test
+movies are the ones that print the PASSED/FAILED etc. lines using
+ActionScript (traces).  By invoking Gnash in verbose mode this movie
+will behave as a compliant "Test Runner".
+
+   A generator for simple test runners can be found in
+testsuite/generic-testrunner.sh.  The script can be invoked by passing
+it $(top_builddir) as the first argument and the name of the SWF file
+(without the path) as the second argument. This will create a specific
+runner for your test in the current build directory.  A simple
+Makefile.am rule for doing this follows:
+
+
+     MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+             sh $(srcdir)/../generic-testrunner.sh $(top_builddir) MyTest.swf 
> $@
+             chmod +x $@
+
+   By default, the generated test runner will play the movie up to the
+last frame. If you want the movie to be played more then once (maybe
+because you're exactly testing loop features) you can use the -r switch
+to the generic-testrunner.sh call. The following will create a runner
+playing the movie twice:
+
+
+     MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+             sh $(srcdir)/../generic-testrunner.sh -r2 $(top_builddir) 
MyTest.swf > $@
+             chmod +x $@
+
+   In case your test movie stops before the last frame, or you want to
+control the exact number of times to call the frame advancement
+routine, you can use the -f switch to control that.
+
+
+     MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+             sh $(srcdir)/../generic-testrunner.sh -f10 $(top_builddir) 
MyTest.swf > $@
+             chmod +x $@
+
+When both -f and -r are given, the first exit condition reached will
+take effect.
+
+
+File: gnash_ref.info,  Node: Writing Movie testers,  Prev: Using the generic 
test runner for self-contained SWF tests,  Up: Writing Test Runners
+
+3.3.6.2 Writing Movie testers
+.............................
+
+There are some parts of Gnash that can NOT be tested by only using
+ActionScript tests. Examples include: frame advancements, actual
+actions execution, gui events and so on.
+
+   In this case you might want to use the MovieTester class to
+implement a C++ test runner. Be aware that you can *mix* tests in the
+MovieTester-based class with *self-contained* tests in the SWF file as
+long as you activate verbosity for the debug logfile. This is done, for
+example, for the DefineEditTextVariableNameTest.swf file. The
+corresponding test runner (DefineEditTextVariableNameTest-Runner) is a
+C++ runner based on MovieTester class. If you run the runner you see
+two kinds of test results: the ones coming from the ActionScript
+engine, and the ones coming from the test runner. You can distinguish
+between the two because the former contains an additional timestamp and
+the latter does not. Also, you'll see two final summaries for the two
+test sets. The 'make check' rule, which uses the testsuite/simple.exp
+output parser as its work-horse, will count test results from both test
+sets.
+
+   Movie testers are executables which load an SWF, generate events
+(both user or system) on it, and check its state using a standard
+interface.
+
+   To help this process a MovieTester class is defined in the
+testsuite/MovieTester.{h,cpp} files; see Doxygen documentation for more
+information.
+
+   Note that you do NOT need access to the SWF source code in order to
+implement a Movie tester for it.  Some knowledge about the expected
+behavior suffices.
+
+
+File: gnash_ref.info,  Node: Adding New ActionScript Class,  Prev: Testing,  
Up: Software Internals
+
+3.4 Adding New ActionScript Class
+=================================
+
+In this document, the term 'ActionScript class' refers to the C++ class
+which is instantiated by Gnash when some ActionScript code instantiates
+a corresponding class.  The C++ class stores instance data and
+implements the methods which are called on the object in the
+ActionScript code.
+
+   Adding a new ActionScript class is relatively simple, but the
+process is complicated by the fact that the interface has evolved over
+time and the current code base represents several different formats.
+This document describes the current interface.  The Boolean class
+should be considered the authoritative example of a modern ActionScript
+class.
+
+   ActionScript classes contain a header file and a C++ implementation.
+The name is usually the name of the class as it is called in the
+ActionScript specifications; for instance _Boolean.cpp_ for the Boolean
+class.
+
+* Menu:
+
+* Prototype::
+* Declaration::
+* Instantiation::
+* Methods::
+* Dynamic Properties::
+* The as_value Object Type::
+* Object ActionScript Class::
+
+
+File: gnash_ref.info,  Node: Prototype,  Next: Declaration,  Up: Adding New 
ActionScript Class
+
+3.4.1 Prototype
+---------------
+
+In ActionScript, a prototype is a base object which contains all the
+methods that an instantiated object will contain.  In short, it
+contains every part of the class except for the portions dealing with
+the storage of instance data.
+
+   In Gnash, the prototype of an ActionScript object is implemented as
+an _as_object_.  At startup, the methods and properties of the
+ActionScript class are attached to the _as_object_.  The following
+example demonstrates how methods can be attached:
+
+
+       static void
+       attachBooleanInterface(as_object& o) {
+         o.init_member("toString", new builtin_function(boolean_tostring));
+         o.init_member("valueOf", new builtin_function(boolean_valueof));
+       }
+
+   Static properties can also be added to the ActionScript prototype
+(dynamic properties (*note Dynamic Properties::) are addressed later).
+They are attached in a similar way:
+
+
+       o.init_member("myProperty", as_value("HelloWorld"));
+
+   Properties which have been added in this manner can be directly
+accessed in ActionScript code without a function call, as this piece of
+ActionScript code compiled by Ming's _makeswf_ compiler demonstrates:
+
+
+       // Get the value of the myProperty property
+       if (node.myProperty == "HelloWorld") {
+         trace("MATCHED");
+       }
+
+
+File: gnash_ref.info,  Node: Declaration,  Next: Instantiation,  Prev: 
Prototype,  Up: Adding New ActionScript Class
+
+3.4.2 Declaration
+-----------------
+
+A new class should derive from _as_object_, which is the base class of
+every ActionScript object in Gnash.
+
+
+File: gnash_ref.info,  Node: Instantiation,  Next: Methods,  Prev: 
Declaration,  Up: Adding New ActionScript Class
+
+3.4.3 Instantiation
+-------------------
+
+When a new object is needed, instance data is added to the methods and
+properties inherited from the prototype.
+
+   The init method should be called in the constructor in _Global.cpp_,
+where all other ActionScript classes are similarly referenced. This
+method constructs a prototype, which is implemented as an _as_object_.
+In addition, the method registers the constructor to be used for future
+object creation, and attaches methods and properties to the prototype.
+
+
+File: gnash_ref.info,  Node: Methods,  Next: Dynamic Properties,  Prev: 
Instantiation,  Up: Adding New ActionScript Class
+
+3.4.4 Methods
+-------------
+
+Every method you implement and attach (*note Prototype::) will receive
+an _fn_call_ data structure as an argument when it is called.
+
+* Menu:
+
+* Accessing Arguments::
+* Returning a Value to ActionScript::
+* Additional fn_call Members::
+
+
+File: gnash_ref.info,  Node: Accessing Arguments,  Next: Returning a Value to 
ActionScript,  Up: Methods
+
+3.4.4.1 Accessing Arguments
+...........................
+
+The arguments stored in _fn_call_ should be accessed using _arg()_.  For
+instance, the first element can be popped with _fn.arg(0)_.
+
+   The element popped off the stack is an _as_value_ object (*note The
+as_value Object Type::).
+
+
+File: gnash_ref.info,  Node: Returning a Value to ActionScript,  Next: 
Additional fn_call Members,  Prev: Accessing Arguments,  Up: Methods
+
+3.4.4.2 Returning a Value to ActionScript
+.........................................
+
+The return value should be an _as_value_ object (*note The as_value
+Object Type::).  For example:
+
+
+         return as_value('Goodbye, cruel world.');
+
+
+File: gnash_ref.info,  Node: Additional fn_call Members,  Prev: Returning a 
Value to ActionScript,  Up: Methods
+
+3.4.4.3 Additional fn_call Members
+..................................
+
+There are two other useful members of the _fn_call_ structure, namely
+_this_ptr_ and _nargs_.  The former points to the class which is
+invoking this method, while the latter is a count of the number of
+arguments in the stack (*note Accessing Arguments::).
+
+   You may also see instances of the _env_ pointer being used.   This
+is being deprecated.  Instances which could be replaced with _arg()_
+(*note Accessing Arguments::) are already deprecated; other uses will
+be deprecated in the near future.
+
+   Beyond the _arg() (*note Accessing Arguments::)_ method, there is
+one method of note.  _dump_args()_ can be used in debugging to output
+the entire argument stack.
+
+
+File: gnash_ref.info,  Node: Dynamic Properties,  Next: The as_value Object 
Type,  Prev: Methods,  Up: Adding New ActionScript Class
+
+3.4.5 Dynamic Properties
+------------------------
+
+This section describes accessors to dynamic properties.  Read-only
+properties are described in the prototype (*note Prototype::) section.
+
+   Accessors should be written as a single get/set method.  Previously
+this was done by overriding _get_member()_ and _set_member()_, but this
+practice is deprecated.
+
+   The accessor is written so that it sets the property if it is called
+with an argument, and puts the property in the _fn_call_ (*note
+Methods::) result pointer (*note Returning a Value to ActionScript::).
+For instance:
+
+
+       void
+       MyClass::myProperty_getset(const fn_call& fn) {
+         boost::intrusive_ptr<MyClass> ptr = ensureType<MyClass>(fn.this_ptr);
+
+         // setter
+         if ( fn.nargs > 0 ) {
+           bool h = fn.arg(0).to_bool();
+           ptr->MyMethod(h);
+           return;
+          }
+
+         // getter
+         bool h = ptr->MyMethod();
+         fn.result->set_bool(h);
+       }
+
+   It has not yet been decided whether properties should be set in the
+exported interface (*note Prototype::) or attached to instances of the
+class.  A property is attached in the following manner:
+
+
+       boost::intrusive_ptr<builtin_function> gettersetter;
+       gettersetter = new builtin_function(&MyClass::myProperty_getset, NULL);
+       o.init_property("myProperty", *gettersetter, *gettersetter);
+
+
+File: gnash_ref.info,  Node: The as_value Object Type,  Next: Object 
ActionScript Class,  Prev: Dynamic Properties,  Up: Adding New ActionScript 
Class
+
+3.4.6 The as_value Object Type
+------------------------------
+
+The _as_value_ class is used throughout the interpreter to create
+generic objects to hold data.
+
+* Menu:
+
+* Data Types::
+* Determining the Type::
+* Fetching the Value::
+* Setting the Value and Type::
+* Further Reading::
+
+
+File: gnash_ref.info,  Node: Data Types,  Next: Determining the Type,  Up: The 
as_value Object Type
+
+3.4.6.1 Data Types
+..................
+
+The following data types are supported: _NULLTYPE_, _BOOLEAN_, _STRING_,
+_NUMBER_, _OBJECT_, _AS_FUNCTION_, and _MOVIECLIP_ (sprite).  The type
+_C_FUNCTION_ is being deprecated.
+
+
+File: gnash_ref.info,  Node: Determining the Type,  Next: Fetching the Value,  
Prev: Data Types,  Up: The as_value Object Type
+
+3.4.6.2 Determining the Type
+............................
+
+Several methods allow you to determine if a value stored in _as_value_
+is of a specific type.  These follow the form of _is_TYPE_, for example
+_is_as_function()_ and _is_number()_.  In general, the type names match
+the data types (*note Data Types::) listed above, with the exception of
+the type _MOVIECLIP_ which has a method _is_sprite()_.
+
+
+File: gnash_ref.info,  Node: Fetching the Value,  Next: Setting the Value and 
Type,  Prev: Determining the Type,  Up: The as_value Object Type
+
+3.4.6.3 Fetching the Value
+..........................
+
+Another set of methods will return a representation of the value as a
+particular type.  They follow the _to_TYPE_ naming convention.  Examples
+are _to_number()_ and _to_bool()_.  The type names are as listed (*note
+Data Types::) earlier, except for _MOVIECLIP_, which uses _to_sprite()_.
+
+
+File: gnash_ref.info,  Node: Setting the Value and Type,  Next: Further 
Reading,  Prev: Fetching the Value,  Up: The as_value Object Type
+
+3.4.6.4 Setting the Value and Type
+..................................
+
+Finally, there is the _set_TYPE_ series of methods.  They change the
+type to the type specified in the method name, and set the value to the
+one given as an argument.  It is also possible to accomplish the same
+thing with the _=_ operator.  Again, type names match those named
+earlier (*note Data Types::), except in the case of _MOVIECLASS_.  Its
+method is called _set_sprite()_.
+
+
+File: gnash_ref.info,  Node: Further Reading,  Prev: Setting the Value and 
Type,  Up: The as_value Object Type
+
+3.4.6.5 Further Reading
+.......................
+
+Please refer to _as_value.h_ or the Doxygen documentation (see
+'Processing The Documentation' in the Gnash manual for instructions on
+generating documents with Doxygen) for more information about which
+methods are available for the _as_value_ object.
+
+
+File: gnash_ref.info,  Node: Object ActionScript Class,  Prev: The as_value 
Object Type,  Up: Adding New ActionScript Class
+
+3.4.7 Object ActionScript Class
+-------------------------------
+
+This class implements an Object object.
+
+* Menu:
+
+* The Methods of the Class::
+* The Properties of the Object Class::
+* Object Class Conformance::
+
+
+File: gnash_ref.info,  Node: The Methods of the Class,  Next: The Properties 
of the Object Class,  Up: Object ActionScript Class
+
+3.4.7.1 The Methods of the Class
+................................
+
+addProperty()
+
+registerClass()
+
+toString()
+
+unwatch()
+
+valueOf()
+
+watch()
+
+Sharedclear()
+
+Sharedflush()
+
+SharedgetLocal()
+
+SharedgetSize()
+
+
+File: gnash_ref.info,  Node: The Properties of the Object Class,  Next: Object 
Class Conformance,  Prev: The Methods of the Class,  Up: Object ActionScript 
Class
+
+3.4.7.2 The Properties of the Object Class
+..........................................
+
+constructor
+
+__proto__
+
+__resolve
+
+Shareddata
+
+SharedonStatus
+
+
+File: gnash_ref.info,  Node: Object Class Conformance,  Prev: The Properties 
of the Object Class,  Up: Object ActionScript Class
+
+3.4.7.3 Object Class Conformance
+................................
+
+Class Name                           Conformance
+addProperty()                         This method has an unknown status.
+registerClass()                       This method has an unknown status.
+toString()                            This method has an unknown status.
+unwatch()                             This method has an unknown status.
+valueOf()                             This method has an unknown status.
+watch()                               This method has an unknown status.
+Sharedclear()                         This method has an unknown status.
+Sharedflush()                         This method has an unknown status.
+SharedgetLocal()                      This method has an unknown status.
+SharedgetSize()                       This method has an unknown status.
+constructor                           This property has an unknown
+                                     status.
+__proto__                             This property has an unknown
+                                     status.
+__resolve                             This property has an unknown
+                                     status.
+Shareddata                            This property has an unknown
+                                     status.
+SharedonStatus                        This property has an unknown
+                                     status.
+
+
+File: gnash_ref.info,  Node: Gnash Extensions,  Next: RTMP Protocol,  Prev: 
Software Internals,  Up: Top
+
+4 Gnash Extensions
+******************
+
+Gnash supports extending the Flash specification by creating custom
+ActionScript classes that are compiled code, as opposed to the existing
+method of defining custom classes as ActionScript. Executing compiled
+code has many performance benefits over having to interpret the byte
+stream of the ActionScript opcodes.
+
+   I can already hear people complaining now about the concept of
+extending Flash, so this in no way affects Gnash's ability to play
+Flash movies when functioning as a browser plugin.  Gnash's goal is
+still to function in a way that is compatible with the current
+proprietary Flash player.
+
+   But at the same time, we see Flash as the ideal scripting language
+for a digital multi-media streaming environment. There are many
+resources for Flash movie creators for widgets, higher level APIs, all
+sorts of desirable things. But for those of use committed to using free
+software tools for Flash, our options are very limited.
+
+   Rather than launching a multi-year project to duplicate all classes
+in the commercial Flash IDE, it's much more efficient to use existing
+development libraries much like Python or Perl do. The extension
+mechanism in Gnash allows wrappers to be created for any C or C++
+development library. Unlike the proprietary Flash IDE, which compiles
+all the extension libraries into byte codes from ActionScript, the
+support is moved to the player side. Movies with all of the goodies of
+the proprietary IDE in them play in Gnash just fine, as it's all just
+byte codes by then.
+
+   This trick works because until Flash player version 9, all the
+ActionScript class names and methods are passed as ASCII strings into
+the Flash movie. So the Gnash Virtual Machine just loads the extension
+file if that class name is invoked in the movie. All extension files
+specify the class name and methods it implements in an identical style
+as adding any new ActionScript class. The advantage is the class itself
+is compiled code, and runs much faster than the equivalent byte codes
+which all have to be interpreted..
+
+* Menu:
+
+* Creating A New Extension::
+* Debugging An Extension::
+* Included Extensions::
+
+
+File: gnash_ref.info,  Node: Creating A New Extension,  Next: Debugging An 
Extension,  Up: Gnash Extensions
+
+4.1 Creating A New Extension
+============================
+
+Each new extension should live in it's own directory. The extensions
+included in Gnash are all in the gnash/extensions directory. Creating
+an extension requires a Makefile.am,
+
+   If you are adding this extension to the Gnash source tree itself,
+then you need to make two changes to add the new extension.
+
+   The first change is to add the directory to the list in
+extensions/Makefile.am. This can be done either by adding the new
+directory to the SUBDIRS setting, or by wrapping it in a conditional
+test.
+
+   The other change is to add it to the AC_OUTPUT list in
+_configure.ac_ so the new directory will be configured along with the
+rest of Gnash.
+
+   Each extension should have an ActionScript source file included that
+tests the new class, and this file should be referenced in the new
+Makefile.am in the _check_PROGRAMS_ variable so that "make check" works.
+
+   When creating an extension that is a wrapper for an existing
+development library API, it's often better to make this a thin layer,
+than to get carried away with creating beautiful abstractions.
+Higher-level classes that offer a lot of new functionality are fine,
+but is different than wrapping a library so it can be used from within
+Gnash.
+
+* Menu:
+
+* Crafting an Extension::
+
+
+File: gnash_ref.info,  Node: Crafting an Extension,  Up: Creating A New 
Extension
+
+4.1.1 Crafting an Extension
+---------------------------
+
+All extensions have the same requirements, namely setting up a few
+defined function callbacks, which the Gnash VM then uses to do the
+right thing. The initial two function callbacks are for handling the
+interface of the newly created object so that Gnash can find and use it.
+
+   The first function is commonly called _attachInterface_, and this
+sets the other function callbacks for all the methods this class
+supports. The method callbacks are attached to the parent class by
+using _init_member()_ to set a C function pointer to the string value
+used in the Flash movie.
+
+
+       // Attach DummyClass 'func1' and 'func2' methods to the given object
+       static void
+       attachInterface(as_object& obj) {
+                 obj.init_member("func1", &ext_func1);
+                 obj.init_member("func2", &ext_func2);
+       }
+
+   The second function is commonly called _getInterface()_, and this
+returns a pointer to a static prototype of the class.  Gnash uses
+garbage collection for ActionScript objects so you need to register the
+static with the VM to give it a chance to be marked as reachable.
+
+
+       static as_object*
+       getInterface()
+       {
+           static boost::intrusive_ptr<as_object> o;
+           if (o == NULL) {
+               o = new as_object();
+                     VM::get().addStatic(o);
+                     attachInterface(*o);
+           }
+           return o.get();
+       }
+
+   This is the callback that gets executed when constructing a new
+object for the VM. In this example we'll assume the new ActionScript
+class is called _DummyExt_, and has two methods, _func1_ and _func2_.
+
+
+       static as_value
+       dummyext_ctor(const fn_call& fn)
+       {
+           DummyExt *obj = new DummyExt(); // will setup prototypes
+
+           return as_value(obj);
+       }
+
+   The trick for the above simple constructor to work is that class
+appartenence is setup in the C++ DummyExt constructor itself, which
+should derive from as_object and construct the base passing it the
+interface (prototype) of it's class.
+
+
+       class DummyExt : public as_object
+             {
+             public:
+           DummyExt()
+                     :
+                     as_object(getInterface()) // returns the static prototype
+                 {}
+
+       };
+
+   Initialize the extension. This is looked for by the extension
+handling code in each extension, and is executed when the extension is
+loaded. This is the main entry point into the extension. This function
+can be found because the prefix of _dummyext_, which also matches the
+file name of the extension. Gnash uses the name of the extension file
+itself when looking for the init function.
+
+
+             extern "C" {
+           void
+           dummyext_class_init(as_object &obj)
+           {
+               static builtin_function* cl=NULL;
+               if (!cl)
+                     {
+                         // Create a builtin function using the given 
constructor
+                         // to instanciate objects and exporting the given 
interface
+                   cl = new builtin_function(&dummyext_ctor, getInterface());
+                   VM::get().addStatic(cl); // will forbid to collect the class
+               }
+
+               obj.init_member("DummyExt", cl);
+           }
+             } // end of extern C
+
+   The callbacks are all C functions. Like all the other code that
+implements ActionScript, parameters to the function are passed in using
+the _fn_call_ data structure. The return code, if any, is also returned
+using this data structure. _this_ptr_ is the object that the method is
+a member of.
+
+
+       // Creates a new button with the label as the text.
+       as_value func1(const fn_call& fn) {
+                 // Following line will ensure 'func1' is called for a 
DummyExt instance,
+                 // or would throw an exception which should behave as if we 
returned the
+                 // undefined value.
+                 boost::intrusive_ptr<DummyExt> ptr = 
ensureType<DummyExt>(fn.this_ptr);
+
+           if (fn.nargs > 0) {
+               std::string label = fn.arg(0).to_string();
+               bool ret = ptr->dummy_text_label(label);
+               return as_value(ret);
+           }
+       }
+
+
+File: gnash_ref.info,  Node: Debugging An Extension,  Next: Included 
Extensions,  Prev: Creating A New Extension,  Up: Gnash Extensions
+
+4.2 Debugging An Extension
+==========================
+
+As extensions are loaded dynamically at runtime, debugging one can be
+difficult. You can use GDB, but you have the problem of not being able
+to set a breakpoint in Gnash until _after_ the extension has been
+loaded into Gnash's VM. The easy solution is to use the Gnash debugger.
+
+   You can insert these few lines in any file that you wish to manually
+start the debugger. Once at the console, you can attach GDB to the
+process. Then you can set breakpoints, etc... and you are at the point
+of execution where the console was started. To then continue playing
+the movie, type the _c_ (for continue) command to the Gnash console.
+
+
+           // Get the debugger instance
+           static Debugger& debugger = Debugger::getDefaultInstance();
+
+           // Enable the debugger
+           debugger.enabled(true);
+           // Stop and drop into a console
+           debugger.console();
+
+   You can also resort to the time honored technique of creating a loop
+before the point you want to set a breakpoint for. Gnash will stop
+playing the movie at this point, and then you can externally attach GDB
+to the running process, or type _^C_ to drop into the GDB command
+console.
+
+
+           bool stall = true;
+           while (stall) {
+               sleep 1;
+           }
+
+   Once you have set the breakpoints you want, reset the value of the
+_stall_ variable to break out of the loop, and the Flash movie will
+then continue playing.
+
+
+           (gdb) set variable stall = false;
+           continue
+
+
+File: gnash_ref.info,  Node: Included Extensions,  Prev: Debugging An 
Extension,  Up: Gnash Extensions
+
+4.3 Included Extensions
+=======================
+
+Gnash has some extensions included in the distribution. This is mostly
+because they were written by the Gnash team. Extensions can be external
+to gnash, Gnash needs no compiled in knowledge to load an extension
+file.
+
+* Menu:
+
+* Gtk Extension::
+* File I/O Extension::
+* MySQL Extension::
+
+
+File: gnash_ref.info,  Node: Gtk Extension,  Next: File I/O Extension,  Up: 
Included Extensions
+
+4.3.1 Gtk Extension
+-------------------
+
+The GTK ActionScript class follows the same API as Gtk2, even down to
+the same arguments to the same function names. This means you're
+actually programming GTK,you're just using ActionScript instead of
+python, perl, or C. This extension makes it possible to write Flash
+movies that use the Gtk2 widgets for user interface components.
+
+window_new
+     Create a new window.
+
+signal_connect
+     Add an event handler to a widget.
+
+container_set_border_width
+     Set the width of the window border.
+
+button_new_with_label
+     Create a new button and give it the specified label.
+
+signal_connect_swapped
+     Swap signals. Commonly used for _delete_ event handling.
+
+container_add
+     Add one widget to another as a child.
+
+widget_show
+     Display the widget on the screen.
+
+main
+     Start the main GTK event loop. This function does not return.
+
+
+File: gnash_ref.info,  Node: File I/O Extension,  Next: MySQL Extension,  
Prev: Gtk Extension,  Up: Included Extensions
+
+4.3.2 File I/O Extension
+------------------------
+
+Flash movies are traditionally forbidden from accessing the filesystem,
+but this may be necessary for some embedded applications. Especially in
+the case of a user console, currently there is no way to get input into
+a Flash movie but through a TextField.
+
+fopen
+     Open the file.
+
+fread
+     Read a series of bytes from the opened file.
+
+fgetc
+     Read a single byte from the opened file.
+
+fgets
+     Read a single line until a Carriage Return from the opened file.
+
+gets
+     Read a single line from the standard in.
+
+getchar
+     Read a single character from the standard in.
+
+fwrite
+
+fputc
+     Write a single character to the opened file.
+
+fputs
+     Write a single line to the opened file.
+
+puts
+     Write a single line to standard out..
+
+putchar
+     Write a single character to standard out..
+
+fflush
+     Flush the current opened file to disk.
+
+fseek
+     Seek to a location within the opened file.
+
+ftell
+     Report the current position within the opened file.
+
+fclose
+     Close the opened file.
+
+
+File: gnash_ref.info,  Node: MySQL Extension,  Prev: File I/O Extension,  Up: 
Included Extensions
+
+4.3.3 MySQL Extension
+---------------------
+
+The MySQL ActionScript class follows the same API as MySQL, even down
+to the same arguments to the same function names. This enables a Flash
+movie to have direct access to a MySQL database. Traditionally Flash
+movies have had no database support, they either had to use arrays, or
+use XML to communicate to an application specific external database
+daemon.
+
+connect
+     Connect to a MySQL database.
+
+qetData
+     Get data from the database.
+
+disconnect
+     Disconnect from a MySQL database.
+
+query
+     Execute an SQL query to the database.
+
+fetch_row
+     Fetch a row from the query results.
+
+num_fields
+
+free_result
+     Free the results of a query.
+
+store_results
+     Store the results of a query.
+
+
+File: gnash_ref.info,  Node: RTMP Protocol,  Next: Mozilla/Firefox NSAPI 
Plugin,  Prev: Gnash Extensions,  Up: Top
+
+5 RTMP Protocol
+***************
+
+This document is based mostly on my own reverse engineering of the RTMP
+protocol and AMF format. _tcpdump_ and _ethereal_ are your friend. Some
+additional info that got me started was from the Red5
+(http://www.osflash.org/red5) project. _Red5_ is the only other open
+source Flash server. So some details are still vague, but as the
+implementation appears to work, we'll figure out what they are later.
+
     The Real Time Messaging Protocol was created by MacroMedia (now
-    Adobe) for delivering Flash objects and video over a network
-    connection. Currently the only servers which support this format
-    are the MacroMedia Media sever, and the Open Source Red5 project.
-  </p><p>
-    This is a simple protocol, optimized for poor bandwidth
-    connections. It can support up to 64 concurrent streams over the
-    same network connection. Part of each AMF packet header contains
-    the index number of the stream. A single RTMP message can contain
-    multiple AMF packets.
-  </p><p>
+Adobe) for delivering Flash objects and video over a network
+connection. Currently the only servers which support this format are
+the MacroMedia Media sever, and the Open Source Red5 project.
+
+   This is a simple protocol, optimized for poor bandwidth connections.
+It can support up to 64 concurrent streams over the same network
+connection. Part of each AMF packet header contains the index number of
+the stream. A single RTMP message can contain multiple AMF packets.
+
     An RTMP connection uses Tcp/ip port 1935. It is also possible to
-    tunnel RTMP over an HTTP connection using port 80. Each AMF packet
-    is 128 bytes long except for streaming audio, which has 64 byte
-    packets.
-  </p><p>
+tunnel RTMP over an HTTP connection using port 80. Each AMF packet is
+128 bytes long except for streaming audio, which has 64 byte packets.
+
     The basics of the RTMP protocol are as follows. All communications
-    are initiated by the client.
-    </p><div class="mediaobject" align="center"><img src="images/rtmp.png" 
align="middle"></div><p>
-  </p><p>
-    The client starts the RTMP connection by sending a single byte
-    with a value of 0x3. This byte is followed by a data block of 1536
-    bytes. The format if this data block is unknown, but it appears to
-    not be actually used by the protocol except as a handshake.
-  </p><p>
+are initiated by the client.
+
+Image of the RTMP protocol.
+
+   The client starts the RTMP connection by sending a single byte with
+a value of 0x3. This byte is followed by a data block of 1536 bytes.
+The format if this data block is unknown, but it appears to not be
+actually used by the protocol except as a handshake.
+
     The server receives this packet, stores the 1536 byte data block,
-    and then send a single byte with the value of 0x3, followed by two
-    1536 data blocks. The second data block is the full contents of
-    the original data block as sent by the client.
-  </p><p>
-    The client receives the 1536 byte data block, and if they match,
-    the connection is established. After the handshake process is
-    done, there are three other messages that the client sends to the
-    sever to start the data flowing.
-  </p><p>
-    The first AMF packet sent to the server contains the
-    <span class="emphasis"><em>connect</em></span> packet. This doesn't appear 
to do
-    much but notify the server the client is happy with the
-    handshake, and ready to start reading packets.
-  </p><p>
-    The second packet is the <span 
class="emphasis"><em>NetConnection</em></span> object from
-    the client. This ActionScript class is used by the Flash movie to
-    create the network connection to the server.
-  </p><p>
-    The third packet is the <span class="emphasis"><em>NetStream</em></span> 
object from the
-    client. This is the ActionScript class used to specify the file to
-    be streamed by the server.
-  </p><p>
+and then send a single byte with the value of 0x3, followed by two 1536
+data blocks. The second data block is the full contents of the original
+data block as sent by the client.
+
+   The client receives the 1536 byte data block, and if they match, the
+connection is established. After the handshake process is done, there
+are three other messages that the client sends to the sever to start
+the data flowing.
+
+   The first AMF packet sent to the server contains the _connect_
+packet. This doesn't appear to do much but notify the server the client
+is happy with the handshake, and ready to start reading packets.
+
+   The second packet is the _NetConnection_ object from the client.
+This ActionScript class is used by the Flash movie to create the
+network connection to the server.
+
+   The third packet is the _NetStream_ object from the client. This is
+the ActionScript class used to specify the file to be streamed by the
+server.
+
     The RTMP packet for our example looks like this:
    
-    </p><pre class="programlisting">
+
       030000190000c91400000000020007connect00?f0000000000000030003app0200#
       software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 0006
       swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
       rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
       \002\000\005userx
-    </pre><p>
     
-    We'll take this apart in a bit, but you can see how all three AMF
-    packets are in the same message. The message is received in
-    several 128 byte blocks, with the last one being less than
-    that. The total size of the RTMP message is in the header, so the
-    reader can tell if the entire message was read or not.
-  </p><p>
+We'll take this apart in a bit, but you can see how all three AMF
+packets are in the same message. The message is received in several 128
+byte blocks, with the last one being less than that. The total size of
+the RTMP message is in the header, so the reader can tell if the entire
+message was read or not.
+
     The RTMP header is first, followed by the connect message as an
-    ASCII string as the message body. The following AMF packet is the
-    <span class="emphasis"><em>NetConnection</em></span> one, which specifies 
that this is coming
-    from a Flash application. This also contains the file path the server
-    can use to find the file to stream. This is then followed by the
-    version number, which I assume is the version of the Flash player,
-    so the server knows what it is talking to.
-  </p><p>
-    The third packet is the one from <span 
class="emphasis"><em>NetStream</em></span>, which
-    specifies the URL used for the movie, followed by the user name
-    for a semblance of security.
-  </p><p>
+ASCII string as the message body. The following AMF packet is the
+_NetConnection_ one, which specifies that this is coming from a Flash
+application. This also contains the file path the server can use to
+find the file to stream. This is then followed by the version number,
+which I assume is the version of the Flash player, so the server knows
+what it is talking to.
+
+   The third packet is the one from _NetStream_, which specifies the
+URL used for the movie, followed by the user name for a semblance of
+security.
+
     For the next level of detail, we'll explain the format of AMF. AMF
-    is used by the RTMP protocol to transfer data. Each Flash object
-    is encapsulated in an AMF packet, including streaming audio or
-    video.
-  </p><p>
+is used by the RTMP protocol to transfer data. Each Flash object is
+encapsulated in an AMF packet, including streaming audio or video.
+
     The first byte of the RTMP header determines two things about the
-    rest of the message. The first 2 bits of this byte signify the
-    total size of the RTMP header. The RTMP header is of a variable
-    size, so this is important.
-
-    </p><div class="variablelist"><dl><dt><span 
class="term">00</span></dt><dd><p>
-           This specifies the header contains 12 bytes, including
-           this one.
-         </p></dd><dt><span class="term">01</span></dt><dd><p>
-           This specifies the header contains 8 bytes, including this
-           one.
-         </p></dd><dt><span class="term">02</span></dt><dd><p>
-           This specifies the header contains 4 bytes, including this
-           one.
-         </p></dd><dt><span class="term">03</span></dt><dd><p>
-           This specifies the header contains 1 byte, so this is the
-           complete header.
-         </p></dd></dl></div><p>
-  </p><p>
+rest of the message. The first 2 bits of this byte signify the total
+size of the RTMP header. The RTMP header is of a variable size, so this
+is important.
+
+00
+     This specifies the header contains 12 bytes, including this one.
+
+01
+     This specifies the header contains 8 bytes, including this one.
+
+02
+     This specifies the header contains 4 bytes, including this one.
+
+03
+     This specifies the header contains 1 byte, so this is the complete
+     header.
+
     The other 6 bits in this byte represent the AMF index. As a single
-    RTMP connection can support multiple data streams, this signifies
-    which stream this packet is for. Once an AMF object is fully
-    received by the client, the AMF index may be reused.
-  </p><p>
+RTMP connection can support multiple data streams, this signifies which
+stream this packet is for. Once an AMF object is fully received by the
+client, the AMF index may be reused.
+
     For messages with headers of at least 4 bytes, the next 3 bytes are
-    used by audio and video data packets, but at this time the meaning
-    of this field is unknown.
-  </p><p>
+used by audio and video data packets, but at this time the meaning of
+this field is unknown.
+
     For messages with a 8 byte or larger header, the next 3 bytes
-    determine the size of the RTMP message being transmitted. Messages
-    with a 1 byte or 4 byte header use a standard size, 128 bytes for
-    video, and 64 bytes for audio.
-  </p><p>
+determine the size of the RTMP message being transmitted. Messages with
+a 1 byte or 4 byte header use a standard size, 128 bytes for video, and
+64 bytes for audio.
+
     For messages with an 8 byte or larger header, the next byte is the
-    type of the AMF object.
+type of the AMF object.
+
+0x3
+     This specifies the content type of the RTMP packet is the number
+     of bytes read. This is used to start the RTMP connection.
+
+0x4
+     This specifies the content type of the RTMP message is a _ping_
+     packet.
+
+0x5
+     This specifies the content type of the RTMP message is server
+     response of some type.
+
+0x6
+     This specifies the content type of the RTMP packet is client
+     request of some type.
+
+0x8
+     This specifies the content type of the RTMP packet is an audio
+     message.
+
+0x9
+     This specifies the content type of the RTMP message is a video
+     packet.
+
+0x12
+     This specifies the content type of the RTMP message is notify.
+
+0x13
+     This specifies the content type of the RTMP message is shared
+     object.
+
+0x14
+     This specifies the content type of the RTMP message is remote
+     procedure call. This invokes the method of a Flash class remotely.
+
+   There are two sets of data types to consider. One set is used by the
+to specify the content type of the AMF object, the other is an
+ActionScript data type tag used to denote which type of object is being
+transferred.
     
-    </p><div class="variablelist"><dl><dt><span 
class="term">0x3</span></dt><dd><p>
-           This specifies the content type of the RTMP packet is the
-           number of bytes read. This is used to start the RTMP
-           connection.
-         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
-           This specifies the content type of the RTMP message is a
-           <span class="emphasis"><em>ping</em></span> packet.
-         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
-           This specifies the content type of the RTMP message is
-           server response of some type.
-         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
-           This specifies the content type of the RTMP packet is
-           client request of some type.
-         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
-           This specifies the content type of the RTMP packet is an
-           audio message.
-         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
-           This specifies the content type of the RTMP message is a
-           video packet.
-         </p></dd><dt><span class="term">0x12</span></dt><dd><p>
-           This specifies the content type of the RTMP message is
-           notify. 
-         </p></dd><dt><span class="term">0x13</span></dt><dd><p>
-           This specifies the content type of the RTMP message is
-           shared object.
-         </p></dd><dt><span class="term">0x14</span></dt><dd><p>
-           This specifies the content type of the RTMP message is
-           remote procedure call. This invokes the method of a Flash
-           class remotely.
-         </p></dd></dl></div><p>     
-  
-  </p><p>
-    There are two sets of data types to consider. One set is used by
-    the to specify the content type of the AMF object, the other is an
-    ActionScript data type tag used to denote which type of object is
-    being transferred.
-  </p><p>
     The values of the initial type byte are:
-    </p><div class="variablelist"><dl><dt><span 
class="term">0x0</span></dt><dd><p>
-           This specifies the data in the AMF packet is a numeric
-           value. All numeric values in Flash are 64 bit,
-           <span class="emphasis"><em>big-endian</em></span>.
-         </p></dd><dt><span class="term">0x1</span></dt><dd><p>
-           This specifies the data in the AMF packet is a boolean
-           value.
-         </p></dd><dt><span class="term">0x2</span></dt><dd><p>
-           This specifies the data in the AMF packet is an
-           <span class="emphasis"><em>ASCII</em></span> string. 
-         </p></dd><dt><span class="term">0x3</span></dt><dd><p>
-           This specifies the data in the AMF packet is a Flash
-           object. The Flash object data type field further along in
-           the message specifies which type of ActionScript object it
-           is.
-         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
-           This specifies the data in the AMF packet is a Flash
-           movie, ie. another Flash movie.
-         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
-           This specifies the data in the AMF packet is a NULL
-           value. NULL is often used as the return code from calling
-           Flash functions.
-         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
-           This specifies the data in the AMF packet is a
-           undefined. This is also used as the return code from
-           calling Flash functions.
-         </p></dd><dt><span class="term">0x7</span></dt><dd><p>
+
+0x0
+     This specifies the data in the AMF packet is a numeric value. All
+     numeric values in Flash are 64 bit, _big-endian_.
+
+0x1
+     This specifies the data in the AMF packet is a boolean value.
+
+0x2
+     This specifies the data in the AMF packet is an _ASCII_ string.
+
+0x3
+     This specifies the data in the AMF packet is a Flash object. The
+     Flash object data type field further along in the message
+     specifies which type of ActionScript object it is.
+
+0x4
+     This specifies the data in the AMF packet is a Flash movie, ie.
+     another Flash movie.
+
+0x5
+     This specifies the data in the AMF packet is a NULL value. NULL is
+     often used as the return code from calling Flash functions.
+
+0x6
+     This specifies the data in the AMF packet is a undefined. This is
+     also used as the return code from calling Flash functions.
+
+0x7
            This specifies the data in the AMF packet is a reference.
-         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
-           This specifies the data in the AMF packet is a ECMA
-           array.
-         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
-           This specifies the data in the AMF packet is the end of an
-           object definition. As an object is transmitted with
-           multiple AMF packets, this lets the server know when the
-           end of the object is reached.
-         </p></dd><dt><span class="term">0xa</span></dt><dd><p>
-           This specifies the data in the AMF packet is a Strict
-           array.
-         </p></dd><dt><span class="term">0xb</span></dt><dd><p>
+
+0x8
+     This specifies the data in the AMF packet is a ECMA array.
+
+0x9
+     This specifies the data in the AMF packet is the end of an object
+     definition. As an object is transmitted with multiple AMF packets,
+     this lets the server know when the end of the object is reached.
+
+0xa
+     This specifies the data in the AMF packet is a Strict array.
+
+0xb
            This specifies the data in the AMF packet is a date.
-         </p></dd><dt><span class="term">0xc</span></dt><dd><p>
-           This specifies the data in the AMF packet is a multi-byte
-           string. Multi-byte strings are used for international
-           language support to represent non <span 
class="emphasis"><em>ASCII</em></span>
-           fonts.
-         </p></dd><dt><span class="term">0xd</span></dt><dd><p>
-           This specifies the data in the AMF packet is a an
-           unsupported feature.
-         </p></dd><dt><span class="term">0xe</span></dt><dd><p>
-           This specifies the data in the AMF packet is a record
-           set.
-         </p></dd><dt><span class="term">0xf</span></dt><dd><p>
-           This specifies the data in the AMF packet is a AML
-           object. XML objects are then parsed by the
-           <span class="emphasis"><em>XML</em></span> ActionScript class.
-         </p></dd><dt><span class="term">0x10</span></dt><dd><p>
+
+0xc
+     This specifies the data in the AMF packet is a multi-byte string.
+     Multi-byte strings are used for international language support to
+     represent non _ASCII_ fonts.
+
+0xd
+     This specifies the data in the AMF packet is a an unsupported
+     feature.
+
+0xe
+     This specifies the data in the AMF packet is a record set.
+
+0xf
+     This specifies the data in the AMF packet is a AML object. XML
+     objects are then parsed by the _XML_ ActionScript class.
+
+0x10
            This specifies the data in the AMF packet is a typed object.
-         </p></dd></dl></div><p>
     
-  </p><p>
-    For messages with a 12 byte header, the last 4 bytes are the
-    routing of the message. If the destination is the server, this
-    value is the NetStream object source. If the destination is the
-    client, this is the NetStream object for this RTMP message. A
-    value of 0x00000000 appears to be reserved for the NetConnection
-    object. 
-  </p><p>
-    Multiple AMF streams can be contained in a single RTMP messages,
-    so it's important to check the index of each AMF packet.
-  </p><p>
+   For messages with a 12 byte header, the last 4 bytes are the routing
+of the message. If the destination is the server, this value is the
+NetStream object source. If the destination is the client, this is the
+NetStream object for this RTMP message. A value of 0x00000000 appears
+to be reserved for the NetConnection object.
+
+   Multiple AMF streams can be contained in a single RTMP messages, so
+it's important to check the index of each AMF packet.
+
     An example RTMP header might look like this. (spaces added between
-    fields for clarity) All the numbers are in hex.
+fields for clarity) All the numbers are in hex.
+
 
-    </p><pre class="screen">
       03 000019 0000c9 14 000000000
-    </pre><p>
     
-    </p><div class="variablelist"><dl><dt><span 
class="term">03</span></dt><dd><p>
-           The first two bits of this byte are the size of the
-           header, which in this example is 00, for a 12 byte
-           header. The next 6 bits is the AMF stream index number,
-           which in this example is 0x3.
-         </p></dd><dt><span class="term">000019</span></dt><dd><p>
+03
+     The first two bits of this byte are the size of the header, which
+     in this example is 00, for a 12 byte header. The next 6 bits is
+     the AMF stream index number, which in this example is 0x3.
+
+000019
            These 3 bytes currently have an unknown purpose.
-         </p></dd><dt><span class="term">000c9</span></dt><dd><p>
-           Since this example has a 12 byte header, this is the size
-           of the RTMP message, in this case 201 bytes.
-         </p></dd><dt><span class="term">14</span></dt><dd><p>
-           This is the content type of the RTMP message, which in
-           this case is to invoke a remote function call. (which we
-           later see is the connect function).
-         </p></dd><dt><span class="term">00000000</span></dt><dd><p>
+
+000c9
+     Since this example has a 12 byte header, this is the size of the
+     RTMP message, in this case 201 bytes.
+
+14
+     This is the content type of the RTMP message, which in this case
+     is to invoke a remote function call. (which we later see is the
+     connect function).
+
+00000000
            The source is the NetConnection object used to start this
            connection.
-         </p></dd></dl></div><p>
 
-  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="amf"></a>AMF 
Format</h2></div></div></div><p>
-    The AMF format is used in the LocalConnection, SharedObject,
-    NetConnection, and NetStream ActionScript classes. This is a means
-    of binary data interchange between Flash movies, or between a
-    Flash player and a Flash server.
-  </p><p>
+* Menu:
+
+* AMF Format::
+
+
+File: gnash_ref.info,  Node: AMF Format,  Up: RTMP Protocol
+
+5.1 AMF Format
+==============
+
+The AMF format is used in the LocalConnection, SharedObject,
+NetConnection, and NetStream ActionScript classes. This is a means of
+binary data interchange between Flash movies, or between a Flash player
+and a Flash server.
+
     Like the RTMP messages, an AMF packet header can be of a variable
-    size. The size is either the same as the initial header of the
-    RTMP message, or a 1 byte header, which is commonly used for
-    streaming audio or video data.
-  </p><p>
-    The body of an AMF packet may look something like this
-    example. The spaces have been added for clarity.
+size. The size is either the same as the initial header of the RTMP
+message, or a 1 byte header, which is commonly used for streaming audio
+or video data.
+
+   The body of an AMF packet may look something like this example. The
+spaces have been added for clarity.
+
     
-    </p><pre class="screen">
       02  0007 636f6e6e656374
-    </pre><p>
 
-    </p><div class="variablelist"><dl><dt><span 
class="term">02</span></dt><dd><p>
-           This is a single byte header. The value of the first 2
-           bits is 0x3, and the AMF index is also 0x3.
-         </p></dd><dt><span class="term">0007</span></dt><dd><p>
+02
+     This is a single byte header. The value of the first 2 bits is
+     0x3, and the AMF index is also 0x3.
+
+0007
            This is the length in bytes of the string.
-         </p></dd><dt><span class="term">63 6f 6e 6e 65 63 
74</span></dt><dd><p>
-           This is the string. Note that there is no null terminator
-           since the length is specified.
-         </p></dd></dl></div><p>
-
-  </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="authors"></a>Chapter 3. 
Authors</h2></div></div></div><p>
-        <span class="application">Gnash</span> is maintained by Rob Savoye. 
Other active developers
-       are: Sandro Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad
-       Musick, Benjamin Wolsey, and Zou Lunkai. Please send all
-       comments and suggestions to <code class="email">&lt;<a 
href="mailto:address@hidden";>address@hidden
-       </a>&gt;</code>. Past and sometimes current developers are Tomas
-       Groth and Markus Gothe.
-    </p><p>
-        <span class="application">Gnash</span> was initially derived from 
<span class="application">GameSWF</span>.
-        <span class="application">GameSWF</span> is maintained by
-        Thatcher Ulrich <code class="email">&lt;<a 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
-        people contributed to <span class="application">GameSWF</span>:
-        Mike Shaver, Thierry Berger-Perrin,
-       Ignacio Castaño, Willem Kokke, Vitaly Alexeev, Alexander Streit, 
-        and Rob Savoye.
-    </p></div><div class="appendix" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="fdl"></a>Appendix A. GNU 
Free Documentation License</h2></div><div><p class="releaseinfo">
-      Version 1.1, March 2000
-    </p></div><div><p class="copyright">Copyright © 2000 Free Software 
Foundation, Inc.</p></div><div><div class="legalnotice"><a 
name="fdl-legalnotice"></a><p>
-       </p><div class="address"><p>Free Software Foundation, Inc. <span 
class="street">59 Temple Place, <br>
-        Suite 330</span>, <span class="city">Boston</span>, <span 
class="state">MA</span>  <br>
-        <span class="postcode">02111-1307</span>  <span 
class="country">USA</span></p></div><p> 
-       Everyone is permitted to copy and distribute verbatim copies of this 
-        license document, but changing it is not allowed.
-      </p></div></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#fdl-preamble">0. 
PREAMBLE</a></span></dt><dt><span class="sect1"><a href="#fdl-section1">1. 
APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section2">2. VERBATIM COPYING</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section3">3. COPYING IN 
QUANTITY</a></span></dt><dt><span class="sect1"><a href="#fdl-section4">4. 
MODIFICATIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section5">5. 
COMBINING DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section6">6. COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="fdl-preamble"></a>0. PREAMBLE</h2></div></div></div><p>
-      The purpose of this License is to make a manual, textbook, or
-      other written document "free" in the sense of
-      freedom: to assure everyone the effective freedom to copy and
-      redistribute it, with or without modifying it, either
-      commercially or non-commercially. Secondarily, this License
-      preserves for the author and publisher a way to get credit for
-      their work, while not being considered responsible for
-      modifications made by others.
-    </p><p>
-      This License is a kind of "copyleft", which means
-      that derivative works of the document must themselves be free in
-      the same sense. It complements the GNU General Public License,
-      which is a copyleft license designed for free software.
-    </p><p>
+
+63 6f 6e 6e 65 63 74
+     This is the string. Note that there is no null terminator since
+     the length is specified.
+
+
+File: gnash_ref.info,  Node: Mozilla/Firefox NSAPI Plugin,  Next: Appendix,  
Prev: RTMP Protocol,  Up: Top
+
+6 Mozilla/Firefox NSAPI Plugin
+******************************
+
+The Mozilla SDK has two API layers for plugins. The older layer is
+documented in the Geeko Plugin API Reference
+(http://www.gnu.org/software/gnash/manual/plugin.pdf), and the newer
+layer doesn't appear to be documented. The new API is simpler, and is
+portable across multiple versions of Mozilla or Firefox. The new API is
+just a layer on top of the older one, so this manual still applies.
+
+   Most of the programming of a plugin is filling in real emphasis for
+the standard API functions and methods. Firefox uses these to create
+the plugin, and to send it data.
+
+   When initializing or destroying a plugin, no matter how many
+instances are being used, the C API is used. These functions are
+typically called once for each plugin that is loaded.
+
+* Menu:
+
+* Plugin C API::
+* Plugin C++ API::
+* OpenGL and Threads::
+* Plugin Event Handling::
+
+
+File: gnash_ref.info,  Node: Plugin C API,  Next: Plugin C++ API,  Up: 
Mozilla/Firefox NSAPI Plugin
+
+6.1 Plugin C API
+================
+
+The lower layer is a C based API which is used by Firefox to initialize
+and destroy a plugin. This is so a plugin can be portable across
+multiple systems, since C++ emphasis is not portable between most C++
+compilers. This is where most of the behind the scenes work is done in
+a plugin. For Gnash, the sources this lower layer are in
+_plugin/mozilla-sdk_. They were added to the Gnash source tree so it
+wouldn't be necessary to have the Mozilla development packages
+installed to compile the Gnash plugin.
+
+   This is also the older API used for plugins, so is usually the one
+used if you dig around for plugin examples on the web. These are the
+main functions which have to be implemented in a plugin for it to be
+recognized by the browser, and to be initialized and destroyed.
+
+NS_PluginInitialize
+     This C function gets called once when the plugin is loaded,
+     regardless of how many instantiations there are actually playing
+     movies. So this is where all the one time only initialization
+     stuff goes that is shared by all the threads.
+
+NS_NewPluginInstance
+     This instantiates a new object for the browser. Returning a
+     pointer to the C++ plugin object is what ties the C++ and C
+     emphasis parts of the API together.
+
+NS_DestroyPluginInstance
+     This destroys our instantiated object when the browser is done.
+
+NS_PluginShutdown
+     This is called when a plugin is shut down, so this is where all
+     the one time only shutdown stuff goes.
+
+NPP_GetMIMEDescription
+     This is called to get the MIME types the plugin supports.
+
+NS_PluginGetValue
+     This is used by Firefox to query information from the plugin, like
+     the supported MIME type, the version number, and a description.
+
+
+File: gnash_ref.info,  Node: Plugin C++ API,  Next: OpenGL and Threads,  Prev: 
Plugin C API,  Up: Mozilla/Firefox NSAPI Plugin
+
+6.2 Plugin C++ API
+==================
+
+The higher level layer is the one we are most concerned with. This is
+an instantiation of the _nsPluginInstanceBase_ class, as defined by the
+Mozilla SDK, for our plugin. With this API, a plugin is mostly defining
+the standard entry points for Firefox, and the emphasis that implements
+the glue between the Firefox and our plugin.
+
+   These are called for each instantiation of plugin. If there are
+three Flash movies on a web page, then three instances are created.
+Unfortunately for plugin programmers, these functions may randomly be
+called more than once, so it's good to use initialization flags for
+things that should only be done one per thread. For instance,
+_nsPluginInstance::init()_ and _nsPluginInstance::SetWindow()_ are
+called more than once, so the plugin must protect against actions that
+could be destructive.
+
+nsPluginInstance::nsPluginInstance
+     Create a new plugin object.
+
+nsPluginInstance::init
+     This methods initializes the plugin object, and is called for
+     every movie which gets played. This is where the thread-specific
+     information goes.
+
+nsPluginInstance::SetWindow
+     This sets up the window the plugin is supposed to render into.
+     This calls passes in various information used by the plugin to
+     setup the window. This may get called multiple times by each
+     instantiated object, so it can't do much but window specific setup
+     here. This is where the main emphasis is that sets up the window
+     for the plugin.
+
+nsPluginInstance::NewStream
+     Opens a new incoming data stream, which is the flash movie we want
+     to play. A URL can be pretty ugly, like in this example:
+     
http://www.sickwave.com/swf/navbar/navbar_sw.swf?atfilms=http%3a//www.atm.com/af/home/&shickwave=http%3a//www.sickwave.com&gblst=http%3a//gbst.sickwave.com/gb/gbHome.jsp&known=0
+     
../flash/gui.swf?ip_addr=foobar.com&ip_port=3660&show_cursor=true&path_prefix=../flash/&trapallkeys=true"
+     So this is where we parse the URL to get all the options passed in
+     when invoking the plugin.
+
+nsPluginInstance::Write
+     Read the data stream from Mozilla/Firefox.  For now we read the
+     bytes and write them to a disk file.
+
+nsPluginInstance::WriteReady
+     Return how many bytes we can read into the buffer.
+
+nsPluginInstance::DestroyStream
+     Destroy the data stream we've been reading. For Gnash, when the
+     stream is destroyed means we've grabbed the entire movie. So we
+     signal the thread to start reading and playing the movie.
+
+nsPluginInstance::shut
+     This is where the movie playing specific shutdown emphasis goes.
+
+nsPluginInstance::~nsPluginInstance
+     This destroys our plugin object.
+
+NS_PluginInitialize::initGL
+     This is a Gnash internal function that sets up OpenGL.
+
+NS_PluginInitialize::destroyContext
+     This is a Gnash internal function that destroys a GLX context.
+
+nsPluginInstance::getVersion
+     This returns the version of Mozilla this plugin supports.
+
+nsPluginInstance::GetValue
+     This returns information to the browser about the plugin's name
+     and description.
+
+nsPluginInstance::URLNotify
+
+
+File: gnash_ref.info,  Node: OpenGL and Threads,  Next: Plugin Event Handling, 
 Prev: Plugin C++ API,  Up: Mozilla/Firefox NSAPI Plugin
+
+6.3 OpenGL and Threads
+======================
+
+Neither OpenGL nor X11 has any built-in support for threads. Most
+actions aren't even atomic, so care has to be made to not corrupt any
+internal data. While it is difficult to render OpenGL from multiple
+threads, it can be done with the proper locking. The downside is the
+locking adds a performance hit, since all the threads will have to have
+the access synchronized by using mutexes.
+
+   The X11 context is maintained one per instantiation of the plugin.
+It is necessary to lock access to the X11 context when using threads by
+using _XLockDisplay()_ and _XUnlockDisplay()_. A connection to the X11
+server is opened for every instantiation of the plugin using
+_XOpenDisplay()_.
+
+   The _GLX Context_ is maintained one per instantiation of the plugin
+for a web page. If there are more than one Flash movie, there is more
+than one GLX Context. A GLX context can be created by using
+_glXCreateContext()_, and then later destroyed by using
+_glXDestroyContext()_.  When swapping threads, the context is changed
+using _glXMakeCurrent()_.
+
+   All the emphasis that directly accesses a GLX context or the X11
+display must be wrapped with a mutex.
+
+
+File: gnash_ref.info,  Node: Plugin Event Handling,  Prev: OpenGL and Threads, 
 Up: Mozilla/Firefox NSAPI Plugin
+
+6.4 Plugin Event Handling
+=========================
+
+Firefox on most UNIX systems is a GTK+ application, so it is possible
+to have the plugin hook into the X11 event handling via GLX or GTK.
+Since Firefox uses GTK, so does Gnash. This also allows the addition of
+a right-click mouse menu for controlling the player. The GTK build of
+Gnash offers the best browsing experience as it's more functional than
+the SDL version.
+
+   It is also possible to disable the _GTK_ support so only the older
+_SDL_ support is used. In this case Gnash can't support event handling
+within the browser. This means that when using the SDL of the plugin,
+mouse clicks and keys pressed get ignored. Windows also can't be
+resized, and sometimes they overrun their boundaries as well. To
+disable the GTK support and force SDL to be used anyway, configure with
+_-disable-glext_
+
+
+File: gnash_ref.info,  Node: Appendix,  Next: Authors,  Prev: Mozilla/Firefox 
NSAPI Plugin,  Up: Top
+
+7 Appendix
+**********
+
+* Menu:
+
+* Code Style::
+
+
+File: gnash_ref.info,  Node: Code Style,  Up: Appendix
+
+7.1 Code Style
+==============
+
+I know any discussion of coding styles leads to strong opinions, so
+I'll state simply I follow the GNU Coding Standards
+(http://www.gnu.org/prep/standards/standards.html). Where there is some
+flexibility as to the location of braces, I prefer mine on the end of a
+line when using an _if_, _while_, or _do_ statement. I find this more
+compact style easier to read and parse by eye. I'm also a big fan of
+always using braces around _if_ statements, even if they're one liners.
+
+   Here's my tweaked style settings for _Emacs_, the one true editor to
+rule them all.
+
+
+           (defconst my-style
+               '((c-tab-always-indent   . t)
+                (c-auto-newline           . t)
+                (c-hanging-braces-alist . (
+                                  (brace-list-intro)
+                                  (namespace-open)
+                                  (inline-open)
+                                  (block-open)
+                                  (brace-list-open)
+                                  (brace-list-close)
+                                  (brace-entry-open)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (class-open after)
+                                  (class-close)
+                                  (defun-open after)
+                                  (defun-close)
+                                  (extern-lang-open)
+                                  (inexpr-class-open)
+                                  (statement-open)
+                                  (substatement-open)
+                                  (inexpr-class-close)))
+                 (c-hanging-colons-alist . ((member-init-intro before)
+                                        (inher-intro)
+                                        (case-label after)
+                                        (label after)
+                                        (access-label after)))
+                 (c-offsets-alist      . (
+                                  (innamespace . 0)
+                                        (case-label  . 2)
+                                  ))
+                 (c-cleanup-list       . (
+                                  (scope-operator)
+                                  (empty-defun-braces)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (defun-close-semi)
+                                  (list-close-comma)
+                                  )
+                               )
+         ;; no automatic newlines after ';' if following line non-blank or 
inside
+         ;; one-line inline methods
+         (add-to-list 'c-hanging-semi&comma-criteria
+                'c-semi&comma-no-newlines-before-nonblanks)
+         (add-to-list 'c-hanging-semi&comma-criteria
+                'c-semi&comma-no-newlines-for-oneline-inliners)
+     ;    (knr-argdecl-intro . -)
+         (c-echo-syntactic-information-p . t)
+         )
+       "My GNU Programming Style")
+
+   Another coding consideration: comments are good!  Over commenting
+isn't good.  Here is an over commented example:
+
+
+       counter++;              // increment counter
+
+Gnash also uses Doxygen (http://www.doxygen.org) style comments. These
+are processed by Doxygen when building a cross reference of all the
+classes, and is a good way to help push internals documentation from
+the depths of the code into documentation where it can be seen by
+others.
+
+   _Doxygen_ style comments for _C++_ code involves simply using three
+slashes _///_ instead of the standard two slashes _//_ used for C++
+comments. Here's a short comment block for the _XML::cloneNode()_
+method:
+
+
+       /// \brief copy a node
+       ///
+       /// Method; constructs and returns a new XML node of the same type,
+       /// name, value, and attributes as the specified XML object. If deep
+       /// is set to true, all child nodes are recursively cloned, resulting
+       /// in an exact copy of the original object's document tree.
+       XMLNode &
+       XML::cloneNode(XMLNode &newnode, bool deep) {
+       ...
+       }
+
+   The _\brief_ keyword means that the text becomes associated when
+listing all the classes on the generated web pages. The text after the
+blank link becomes the detailed description which appears on the
+generated web page for that class and method.
+
+
+File: gnash_ref.info,  Node: Authors,  Next: GNU Free Documentation License,  
Prev: Appendix,  Up: Top
+
+8 Authors
+*********
+
+Gnash is maintained by Rob Savoye. Other active developers are: Sandro
+Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad Musick, Benjamin
+Wolsey, and Zou Lunkai. Please send all comments and suggestions to
+<address@hidden>. Past and sometimes current developers are Tomas
+Groth and Markus Gothe.
+
+   Gnash was initially derived from GameSWF.  GameSWF is maintained by
+Thatcher Ulrich <address@hidden>.  The following people contributed to
+GameSWF: Mike Shaver, Thierry Berger-Perrin, Ignacio Castan~o, Willem
+Kokke, Vitaly Alexeev, Alexander Streit, and Rob Savoye.
+
+
+File: gnash_ref.info,  Node: GNU Free Documentation License,  Prev: Authors,  
Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+* Menu:
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash_ref.info,  Node: 0_ PREAMBLE,  Next: 1_ APPLICABILITY AND 
DEFINITIONS,  Up: GNU Free Documentation License
+
+A.1 0. PREAMBLE
+===============
+
+The purpose of this License is to make a manual, textbook, or other
+written document "free" in the sense of freedom: to assure everyone the
+effective freedom to copy and redistribute it, with or without
+modifying it, either commercially or non-commercially. Secondarily,
+this License preserves for the author and publisher a way to get credit
+for their work, while not being considered responsible for
+modifications made by others.
+
+   This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft license
+designed for free software.
+
       We have designed this License in order to use it for manuals for
-      free software, because free software needs free documentation: a
-      free program should come with manuals providing the same
-      freedoms that the software does. But this License is not limited
-      to software manuals; it can be used for any textual work,
-      regardless of subject matter or whether it is published as a
-      printed book. We recommend this License principally for works
-      whose purpose is instruction or reference.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
-      This License applies to any manual or other work that contains a
-      notice placed by the copyright holder saying it can be
-      distributed under the terms of this License. The
-      "Document", below, refers to any such manual or
-      work. Any member of the public is a licensee, and is addressed
-      as "you".
-    </p><p><a name="fdl-modified"></a>
-      A "Modified Version" of the Document means any work
-      containing the Document or a portion of it, either copied
-      verbatim, or with modifications and/or translated into another
-      language.
-    </p><p><a name="fdl-secondary"></a>
-      A "Secondary Section" is a named appendix or a
-      front-matter section of the <a href="#fdl-document">Document</a> that 
deals exclusively
-      with the relationship of the publishers or authors of the
-      Document to the Document's overall subject (or to related
-      matters) and contains nothing that could fall directly within
-      that overall subject. (For example, if the Document is in part a
-      textbook of mathematics, a Secondary Section may not explain any
-      mathematics.)  The relationship could be a matter of historical
-      connection with the subject or with related matters, or of
-      legal, commercial, philosophical, ethical or political position
-      regarding them.
-    </p><p><a name="fdl-invariant"></a>
-      The "Invariant Sections" are certain <a href="#fdl-secondary"> Secondary 
Sections</a> whose titles
-      are designated, as being those of Invariant Sections, in the
-      notice that says that the <a href="#fdl-document">Document</a> is 
released under this
-      License.
-    </p><p><a name="fdl-cover-texts"></a>
-      The "Cover Texts" are certain short passages of
-      text that are listed, as Front-Cover Texts or Back-Cover Texts,
-      in the notice that says that the <a href="#fdl-document">Document</a> is 
released under this
-      License.
-    </p><p><a name="fdl-transparent"></a>
-      A "Transparent" copy of the <a href="#fdl-document"> Document</a> means 
a machine-readable
-      copy, represented in a format whose specification is available
-      to the general public, whose contents can be viewed and edited
-      directly and straightforwardly with generic text editors or (for
-      images composed of pixels) generic paint programs or (for
-      drawings) some widely available drawing editor, and that is
-      suitable for input to text formatters or for automatic
-      translation to a variety of formats suitable for input to text
-      formatters. A copy made in an otherwise Transparent file format
-      whose markup has been designed to thwart or discourage
-      subsequent modification by readers is not Transparent.  A copy
-      that is not "Transparent" is called "Opaque".
-    </p><p>
-      Examples of suitable formats for Transparent copies include
-      plain ASCII without markup, Texinfo input format, LaTeX input
-      format, SGML or XML using a publicly available DTD, and
-      standard-conforming simple HTML designed for human
-      modification. Opaque formats include PostScript, PDF,
-      proprietary formats that can be read and edited only by
-      proprietary word processors, SGML or XML for which the DTD
-      and/or processing tools are not generally available, and the
-      machine-generated HTML produced by some word processors for
-      output purposes only.
-    </p><p><a name="fdl-title-page"></a>
-      The "Title Page" means, for a printed book, the
-      title page itself, plus such following pages as are needed to
-      hold, legibly, the material this License requires to appear in
-      the title page. For works in formats which do not have any title
-      page as such, "Title Page" means the text near the
-      most prominent appearance of the work's title, preceding the
-      beginning of the body of the text.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
-      You may copy and distribute the <a href="#fdl-document">Document</a> in 
any medium, either
-      commercially or noncommercially, provided that this License, the
-      copyright notices, and the license notice saying this License
-      applies to the Document are reproduced in all copies, and that
-      you add no other conditions whatsoever to those of this
-      License. You may not use technical measures to obstruct or
-      control the reading or further copying of the copies you make or
-      distribute. However, you may accept compensation in exchange for
-      copies. If you distribute a large enough number of copies you
-      must also follow the conditions in <a href="#fdl-section3" title="3. 
COPYING IN QUANTITY">section 3</a>.
-    </p><p>
-      You may also lend copies, under the same conditions stated
-      above, and you may publicly display copies.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
-      If you publish printed copies of the <a 
href="#fdl-document">Document</a> numbering more than 100,
-      and the Document's license notice requires <a 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
-      the copies in covers that carry, clearly and legibly, all these
-      Cover Texts: Front-Cover Texts on the front cover, and
-      Back-Cover Texts on the back cover. Both covers must also
-      clearly and legibly identify you as the publisher of these
-      copies. The front cover must present the full title with all
-      words of the title equally prominent and visible. You may add
-      other material on the covers in addition. Copying with changes
-      limited to the covers, as long as they preserve the title of the
-      <a href="#fdl-document">Document</a> and satisfy these
-      conditions, can be treated as verbatim copying in other
-      respects.
-    </p><p>
+free software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals; it
+can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+File: gnash_ref.info,  Node: 1_ APPLICABILITY AND DEFINITIONS,  Next: 2_ 
VERBATIM COPYING,  Prev: 0_ PREAMBLE,  Up: GNU Free Documentation License
+
+A.2 1. APPLICABILITY AND DEFINITIONS
+====================================
+
+This License applies to any manual or other work that contains a notice
+placed by the copyright holder saying it can be distributed under the
+terms of this License. The "Document", below, refers to any such manual
+or work. Any member of the public is a licensee, and is addressed as
+"you".
+
+   A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+   A "Secondary Section" is a named appendix or a front-matter section
+of the Document (*note fdl-document::) that deals exclusively with the
+relationship of the publishers or authors of the Document to the
+Document's overall subject (or to related matters) and contains nothing
+that could fall directly within that overall subject. (For example, if
+the Document is in part a textbook of mathematics, a Secondary Section
+may not explain any mathematics.)  The relationship could be a matter
+of historical connection with the subject or with related matters, or of
+legal, commercial, philosophical, ethical or political position
+regarding them.
+
+   The "Invariant Sections" are certain  Secondary Sections (*note
+fdl-secondary::) whose titles are designated, as being those of
+Invariant Sections, in the notice that says that the Document (*note
+fdl-document::) is released under this License.
+
+   The "Cover Texts" are certain short passages of text that are
+listed, as Front-Cover Texts or Back-Cover Texts, in the notice that
+says that the Document (*note fdl-document::) is released under this
+License.
+
+   A "Transparent" copy of the  Document (*note fdl-document::) means a
+machine-readable copy, represented in a format whose specification is
+available to the general public, whose contents can be viewed and edited
+directly and straightforwardly with generic text editors or (for images
+composed of pixels) generic paint programs or (for drawings) some
+widely available drawing editor, and that is suitable for input to text
+formatters or for automatic translation to a variety of formats
+suitable for input to text formatters. A copy made in an otherwise
+Transparent file format whose markup has been designed to thwart or
+discourage subsequent modification by readers is not Transparent.  A
+copy that is not "Transparent" is called "Opaque".
+
+   Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML or
+XML using a publicly available DTD, and standard-conforming simple HTML
+designed for human modification. Opaque formats include PostScript, PDF,
+proprietary formats that can be read and edited only by proprietary
+word processors, SGML or XML for which the DTD and/or processing tools
+are not generally available, and the machine-generated HTML produced by
+some word processors for output purposes only.
+
+   The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in formats
+which do not have any title page as such, "Title Page" means the text
+near the most prominent appearance of the work's title, preceding the
+beginning of the body of the text.
+
+
+File: gnash_ref.info,  Node: 2_ VERBATIM COPYING,  Next: 3_ COPYING IN 
QUANTITY,  Prev: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation 
License
+
+A.3 2. VERBATIM COPYING
+=======================
+
+You may copy and distribute the Document (*note fdl-document::) in any
+medium, either commercially or noncommercially, provided that this
+License, the copyright notices, and the license notice saying this
+License applies to the Document are reproduced in all copies, and that
+you add no other conditions whatsoever to those of this License. You
+may not use technical measures to obstruct or control the reading or
+further copying of the copies you make or distribute. However, you may
+accept compensation in exchange for copies. If you distribute a large
+enough number of copies you must also follow the conditions in section
+3 (*note 3_ COPYING IN QUANTITY::).
+
+   You may also lend copies, under the same conditions stated above,
+and you may publicly display copies.
+
+
+File: gnash_ref.info,  Node: 3_ COPYING IN QUANTITY,  Next: 4_ MODIFICATIONS,  
Prev: 2_ VERBATIM COPYING,  Up: GNU Free Documentation License
+
+A.4 3. COPYING IN QUANTITY
+==========================
+
+If you publish printed copies of the Document (*note fdl-document::)
+numbering more than 100, and the Document's license notice requires
+Cover Texts (*note fdl-cover-texts::), you must enclose the copies in
+covers that carry, clearly and legibly, all these Cover Texts:
+Front-Cover Texts on the front cover, and Back-Cover Texts on the back
+cover. Both covers must also clearly and legibly identify you as the
+publisher of these copies. The front cover must present the full title
+with all words of the title equally prominent and visible. You may add
+other material on the covers in addition. Copying with changes limited
+to the covers, as long as they preserve the title of the Document
+(*note fdl-document::) and satisfy these conditions, can be treated as
+verbatim copying in other respects.
+
       If the required texts for either cover are too voluminous to fit
-      legibly, you should put the first ones listed (as many as fit
-      reasonably) on the actual cover, and continue the rest onto
-      adjacent pages.
-    </p><p>
-      If you publish or distribute <a href="#fdl-transparent">Opaque</a> 
copies of the <a href="#fdl-document">Document</a> numbering more than 100,
-      you must either include a machine-readable <a 
href="#fdl-transparent">Transparent</a> copy along with
-      each Opaque copy, or state in or with each Opaque copy a
-      publicly-accessible computer-network location containing a
-      complete Transparent copy of the Document, free of added
-      material, which the general network-using public has access to
-      download anonymously at no charge using public-standard network
-      protocols. If you use the latter option, you must take
-      reasonably prudent steps, when you begin distribution of Opaque
-      copies in quantity, to ensure that this Transparent copy will
-      remain thus accessible at the stated location until at least one
-      year after the last time you distribute an Opaque copy (directly
-      or through your agents or retailers) of that edition to the
-      public.
-    </p><p>
-      It is requested, but not required, that you contact the authors
-      of the <a href="#fdl-document">Document</a> well before
-      redistributing any large number of copies, to give them a chance
-      to provide you with an updated version of the Document.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
-      You may copy and distribute a <a href="#fdl-modified">Modified 
Version</a> of the <a href="#fdl-document">Document</a> under the conditions of
-      sections <a href="#fdl-section2" title="2. VERBATIM COPYING">2</a> and 
<a href="#fdl-section3" title="3. COPYING IN QUANTITY">3</a> above, provided 
that you release
-      the Modified Version under precisely this License, with the
-      Modified Version filling the role of the Document, thus
-      licensing distribution and modification of the Modified Version
-      to whoever possesses a copy of it. In addition, you must do
-      these things in the Modified Version:
-    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
-           Use in the <a href="#fdl-title-page">Title
-           Page</a> (and on the covers, if any) a title distinct
-           from that of the <a href="#fdl-document">Document</a>, and from 
those of
-           previous versions (which should, if there were any, be
-           listed in the History section of the Document). You may
-           use the same title as a previous version if the original
-           publisher of that version gives permission.
-         </p></li><li style="list-style-type: circle"><p><b>B. </b>
-           List on the <a href="#fdl-title-page">Title
-           Page</a>, as authors, one or more persons or entities
-           responsible for authorship of the modifications in the
-           <a href="#fdl-modified">Modified Version</a>,
-           together with at least five of the principal authors of
-           the <a href="#fdl-document">Document</a> (all of
-           its principal authors, if it has less than five).
-         </p></li><li style="list-style-type: circle"><p><b>C. </b>
-           State on the <a href="#fdl-title-page">Title
-           Page</a> the name of the publisher of the <a 
href="#fdl-modified">Modified Version</a>, as the
-           publisher.
-         </p></li><li style="list-style-type: circle"><p><b>D. </b>
-           Preserve all the copyright notices of the <a 
href="#fdl-document">Document</a>.
-         </p></li><li style="list-style-type: circle"><p><b>E. </b>
-           Add an appropriate copyright notice for your modifications
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+   If you publish or distribute Opaque (*note fdl-transparent::) copies
+of the Document (*note fdl-document::) numbering more than 100, you
+must either include a machine-readable Transparent (*note
+fdl-transparent::) copy along with each Opaque copy, or state in or
+with each Opaque copy a publicly-accessible computer-network location
+containing a complete Transparent copy of the Document, free of added
+material, which the general network-using public has access to download
+anonymously at no charge using public-standard network protocols. If
+you use the latter option, you must take reasonably prudent steps, when
+you begin distribution of Opaque copies in quantity, to ensure that
+this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+   It is requested, but not required, that you contact the authors of
+the Document (*note fdl-document::) well before redistributing any
+large number of copies, to give them a chance to provide you with an
+updated version of the Document.
+
+
+File: gnash_ref.info,  Node: 4_ MODIFICATIONS,  Next: 5_ COMBINING DOCUMENTS,  
Prev: 3_ COPYING IN QUANTITY,  Up: GNU Free Documentation License
+
+A.5 4. MODIFICATIONS
+====================
+
+You may copy and distribute a Modified Version (*note fdl-modified::)
+of the Document (*note fdl-document::) under the conditions of sections
+2 (*note 2_ VERBATIM COPYING::) and 3 (*note 3_ COPYING IN QUANTITY::)
+above, provided that you release the Modified Version under precisely
+this License, with the Modified Version filling the role of the
+Document, thus licensing distribution and modification of the Modified
+Version to whoever possesses a copy of it. In addition, you must do
+these things in the Modified Version:
+
+   * *A. * Use in the Title Page (*note fdl-title-page::) (and on the
+     covers, if any) a title distinct from that of the Document (*note
+     fdl-document::), and from those of previous versions (which
+     should, if there were any, be listed in the History section of the
+     Document). You may use the same title as a previous version if the
+     original publisher of that version gives permission.
+
+   * *B. * List on the Title Page (*note fdl-title-page::), as authors,
+     one or more persons or entities responsible for authorship of the
+     modifications in the Modified Version (*note fdl-modified::),
+     together with at least five of the principal authors of the
+     Document (*note fdl-document::) (all of its principal authors, if
+     it has less than five).
+
+   * *C. * State on the Title Page (*note fdl-title-page::) the name of
+     the publisher of the Modified Version (*note fdl-modified::), as
+     the publisher.
+
+   * *D. * Preserve all the copyright notices of the Document (*note
+     fdl-document::).
+
+   * *E. * Add an appropriate copyright notice for your modifications
            adjacent to the other copyright notices.
-         </p></li><li style="list-style-type: circle"><p><b>F. </b>
-           Include, immediately after the copyright notices, a
-           license notice giving the public permission to use the
-           <a href="#fdl-modified">Modified Version</a> under
-           the terms of this License, in the form shown in the
-           Addendum below.
-         </p></li><li style="list-style-type: circle"><p><b>G. </b>
-           Preserve in that license notice the full lists of <a 
href="#fdl-invariant"> Invariant Sections</a> and
-           required <a href="#fdl-cover-texts">Cover
-           Texts</a> given in the <a href="#fdl-document">Document's</a> 
license notice.
-         </p></li><li style="list-style-type: circle"><p><b>H. </b>
-           Include an unaltered copy of this License.
-         </p></li><li style="list-style-type: circle"><p><b>I. </b>
-           Preserve the section entitled "History", and
-           its title, and add to it an item stating at least the
-           title, year, new authors, and publisher of the <a 
href="#fdl-modified">Modified Version </a>as given on
-           the <a href="#fdl-title-page">Title Page</a>.  If
-           there is no section entitled "History" in the
-           <a href="#fdl-document">Document</a>, create one
-           stating the title, year, authors, and publisher of the
-           Document as given on its Title Page, then add an item
-           describing the Modified Version as stated in the previous
-           sentence.
-         </p></li><li style="list-style-type: circle"><p><b>J. </b>
-           Preserve the network location, if any, given in the <a 
href="#fdl-document">Document</a> for public access
-           to a <a href="#fdl-transparent">Transparent</a>
-           copy of the Document, and likewise the network locations
-           given in the Document for previous versions it was based
-           on. These may be placed in the "History"
-           section.  You may omit a network location for a work that
-           was published at least four years before the Document
-           itself, or if the original publisher of the version it
-           refers to gives permission.
-         </p></li><li style="list-style-type: circle"><p><b>K. </b>
-           In any section entitled "Acknowledgements" or
-           "Dedications", preserve the section's title,
-           and preserve in the section all the substance and tone of
-           each of the contributor acknowledgements and/or
-           dedications given therein.
-         </p></li><li style="list-style-type: circle"><p><b>L. </b>
-           Preserve all the <a href="#fdl-invariant">Invariant
-           Sections</a> of the <a href="#fdl-document">Document</a>, unaltered 
in their
-           text and in their titles.  Section numbers or the
-           equivalent are not considered part of the section titles.
-         </p></li><li style="list-style-type: circle"><p><b>M. </b>
-           Delete any section entitled
-           "Endorsements". Such a section may not be
-           included in the <a href="#fdl-modified">Modified
-           Version</a>.
-         </p></li><li style="list-style-type: circle"><p><b>N. </b>
-           Do not retitle any existing section as
-           "Endorsements" or to conflict in title with
-           any <a href="#fdl-invariant">Invariant
-           Section</a>.
-         </p></li></ul></div><p>
-      If the <a href="#fdl-modified">Modified Version</a>
-      includes new front-matter sections or appendices that qualify as
-      <a href="#fdl-secondary">Secondary Sections</a> and
-      contain no material copied from the Document, you may at your
-      option designate some or all of these sections as invariant. To
-      do this, add their titles to the list of <a 
href="#fdl-invariant">Invariant Sections</a> in the
-      Modified Version's license notice.  These titles must be
-      distinct from any other section titles.
-    </p><p>
-      You may add a section entitled "Endorsements",
-      provided it contains nothing but endorsements of your <a 
href="#fdl-modified">Modified Version</a> by various
-      parties--for example, statements of peer review or that the text
-      has been approved by an organization as the authoritative
-      definition of a standard.
-    </p><p>
-      You may add a passage of up to five words as a <a 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
-      of up to 25 words as a <a href="#fdl-cover-texts">Back-Cover Text</a>, 
to the end of
-      the list of <a href="#fdl-cover-texts">Cover Texts</a>
-      in the <a href="#fdl-modified">Modified Version</a>.
-      Only one passage of Front-Cover Text and one of Back-Cover Text
-      may be added by (or through arrangements made by) any one
-      entity. If the <a href="#fdl-document">Document</a>
-      already includes a cover text for the same cover, previously
-      added by you or by arrangement made by the same entity you are
-      acting on behalf of, you may not add another; but you may
-      replace the old one, on explicit permission from the previous
-      publisher that added the old one.
-    </p><p>
-      The author(s) and publisher(s) of the <a 
href="#fdl-document">Document</a> do not by this License
-      give permission to use their names for publicity for or to
-      assert or imply endorsement of any <a href="#fdl-modified">Modified 
Version </a>.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
-      You may combine the <a href="#fdl-document">Document</a>
-      with other documents released under this License, under the
-      terms defined in <a href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
-      above for modified versions, provided that you include in the
-      combination all of the <a href="#fdl-invariant">Invariant
-      Sections</a> of all of the original documents, unmodified,
-      and list them all as Invariant Sections of your combined work in
-      its license notice.
-    </p><p>
-      The combined work need only contain one copy of this License,
-      and multiple identical <a href="#fdl-invariant">Invariant
-      Sections</a> may be replaced with a single copy. If there are
-      multiple Invariant Sections with the same name but different
-      contents, make the title of each such section unique by adding
-      at the end of it, in parentheses, the name of the original
-      author or publisher of that section if known, or else a unique
-      number. Make the same adjustment to the section titles in the
-      list of Invariant Sections in the license notice of the combined
-      work.
-    </p><p>
-      In the combination, you must combine any sections entitled
-      "History" in the various original documents,
-      forming one section entitled "History"; likewise
-      combine any sections entitled "Acknowledgements",
-      and any sections entitled "Dedications".  You must
-      delete all sections entitled "Endorsements."
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
-      You may make a collection consisting of the <a 
href="#fdl-document">Document</a> and other documents
-      released under this License, and replace the individual copies
-      of this License in the various documents with a single copy that
-      is included in the collection, provided that you follow the
-      rules of this License for verbatim copying of each of the
-      documents in all other respects.
-    </p><p>
+
+   * *F. * Include, immediately after the copyright notices, a license
+     notice giving the public permission to use the Modified Version
+     (*note fdl-modified::) under the terms of this License, in the
+     form shown in the Addendum below.
+
+   * *G. * Preserve in that license notice the full lists of  Invariant
+     Sections (*note fdl-invariant::) and required Cover Texts (*note
+     fdl-cover-texts::) given in the Document's (*note fdl-document::)
+     license notice.
+
+   * *H. * Include an unaltered copy of this License.
+
+   * *I. * Preserve the section entitled "History", and its title, and
+     add to it an item stating at least the title, year, new authors,
+     and publisher of the Modified Version  (*note fdl-modified::)as
+     given on the Title Page (*note fdl-title-page::).  If there is no
+     section entitled "History" in the Document (*note fdl-document::),
+     create one stating the title, year, authors, and publisher of the
+     Document as given on its Title Page, then add an item describing
+     the Modified Version as stated in the previous sentence.
+
+   * *J. * Preserve the network location, if any, given in the Document
+     (*note fdl-document::) for public access to a Transparent (*note
+     fdl-transparent::) copy of the Document, and likewise the network
+     locations given in the Document for previous versions it was based
+     on. These may be placed in the "History" section.  You may omit a
+     network location for a work that was published at least four years
+     before the Document itself, or if the original publisher of the
+     version it refers to gives permission.
+
+   * *K. * In any section entitled "Acknowledgements" or "Dedications",
+     preserve the section's title, and preserve in the section all the
+     substance and tone of each of the contributor acknowledgements
+     and/or dedications given therein.
+
+   * *L. * Preserve all the Invariant Sections (*note fdl-invariant::)
+     of the Document (*note fdl-document::), unaltered in their text
+     and in their titles.  Section numbers or the equivalent are not
+     considered part of the section titles.
+
+   * *M. * Delete any section entitled "Endorsements". Such a section
+     may not be included in the Modified Version (*note fdl-modified::).
+
+   * *N. * Do not retitle any existing section as "Endorsements" or to
+     conflict in title with any Invariant Section (*note
+     fdl-invariant::).
+
+   If the Modified Version (*note fdl-modified::) includes new
+front-matter sections or appendices that qualify as Secondary Sections
+(*note fdl-secondary::) and contain no material copied from the
+Document, you may at your option designate some or all of these
+sections as invariant. To do this, add their titles to the list of
+Invariant Sections (*note fdl-invariant::) in the Modified Version's
+license notice.  These titles must be distinct from any other section
+titles.
+
+   You may add a section entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version (*note
+fdl-modified::) by various parties-for example, statements of peer
+review or that the text has been approved by an organization as the
+authoritative definition of a standard.
+
+   You may add a passage of up to five words as a Front-Cover Text
+(*note fdl-cover-texts::), and a passage of up to 25 words as a
+Back-Cover Text (*note fdl-cover-texts::), to the end of the list of
+Cover Texts (*note fdl-cover-texts::) in the Modified Version (*note
+fdl-modified::).  Only one passage of Front-Cover Text and one of
+Back-Cover Text may be added by (or through arrangements made by) any
+one entity. If the Document (*note fdl-document::) already includes a
+cover text for the same cover, previously added by you or by
+arrangement made by the same entity you are acting on behalf of, you
+may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+   The author(s) and publisher(s) of the Document (*note
+fdl-document::) do not by this License give permission to use their
+names for publicity for or to assert or imply endorsement of any
+Modified Version  (*note fdl-modified::).
+
+
+File: gnash_ref.info,  Node: 5_ COMBINING DOCUMENTS,  Next: 6_ COLLECTIONS OF 
DOCUMENTS,  Prev: 4_ MODIFICATIONS,  Up: GNU Free Documentation License
+
+A.6 5. COMBINING DOCUMENTS
+==========================
+
+You may combine the Document (*note fdl-document::) with other
+documents released under this License, under the terms defined in
+section 4 (*note 4_ MODIFICATIONS::) above for modified versions,
+provided that you include in the combination all of the Invariant
+Sections (*note fdl-invariant::) of all of the original documents,
+unmodified, and list them all as Invariant Sections of your combined
+work in its license notice.
+
+   The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections (*note fdl-invariant::) may be
+replaced with a single copy. If there are multiple Invariant Sections
+with the same name but different contents, make the title of each such
+section unique by adding at the end of it, in parentheses, the name of
+the original author or publisher of that section if known, or else a
+unique number. Make the same adjustment to the section titles in the
+list of Invariant Sections in the license notice of the combined work.
+
+   In the combination, you must combine any sections entitled "History"
+in the various original documents, forming one section entitled
+"History"; likewise combine any sections entitled "Acknowledgements",
+and any sections entitled "Dedications".  You must delete all sections
+entitled "Endorsements."
+
+
+File: gnash_ref.info,  Node: 6_ COLLECTIONS OF DOCUMENTS,  Next: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Prev: 5_ COMBINING DOCUMENTS,  Up: GNU 
Free Documentation License
+
+A.7 6. COLLECTIONS OF DOCUMENTS
+===============================
+
+You may make a collection consisting of the Document (*note
+fdl-document::) and other documents released under this License, and
+replace the individual copies of this License in the various documents
+with a single copy that is included in the collection, provided that
+you follow the rules of this License for verbatim copying of each of the
+documents in all other respects.
+
       You may extract a single document from such a collection, and
-      distribute it individually under this License, provided you
-      insert a copy of this License into the extracted document, and
-      follow this License in all other respects regarding verbatim
-      copying of that document.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
-      A compilation of the <a href="#fdl-document">Document</a> or its 
derivatives with
-      other separate and independent documents or works, in or on a
-      volume of a storage or distribution medium, does not as a whole
-      count as a <a href="#fdl-modified">Modified Version</a>
-      of the Document, provided no compilation copyright is claimed
-      for the compilation.  Such a compilation is called an
-      "aggregate", and this License does not apply to the
-      other self-contained works thus compiled with the Document , on
-      account of their being thus compiled, if they are not themselves
-      derivative works of the Document.  If the <a 
href="#fdl-cover-texts">Cover Text</a> requirement of <a href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a> is applicable to these
-      copies of the Document, then if the Document is less than one
-      quarter of the entire aggregate, the Document's Cover Texts may
-      be placed on covers that surround only the Document within the
-      aggregate. Otherwise they must appear on covers around the whole
-      aggregate.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
-      Translation is considered a kind of modification, so you may
-      distribute translations of the <a href="#fdl-document">Document</a> 
under the terms of <a href="#fdl-section4" title="4. MODIFICATIONS">section 
4</a>. Replacing <a href="#fdl-invariant"> Invariant Sections</a> with
-      translations requires special permission from their copyright
-      holders, but you may include translations of some or all
-      Invariant Sections in addition to the original versions of these
-      Invariant Sections. You may include a translation of this
-      License provided that you also include the original English
-      version of this License. In case of a disagreement between the
-      translation and the original English version of this License,
-      the original English version will prevail.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
-      You may not copy, modify, sublicense, or distribute the <a 
href="#fdl-document">Document</a> except as expressly
-      provided for under this License. Any other attempt to copy,
-      modify, sublicense or distribute the Document is void, and will
-      automatically terminate your rights under this License. However,
-      parties who have received copies, or rights, from you under this
-      License will not have their licenses terminated so long as such
-      parties remain in full compliance.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
-      The <a href="http://www.gnu.org/fsf/fsf.html"; target="_top">Free Software
-      Foundation</a> may publish new, revised versions of the GNU
-      Free Documentation License from time to time. Such new versions
-      will be similar in spirit to the present version, but may differ
-      in detail to address new problems or concerns. See <a 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
-    </p><p>
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+
+File: gnash_ref.info,  Node: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Next: 8_ 
TRANSLATION,  Prev: 6_ COLLECTIONS OF DOCUMENTS,  Up: GNU Free Documentation 
License
+
+A.8 7. AGGREGATION WITH INDEPENDENT WORKS
+=========================================
+
+A compilation of the Document (*note fdl-document::) or its derivatives
+with other separate and independent documents or works, in or on a
+volume of a storage or distribution medium, does not as a whole count
+as a Modified Version (*note fdl-modified::) of the Document, provided
+no compilation copyright is claimed for the compilation.  Such a
+compilation is called an "aggregate", and this License does not apply
+to the other self-contained works thus compiled with the Document , on
+account of their being thus compiled, if they are not themselves
+derivative works of the Document.  If the Cover Text (*note
+fdl-cover-texts::) requirement of section 3 (*note 3_ COPYING IN
+QUANTITY::) is applicable to these copies of the Document, then if the
+Document is less than one quarter of the entire aggregate, the
+Document's Cover Texts may be placed on covers that surround only the
+Document within the aggregate. Otherwise they must appear on covers
+around the whole aggregate.
+
+
+File: gnash_ref.info,  Node: 8_ TRANSLATION,  Next: 9_ TERMINATION,  Prev: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Up: GNU Free Documentation License
+
+A.9 8. TRANSLATION
+==================
+
+Translation is considered a kind of modification, so you may distribute
+translations of the Document (*note fdl-document::) under the terms of
+section 4 (*note 4_ MODIFICATIONS::). Replacing  Invariant Sections
+(*note fdl-invariant::) with translations requires special permission
+from their copyright holders, but you may include translations of some
+or all Invariant Sections in addition to the original versions of these
+Invariant Sections. You may include a translation of this License
+provided that you also include the original English version of this
+License. In case of a disagreement between the translation and the
+original English version of this License, the original English version
+will prevail.
+
+
+File: gnash_ref.info,  Node: 9_ TERMINATION,  Next: 10_ FUTURE REVISIONS OF 
THIS LICENSE,  Prev: 8_ TRANSLATION,  Up: GNU Free Documentation License
+
+A.10 9. TERMINATION
+===================
+
+You may not copy, modify, sublicense, or distribute the Document (*note
+fdl-document::) except as expressly provided for under this License.
+Any other attempt to copy, modify, sublicense or distribute the
+Document is void, and will automatically terminate your rights under
+this License. However, parties who have received copies, or rights,
+from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+
+File: gnash_ref.info,  Node: 10_ FUTURE REVISIONS OF THIS LICENSE,  Next: 
Addendum,  Prev: 9_ TERMINATION,  Up: GNU Free Documentation License
+
+A.11 10. FUTURE REVISIONS OF THIS LICENSE
+=========================================
+
+The Free Software Foundation (http://www.gnu.org/fsf/fsf.html) may
+publish new, revised versions of the GNU Free Documentation License
+from time to time. Such new versions will be similar in spirit to the
+present version, but may differ in detail to address new problems or
+concerns. See http://www.gnu.org/copyleft/
+(http://www.gnu.org/copyleft).
+
       Each version of the License is given a distinguishing version
-      number. If the <a href="#fdl-document">Document</a>
-      specifies that a particular numbered version of this License
-      "or any later version" applies to it, you have the
-      option of following the terms and conditions either of that
-      specified version or of any later version that has been
-      published (not as a draft) by the Free Software Foundation. If
-      the Document does not specify a version number of this License,
-      you may choose any version ever published (not as a draft) by
-      the Free Software Foundation.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
-      To use this License in a document you have written, include a copy of
-      the License in the document and put the following copyright and
-      license notices just after the title page:
-    </p><div class="blockquote"><blockquote class="blockquote"><p>
+number. If the Document (*note fdl-document::) specifies that a
+particular numbered version of this License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that specified version or of any later version
+that has been published (not as a draft) by the Free Software
+Foundation. If the Document does not specify a version number of this
+License, you may choose any version ever published (not as a draft) by
+the Free Software Foundation.
+
+
+File: gnash_ref.info,  Node: Addendum,  Prev: 10_ FUTURE REVISIONS OF THIS 
LICENSE,  Up: GNU Free Documentation License
+
+A.12 Addendum
+=============
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
        Copyright 2008, Free Software Foundation.
-      </p><p>
+
        Permission is granted to copy, distribute and/or modify this
-       document under the terms of the GNU Free Documentation
-       License, Version 1.1 or any later version published by the
-       Free Software Foundation; with no<a href="#fdl-invariant">Invariant 
Sections</a>, with no <a href="#fdl-cover-texts">Front-Cover Texts</a>,
-       and with no <a href="#fdl-cover-texts">Back-Cover
-       Texts</a>. A copy of the license is included in
-       the section entitled "GNU Free Documentation License".
-      </p></blockquote></div><p>
-      If your document contains nontrivial examples of program code,
-      we recommend releasing these examples in parallel under your
-      choice of free software license, such as the <a 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
-      License</a>, to permit their use in free software.
-    </p></div></div></div></body></html>
+     document under the terms of the GNU Free Documentation License,
+     Version 1.1 or any later version published by the Free Software
+     Foundation; with noInvariant Sections (*note fdl-invariant::),
+     with no Front-Cover Texts (*note fdl-cover-texts::), and with no
+     Back-Cover Texts (*note fdl-cover-texts::). A copy of the license
+     is included in the section entitled "GNU Free Documentation
+     License".
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License
+(http://www.gnu.org/copyleft/gpl.html), to permit their use in free
+software.
+
+
+
+Tag Table:
+Node: Top168
+Node: Introduction1821
+Node: Audience2622
+Node: What Is Supported ?2950
+Node: Building from Source5482
+Node: Overview5862
+Node: Getting The Source6907
+Node: Releases7113
+Node: CVS Access7481
+Node: Code Dependencies8193
+Ref: Code Dependency Table8890
+Node: Testing Dependencies34405
+Ref: Testing Dependency Table34713
+Node: Documentation Dependencies38637
+Ref: Documentation Dependency Table38906
+Node: Configuring Gnash47974
+Node: Features50296
+Ref: Configuration Options - Features50896
+Node: Specifying Custom Paths57226
+Ref: Custom Path Options57701
+Node: Compiling the Code67371
+Node: Creating the Documentation68312
+Node: Running the Tests69648
+Node: Using DejaGnu70093
+Node: Increasing Verbosity70456
+Node: Running Some Tests70992
+Node: Running The Tests Manually71812
+Node: Movie tests72474
+Node: ActionScript Unit Tests72828
+Node: Installation73145
+Node: Libraries74421
+Node: Executables75308
+Node: Documentation76178
+Node: Cross Configuring76933
+Node: Software Internals80008
+Node: A Tour of Gnash80279
+Node: The Libraries80846
+Node: libgnashbase81149
+Node: libgnashgeo81573
+Node: libgnashgui81788
+Node: libgnashserver82057
+Node: libgnashasobjs82428
+Node: libgnashamf82664
+Node: libgnashbackend83087
+Node: libgnashplugin83402
+Node: libklashpart83608
+Node: The Applications83778
+Node: The Standalone Player84145
+Node: Gprocesser84443
+Node: SOLdumper84837
+Node: Dumpshm85104
+Node: The Plugin85323
+Node: Current Status85801
+Node: GUI Support86359
+Node: Mozplugger88040
+Node: Klash89931
+Node: The Debug Logging System90481
+Node: Logging System C API92042
+Node: Logging System C++ API94246
+Node: Sound handling in Gnash96087
+Node: Sound types96918
+Node: Sound parsing97455
+Node: Sound playback98023
+Node: The SDL sound backend98553
+Node: The Gstreamer backend99872
+Node: Future audio backends100888
+Node: Detailed description of the Gstreamer backend101378
+Node: Testing103629
+Node: Testing Tools104100
+Node: Test Cases104932
+Node: Writing ActionScript Tests105511
+Node: Writing Ming-based self-contained SWF tests108014
+Node: Using Ming-based test generators facilities109171
+Node: Writing self-contained SWF tests with other compilers111531
+Node: Writing Test Runners114624
+Node: Using the generic test runner for self-contained SWF tests116373
+Node: Writing Movie testers118462
+Node: Adding New ActionScript Class120202
+Node: Prototype121382
+Node: Declaration122799
+Node: Instantiation123064
+Node: Methods123691
+Node: Accessing Arguments124082
+Node: Returning a Value to ActionScript124478
+Node: Additional fn_call Members124857
+Node: Dynamic Properties125711
+Node: The as_value Object Type127216
+Node: Data Types127654
+Node: Determining the Type127975
+Node: Fetching the Value128507
+Node: Setting the Value and Type128997
+Node: Further Reading129591
+Node: Object ActionScript Class130006
+Node: The Methods of the Class130346
+Node: The Properties of the Object Class130685
+Node: Object Class Conformance131000
+Node: Gnash Extensions132539
+Node: Creating A New Extension134813
+Node: Crafting an Extension136229
+Node: Debugging An Extension140533
+Node: Included Extensions142225
+Node: Gtk Extension142669
+Node: File I/O Extension143656
+Node: MySQL Extension144842
+Node: RTMP Protocol145693
+Node: AMF Format155489
+Node: Mozilla/Firefox NSAPI Plugin156465
+Node: Plugin C API157483
+Node: Plugin C++ API159342
+Node: OpenGL and Threads162606
+Node: Plugin Event Handling163934
+Node: Appendix164903
+Node: Code Style165055
+Node: Authors168885
+Node: GNU Free Documentation License169581
+Node: 0_ PREAMBLE170344
+Node: 1_ APPLICABILITY AND DEFINITIONS171650
+Ref: fdl-document171875
+Ref: fdl-modified172166
+Ref: fdl-secondary172353
+Ref: fdl-invariant172998
+Ref: fdl-cover-texts173247
+Ref: fdl-transparent173460
+Ref: fdl-title-page174750
+Node: 2_ VERBATIM COPYING175139
+Node: 3_ COPYING IN QUANTITY176119
+Node: 4_ MODIFICATIONS178476
+Node: 5_ COMBINING DOCUMENTS184536
+Node: 6_ COLLECTIONS OF DOCUMENTS186033
+Node: 7_ AGGREGATION WITH INDEPENDENT WORKS186924
+Node: 8_ TRANSLATION188152
+Node: 9_ TERMINATION189055
+Node: 10_ FUTURE REVISIONS OF THIS LICENSE189710
+Node: Addendum190850
+
+End Tag Table
+
+
+Local Variables:
+coding: US-ASCII
+End:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]