<chapter id="intro">
  <title>Introduction</title>
  
  <para>
    &app; 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 on a wide variety of devices from
    embedded ones to modern desktops.
  </para>

  <para>
    &app; 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 classes. You can write
    wrappers for any development library, and import them into the
    player much like Perl or Python does.
  </para>

  <sect1 id="audience">
    <title>Audience</title>
    
    <para>
      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.
    </para>
    
  </sect1>    
  
  <sect1 id="runs-on">
    <title>What Is Supported?</title>
    
    <para>
      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 known to
      run on are Ubuntu, Fedora, Debian, Mandriva, 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.
    </para>
    
    <para>
      Gnash is capable of reading up to SWF v9 files and opcodes,
      but primarily supports SWF v7, with better SWF v8 and v9
      support under heavy development. Since 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.
    </para>
    
    <para>
      Gnash has implemented about 80% of ActionScript v2.0, and has
      begun implementing ActionScript v3.0. Gnash supports the
      majority of Flash opcodes up to SWF v9, and a wide
      sampling of ActionScript classes for SWF v8.
    </para>
     <para>
      As ActionScript 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 classes is often the
      easiest way for new Gnash developers to make a contribution
      without a deep internal knowledge of Gnash.
    </para>
    
    <para>
      Gnash has included video support since early 2007, but this is
      an ever changing field of reverse engineering. Many of the
      popular video sharing sites use SWF v8 or v9, which Gnash
      supports imperfectly. 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: <ulink type="http" url="http://www.gnashdev.org/dev_snapshots/">
      http://www.gnashdev.org/dev_snapshots</ulink>.
    </para>
    
    <para>
      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.
    </para>
  </sect1>

</chapter>

