add gnash_la_CPPFLAGS to see if it makes distcheck happy
[gnash.git] / packaging / doc / gnash_ref.info.in
blobc3d3a1a6b00039caa16204d0a0664bd8c243d154
1 This is gnash_ref.info, produced by makeinfo version 4.8 from
2 gnashref.texi.
4 START-INFO-DIR-ENTRY
5 * Gnash Reference Manual: (gnash_ref).   [MISSING TEXT]
6 END-INFO-DIR-ENTRY
8 \x1f
9 File: gnash_ref.info,  Node: Top,  Next: Introduction,  Up: (dir)
11 Gnash Reference Manual
12 **********************
14 * Menu:
16 * Introduction::
17 * RTMP Protocol::
18 * Authors::
19 * GNU Free Documentation License::
21 --- The Detailed Node Listing ---
23 Introduction
25 * Audience::
26 * What Is Supported ?::
28 RTMP Protocol
30 * AMF Format::
32 GNU Free Documentation License
34 * 0. PREAMBLE: 0_ PREAMBLE.
35 * 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
36 * 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
37 * 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
38 * 4. MODIFICATIONS: 4_ MODIFICATIONS.
39 * 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
40 * 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
41 * 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
42 * 8. TRANSLATION: 8_ TRANSLATION.
43 * 9. TERMINATION: 9_ TERMINATION.
44 * 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
45 * Addendum::
47 \x1f
48 File: gnash_ref.info,  Node: Introduction,  Next: RTMP Protocol,  Prev: Top,  Up: Top
50 1 Introduction
51 **************
53 Gnash is a free SWF movie player.  It is available as a stand-alone
54 application or as a plugin for several popular web browsers. It
55 supports playing media from a disk or streaming over a network
56 connection. Some popular video sharing sites like YouTube are supported
57 from a wide vaariety of devices from embedded ones to modern desktops.
59    Gnash has a better focus on security, allowing the user tight
60 control of all network or disk based I/O. Gnash also supports extending
61 ActionScript by creating your own. You can write wrappers for any
62 development library, and import them into the player much like perl or
63 python does.
65 * Menu:
67 * Audience::
68 * What Is Supported ?::
70 \x1f
71 File: gnash_ref.info,  Node: Audience,  Next: What Is Supported ?,  Up: Introduction
73 1.1 Audience
74 ============
76 This manual is primarily focused on users interested in how to get
77 Gnash installed from a package, and basic usage as a web browser
78 plugin. For more technical details, please refer to the Gnash Reference
79 manual.
81 \x1f
82 File: gnash_ref.info,  Node: What Is Supported ?,  Prev: Audience,  Up: Introduction
84 1.2 What Is Supported ?
85 =======================
87 Gnash is known to compile for most any POSIX and ANSI C++ conforming
88 system if you have all the dependent libraries installed. Systems we
89 test on, and which Gnash is know to run on are Ubuntu, Fedora, Debian,
90 OpenBSD, NetBSD, FreeBSD, Win32, and Darwin (OSX) primarily.
91 Occasionally other platforms are built, primarily by those distribution
92 maintainers. This includes BeOS, Haiku, Syllable, OS/2, Solaris,
93 Slackware, and Gentoo.
95    Gnash is a capable of reading up to SWF v9 files and opcodes, but
96 primarily supports SWF v7, with better SWF v8 and v9 support under
97 heavy developement. With the 0.8.2 release, Gnash includes initial
98 parser support for SWF v8 and v9.  Not all ActionScript 2 classes are
99 implemented yet, but all of the most heavily used ones are. Many
100 ActionScript 2 classes are partially implemented; there is support for
101 all of the commonly used methods of each class.
103    Gnash has implemented about 80% of ActionScript v. 2.0, and has
104 begun implementing ActionScript v. 3.0. Gnash supports the majority of
105 Flash opcodes up to SWF version 9, and a wide sampling of ActionScript
106 classes for SWF version 8.
108    As ActionsScript 3 is a more developed version of ActionScript 2,
109 many of the same classes work for both. Support has been added to
110 Gnash's ActionScript library to support the new ActionScript 3 filters,
111 which get applied to every class. Implementing ActionScript clases is
112 often the easiest way for new Gnash developers to make a contribution
113 without a deep internal knpowledge of Gnash.
115    Gnash has included video support since early 2007, but this is an
116 every changing field of reverse engineering. Many of the popular video
117 sharing sites use SWF v8 or v9, which Gnash still has imperfect support
118 for. This is improving all the time, so often builds from a development
119 snapshot will work when using the older release packaged in your
120 distribution doesn't. You can find daily snapshots of the latest CVS
121 tree at: http://www.gnashdev.org/dev_snapshots
122 (http://www.gnashdev.org/dev_snapshots/).
124    Gnash uses ffmpeg for codecs, so any file supported by Mplayer
125 should work with Gnash. Gnash supports the loading of patent free
126 codecs like Ogg Vorbis or Theora from disk based files, while work is
127 being done to support these codecs when embedded in a SWF file. Ffmpeg
128 contains the codecs used by the current SWF defintion, FLV, VP6 (ON2),
129 H.263, H.264, and MP3.
131 \x1f
132 File: gnash_ref.info,  Node: RTMP Protocol,  Next: Authors,  Prev: Introduction,  Up: Top
134 2 RTMP Protocol
135 ***************
137 This document is based mostly on my own reverse engineering of the RTMP
138 protocol and AMF format. _tcpdump_ and _ethereal_ are your friend. Some
139 additional info that got me started was from the Red5
140 (http://www.osflash.org/red5) project. _Red5_ is the only other open
141 source Flash server. So some details are still vague, but as the
142 implementation appears to work, we'll figure out what they are later.
144    The Real Time Messaging Protocol was created by MacroMedia (now
145 Adobe) for delivering Flash objects and video over a network
146 connection. Currently the only servers which support this format are
147 the MacroMedia Media sever, and the Open Source Red5 project.
149    This is a simple protocol, optimized for poor bandwidth connections.
150 It can support up to 64 concurrent streams over the same network
151 connection. Part of each AMF packet header contains the index number of
152 the stream. A single RTMP message can contain multiple AMF packets.
154    An RTMP connection uses Tcp/ip port 1935. It is also possible to
155 tunnel RTMP over an HTTP connection using port 80. Each AMF packet is
156 128 bytes long except for streaming audio, which has 64 byte packets.
158    The basics of the RTMP protocol are as follows. All communications
159 are initiated by the client.
161 Image of the RTMP protocol.
163    The client starts the RTMP connection by sending a single byte with
164 a value of 0x3. This byte is followed by a data block of 1536 bytes.
165 The format if this data block is unknown, but it appears to not be
166 actually used by the protocol except as a handshake.
168    The server receives this packet, stores the 1536 byte data block,
169 and then send a single byte with the value of 0x3, followed by two 1536
170 data blocks. The second data block is the full contents of the original
171 data block as sent by the client.
173    The client receives the 1536 byte data block, and if they match, the
174 connection is established. After the handshake process is done, there
175 are three other messages that the client sends to the sever to start
176 the data flowing.
178    The first AMF packet sent to the server contains the _connect_
179 packet. This doesn't appear to do much but notify the server the client
180 is happy with the handshake, and ready to start reading packets.
182    The second packet is the _NetConnection_ object from the client.
183 This ActionScript class is used by the Flash movie to create the
184 network connection to the server.
186    The third packet is the _NetStream_ object from the client. This is
187 the ActionScript class used to specify the file to be streamed by the
188 server.
190    The RTMP packet for our example looks like this:
193            030000190000c91400000000020007connect00?f0000000000000030003app0200#
194            software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 0006
195            swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
196            rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
197            \002\000\005userx
199 We'll take this apart in a bit, but you can see how all three AMF
200 packets are in the same message. The message is received in several 128
201 byte blocks, with the last one being less than that. The total size of
202 the RTMP message is in the header, so the reader can tell if the entire
203 message was read or not.
205    The RTMP header is first, followed by the connect message as an
206 ASCII string as the message body. The following AMF packet is the
207 _NetConnection_ one, which specifies that this is coming from a Flash
208 application. This also contains the file path the server can use to
209 find the file to stream. This is then followed by the version number,
210 which I assume is the version of the Flash player, so the server knows
211 what it is talking to.
213    The third packet is the one from _NetStream_, which specifies the
214 URL used for the movie, followed by the user name for a semblance of
215 security.
217    For the next level of detail, we'll explain the format of AMF. AMF
218 is used by the RTMP protocol to transfer data. Each Flash object is
219 encapsulated in an AMF packet, including streaming audio or video.
221    The first byte of the RTMP header determines two things about the
222 rest of the message. The first 2 bits of this byte signify the total
223 size of the RTMP header. The RTMP header is of a variable size, so this
224 is important.
227      This specifies the header contains 12 bytes, including this one.
230      This specifies the header contains 8 bytes, including this one.
233      This specifies the header contains 4 bytes, including this one.
236      This specifies the header contains 1 byte, so this is the complete
237      header.
239    The other 6 bits in this byte represent the AMF index. As a single
240 RTMP connection can support multiple data streams, this signifies which
241 stream this packet is for. Once an AMF object is fully received by the
242 client, the AMF index may be reused.
244    For messages with headers of at least 4 bytes, the next 3 bytes are
245 used by audio and video data packets, but at this time the meaning of
246 this field is unknown.
248    For messages with a 8 byte or larger header, the next 3 bytes
249 determine the size of the RTMP message being transmitted. Messages with
250 a 1 byte or 4 byte header use a standard size, 128 bytes for video, and
251 64 bytes for audio.
253    For messages with an 8 byte or larger header, the next byte is the
254 type of the AMF object.
257      This specifies the content type of the RTMP packet is the number
258      of bytes read. This is used to start the RTMP connection.
261      This specifies the content type of the RTMP message is a _ping_
262      packet.
265      This specifies the content type of the RTMP message is server
266      response of some type.
269      This specifies the content type of the RTMP packet is client
270      request of some type.
273      This specifies the content type of the RTMP packet is an audio
274      message.
277      This specifies the content type of the RTMP message is a video
278      packet.
280 0x12
281      This specifies the content type of the RTMP message is notify.
283 0x13
284      This specifies the content type of the RTMP message is shared
285      object.
287 0x14
288      This specifies the content type of the RTMP message is remote
289      procedure call. This invokes the method of a Flash class remotely.
291    There are two sets of data types to consider. One set is used by the
292 to specify the content type of the AMF object, the other is an
293 ActionScript data type tag used to denote which type of object is being
294 transferred.
296    The values of the initial type byte are:
299      This specifies the data in the AMF packet is a numeric value. All
300      numeric values in Flash are 64 bit, _big-endian_.
303      This specifies the data in the AMF packet is a boolean value.
306      This specifies the data in the AMF packet is an _ASCII_ string.
309      This specifies the data in the AMF packet is a Flash object. The
310      Flash object data type field further along in the message
311      specifies which type of ActionScript object it is.
314      This specifies the data in the AMF packet is a Flash movie, ie.
315      another Flash movie.
318      This specifies the data in the AMF packet is a NULL value. NULL is
319      often used as the return code from calling Flash functions.
322      This specifies the data in the AMF packet is a undefined. This is
323      also used as the return code from calling Flash functions.
326      This specifies the data in the AMF packet is a reference.
329      This specifies the data in the AMF packet is a ECMA array.
332      This specifies the data in the AMF packet is the end of an object
333      definition. As an object is transmitted with multiple AMF packets,
334      this lets the server know when the end of the object is reached.
337      This specifies the data in the AMF packet is a Strict array.
340      This specifies the data in the AMF packet is a date.
343      This specifies the data in the AMF packet is a multi-byte string.
344      Multi-byte strings are used for international language support to
345      represent non _ASCII_ fonts.
348      This specifies the data in the AMF packet is a an unsupported
349      feature.
352      This specifies the data in the AMF packet is a record set.
355      This specifies the data in the AMF packet is a AML object. XML
356      objects are then parsed by the _XML_ ActionScript class.
358 0x10
359      This specifies the data in the AMF packet is a typed object.
361    For messages with a 12 byte header, the last 4 bytes are the routing
362 of the message. If the destination is the server, this value is the
363 NetStream object source. If the destination is the client, this is the
364 NetStream object for this RTMP message. A value of 0x00000000 appears
365 to be reserved for the NetConnection object.
367    Multiple AMF streams can be contained in a single RTMP messages, so
368 it's important to check the index of each AMF packet.
370    An example RTMP header might look like this. (spaces added between
371 fields for clarity) All the numbers are in hex.
374            03 000019 0000c9 14 000000000
377      The first two bits of this byte are the size of the header, which
378      in this example is 00, for a 12 byte header. The next 6 bits is
379      the AMF stream index number, which in this example is 0x3.
381 000019
382      These 3 bytes currently have an unknown purpose.
384 000c9
385      Since this example has a 12 byte header, this is the size of the
386      RTMP message, in this case 201 bytes.
389      This is the content type of the RTMP message, which in this case
390      is to invoke a remote function call. (which we later see is the
391      connect function).
393 00000000
394      The source is the NetConnection object used to start this
395      connection.
397 * Menu:
399 * AMF Format::
401 \x1f
402 File: gnash_ref.info,  Node: AMF Format,  Up: RTMP Protocol
404 2.1 AMF Format
405 ==============
407 The AMF format is used in the LocalConnection, SharedObject,
408 NetConnection, and NetStream ActionScript classes. This is a means of
409 binary data interchange between Flash movies, or between a Flash player
410 and a Flash server.
412    Like the RTMP messages, an AMF packet header can be of a variable
413 size. The size is either the same as the initial header of the RTMP
414 message, or a 1 byte header, which is commonly used for streaming audio
415 or video data.
417    The body of an AMF packet may look something like this example. The
418 spaces have been added for clarity.
421            02  0007 636f6e6e656374
424      This is a single byte header. The value of the first 2 bits is
425      0x3, and the AMF index is also 0x3.
427 0007
428      This is the length in bytes of the string.
430 63 6f 6e 6e 65 63 74
431      This is the string. Note that there is no null terminator since
432      the length is specified.
434 \x1f
435 File: gnash_ref.info,  Node: Authors,  Next: GNU Free Documentation License,  Prev: RTMP Protocol,  Up: Top
437 3 Authors
438 *********
440 Gnash is maintained by Rob Savoye. Other active developers are: Sandro
441 Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad Musick, Benjamin
442 Wolsey, and Zou Lunkai. Please send all comments and suggestions to
443 <gnash-dev@gnu.org>. Past and sometimes current developers are Tomas
444 Groth and Markus Gothe.
446    Gnash was initially derived from GameSWF.  GameSWF is maintained by
447 Thatcher Ulrich <tu@tulrich.com>.  The following people contributed to
448 GameSWF: Mike Shaver, Thierry Berger-Perrin, Ignacio Castan~o, Willem
449 Kokke, Vitaly Alexeev, Alexander Streit, and Rob Savoye.
451 \x1f
452 File: gnash_ref.info,  Node: GNU Free Documentation License,  Prev: Authors,  Up: Top
454 Appendix A GNU Free Documentation License
455 *****************************************
457 * Menu:
459 * 0. PREAMBLE: 0_ PREAMBLE.
460 * 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
461 * 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
462 * 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
463 * 4. MODIFICATIONS: 4_ MODIFICATIONS.
464 * 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
465 * 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
466 * 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
467 * 8. TRANSLATION: 8_ TRANSLATION.
468 * 9. TERMINATION: 9_ TERMINATION.
469 * 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
470 * Addendum::
472 \x1f
473 File: gnash_ref.info,  Node: 0_ PREAMBLE,  Next: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation License
475 A.1 0. PREAMBLE
476 ===============
478 The purpose of this License is to make a manual, textbook, or other
479 written document "free" in the sense of freedom: to assure everyone the
480 effective freedom to copy and redistribute it, with or without
481 modifying it, either commercially or non-commercially. Secondarily,
482 this License preserves for the author and publisher a way to get credit
483 for their work, while not being considered responsible for
484 modifications made by others.
486    This License is a kind of "copyleft", which means that derivative
487 works of the document must themselves be free in the same sense. It
488 complements the GNU General Public License, which is a copyleft license
489 designed for free software.
491    We have designed this License in order to use it for manuals for
492 free software, because free software needs free documentation: a free
493 program should come with manuals providing the same freedoms that the
494 software does. But this License is not limited to software manuals; it
495 can be used for any textual work, regardless of subject matter or
496 whether it is published as a printed book. We recommend this License
497 principally for works whose purpose is instruction or reference.
499 \x1f
500 File: gnash_ref.info,  Node: 1_ APPLICABILITY AND DEFINITIONS,  Next: 2_ VERBATIM COPYING,  Prev: 0_ PREAMBLE,  Up: GNU Free Documentation License
502 A.2 1. APPLICABILITY AND DEFINITIONS
503 ====================================
505 This License applies to any manual or other work that contains a notice
506 placed by the copyright holder saying it can be distributed under the
507 terms of this License. The "Document", below, refers to any such manual
508 or work. Any member of the public is a licensee, and is addressed as
509 "you".
511    A "Modified Version" of the Document means any work containing the
512 Document or a portion of it, either copied verbatim, or with
513 modifications and/or translated into another language.
515    A "Secondary Section" is a named appendix or a front-matter section
516 of the Document (*note fdl-document::) that deals exclusively with the
517 relationship of the publishers or authors of the Document to the
518 Document's overall subject (or to related matters) and contains nothing
519 that could fall directly within that overall subject. (For example, if
520 the Document is in part a textbook of mathematics, a Secondary Section
521 may not explain any mathematics.)  The relationship could be a matter
522 of historical connection with the subject or with related matters, or of
523 legal, commercial, philosophical, ethical or political position
524 regarding them.
526    The "Invariant Sections" are certain  Secondary Sections (*note
527 fdl-secondary::) whose titles are designated, as being those of
528 Invariant Sections, in the notice that says that the Document (*note
529 fdl-document::) is released under this License.
531    The "Cover Texts" are certain short passages of text that are
532 listed, as Front-Cover Texts or Back-Cover Texts, in the notice that
533 says that the Document (*note fdl-document::) is released under this
534 License.
536    A "Transparent" copy of the  Document (*note fdl-document::) means a
537 machine-readable copy, represented in a format whose specification is
538 available to the general public, whose contents can be viewed and edited
539 directly and straightforwardly with generic text editors or (for images
540 composed of pixels) generic paint programs or (for drawings) some
541 widely available drawing editor, and that is suitable for input to text
542 formatters or for automatic translation to a variety of formats
543 suitable for input to text formatters. A copy made in an otherwise
544 Transparent file format whose markup has been designed to thwart or
545 discourage subsequent modification by readers is not Transparent.  A
546 copy that is not "Transparent" is called "Opaque".
548    Examples of suitable formats for Transparent copies include plain
549 ASCII without markup, Texinfo input format, LaTeX input format, SGML or
550 XML using a publicly available DTD, and standard-conforming simple HTML
551 designed for human modification. Opaque formats include PostScript, PDF,
552 proprietary formats that can be read and edited only by proprietary
553 word processors, SGML or XML for which the DTD and/or processing tools
554 are not generally available, and the machine-generated HTML produced by
555 some word processors for output purposes only.
557    The "Title Page" means, for a printed book, the title page itself,
558 plus such following pages as are needed to hold, legibly, the material
559 this License requires to appear in the title page. For works in formats
560 which do not have any title page as such, "Title Page" means the text
561 near the most prominent appearance of the work's title, preceding the
562 beginning of the body of the text.
564 \x1f
565 File: gnash_ref.info,  Node: 2_ VERBATIM COPYING,  Next: 3_ COPYING IN QUANTITY,  Prev: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation License
567 A.3 2. VERBATIM COPYING
568 =======================
570 You may copy and distribute the Document (*note fdl-document::) in any
571 medium, either commercially or noncommercially, provided that this
572 License, the copyright notices, and the license notice saying this
573 License applies to the Document are reproduced in all copies, and that
574 you add no other conditions whatsoever to those of this License. You
575 may not use technical measures to obstruct or control the reading or
576 further copying of the copies you make or distribute. However, you may
577 accept compensation in exchange for copies. If you distribute a large
578 enough number of copies you must also follow the conditions in section
579 3 (*note 3_ COPYING IN QUANTITY::).
581    You may also lend copies, under the same conditions stated above,
582 and you may publicly display copies.
584 \x1f
585 File: gnash_ref.info,  Node: 3_ COPYING IN QUANTITY,  Next: 4_ MODIFICATIONS,  Prev: 2_ VERBATIM COPYING,  Up: GNU Free Documentation License
587 A.4 3. COPYING IN QUANTITY
588 ==========================
590 If you publish printed copies of the Document (*note fdl-document::)
591 numbering more than 100, and the Document's license notice requires
592 Cover Texts (*note fdl-cover-texts::), you must enclose the copies in
593 covers that carry, clearly and legibly, all these Cover Texts:
594 Front-Cover Texts on the front cover, and Back-Cover Texts on the back
595 cover. Both covers must also clearly and legibly identify you as the
596 publisher of these copies. The front cover must present the full title
597 with all words of the title equally prominent and visible. You may add
598 other material on the covers in addition. Copying with changes limited
599 to the covers, as long as they preserve the title of the Document
600 (*note fdl-document::) and satisfy these conditions, can be treated as
601 verbatim copying in other respects.
603    If the required texts for either cover are too voluminous to fit
604 legibly, you should put the first ones listed (as many as fit
605 reasonably) on the actual cover, and continue the rest onto adjacent
606 pages.
608    If you publish or distribute Opaque (*note fdl-transparent::) copies
609 of the Document (*note fdl-document::) numbering more than 100, you
610 must either include a machine-readable Transparent (*note
611 fdl-transparent::) copy along with each Opaque copy, or state in or
612 with each Opaque copy a publicly-accessible computer-network location
613 containing a complete Transparent copy of the Document, free of added
614 material, which the general network-using public has access to download
615 anonymously at no charge using public-standard network protocols. If
616 you use the latter option, you must take reasonably prudent steps, when
617 you begin distribution of Opaque copies in quantity, to ensure that
618 this Transparent copy will remain thus accessible at the stated
619 location until at least one year after the last time you distribute an
620 Opaque copy (directly or through your agents or retailers) of that
621 edition to the public.
623    It is requested, but not required, that you contact the authors of
624 the Document (*note fdl-document::) well before redistributing any
625 large number of copies, to give them a chance to provide you with an
626 updated version of the Document.
628 \x1f
629 File: gnash_ref.info,  Node: 4_ MODIFICATIONS,  Next: 5_ COMBINING DOCUMENTS,  Prev: 3_ COPYING IN QUANTITY,  Up: GNU Free Documentation License
631 A.5 4. MODIFICATIONS
632 ====================
634 You may copy and distribute a Modified Version (*note fdl-modified::)
635 of the Document (*note fdl-document::) under the conditions of sections
636 2 (*note 2_ VERBATIM COPYING::) and 3 (*note 3_ COPYING IN QUANTITY::)
637 above, provided that you release the Modified Version under precisely
638 this License, with the Modified Version filling the role of the
639 Document, thus licensing distribution and modification of the Modified
640 Version to whoever possesses a copy of it. In addition, you must do
641 these things in the Modified Version:
643    * *A. * Use in the Title Page (*note fdl-title-page::) (and on the
644      covers, if any) a title distinct from that of the Document (*note
645      fdl-document::), and from those of previous versions (which
646      should, if there were any, be listed in the History section of the
647      Document). You may use the same title as a previous version if the
648      original publisher of that version gives permission.
650    * *B. * List on the Title Page (*note fdl-title-page::), as authors,
651      one or more persons or entities responsible for authorship of the
652      modifications in the Modified Version (*note fdl-modified::),
653      together with at least five of the principal authors of the
654      Document (*note fdl-document::) (all of its principal authors, if
655      it has less than five).
657    * *C. * State on the Title Page (*note fdl-title-page::) the name of
658      the publisher of the Modified Version (*note fdl-modified::), as
659      the publisher.
661    * *D. * Preserve all the copyright notices of the Document (*note
662      fdl-document::).
664    * *E. * Add an appropriate copyright notice for your modifications
665      adjacent to the other copyright notices.
667    * *F. * Include, immediately after the copyright notices, a license
668      notice giving the public permission to use the Modified Version
669      (*note fdl-modified::) under the terms of this License, in the
670      form shown in the Addendum below.
672    * *G. * Preserve in that license notice the full lists of  Invariant
673      Sections (*note fdl-invariant::) and required Cover Texts (*note
674      fdl-cover-texts::) given in the Document's (*note fdl-document::)
675      license notice.
677    * *H. * Include an unaltered copy of this License.
679    * *I. * Preserve the section entitled "History", and its title, and
680      add to it an item stating at least the title, year, new authors,
681      and publisher of the Modified Version  (*note fdl-modified::)as
682      given on the Title Page (*note fdl-title-page::).  If there is no
683      section entitled "History" in the Document (*note fdl-document::),
684      create one stating the title, year, authors, and publisher of the
685      Document as given on its Title Page, then add an item describing
686      the Modified Version as stated in the previous sentence.
688    * *J. * Preserve the network location, if any, given in the Document
689      (*note fdl-document::) for public access to a Transparent (*note
690      fdl-transparent::) copy of the Document, and likewise the network
691      locations given in the Document for previous versions it was based
692      on. These may be placed in the "History" section.  You may omit a
693      network location for a work that was published at least four years
694      before the Document itself, or if the original publisher of the
695      version it refers to gives permission.
697    * *K. * In any section entitled "Acknowledgements" or "Dedications",
698      preserve the section's title, and preserve in the section all the
699      substance and tone of each of the contributor acknowledgements
700      and/or dedications given therein.
702    * *L. * Preserve all the Invariant Sections (*note fdl-invariant::)
703      of the Document (*note fdl-document::), unaltered in their text
704      and in their titles.  Section numbers or the equivalent are not
705      considered part of the section titles.
707    * *M. * Delete any section entitled "Endorsements". Such a section
708      may not be included in the Modified Version (*note fdl-modified::).
710    * *N. * Do not retitle any existing section as "Endorsements" or to
711      conflict in title with any Invariant Section (*note
712      fdl-invariant::).
714    If the Modified Version (*note fdl-modified::) includes new
715 front-matter sections or appendices that qualify as Secondary Sections
716 (*note fdl-secondary::) and contain no material copied from the
717 Document, you may at your option designate some or all of these
718 sections as invariant. To do this, add their titles to the list of
719 Invariant Sections (*note fdl-invariant::) in the Modified Version's
720 license notice.  These titles must be distinct from any other section
721 titles.
723    You may add a section entitled "Endorsements", provided it contains
724 nothing but endorsements of your Modified Version (*note
725 fdl-modified::) by various parties-for example, statements of peer
726 review or that the text has been approved by an organization as the
727 authoritative definition of a standard.
729    You may add a passage of up to five words as a Front-Cover Text
730 (*note fdl-cover-texts::), and a passage of up to 25 words as a
731 Back-Cover Text (*note fdl-cover-texts::), to the end of the list of
732 Cover Texts (*note fdl-cover-texts::) in the Modified Version (*note
733 fdl-modified::).  Only one passage of Front-Cover Text and one of
734 Back-Cover Text may be added by (or through arrangements made by) any
735 one entity. If the Document (*note fdl-document::) already includes a
736 cover text for the same cover, previously added by you or by
737 arrangement made by the same entity you are acting on behalf of, you
738 may not add another; but you may replace the old one, on explicit
739 permission from the previous publisher that added the old one.
741    The author(s) and publisher(s) of the Document (*note
742 fdl-document::) do not by this License give permission to use their
743 names for publicity for or to assert or imply endorsement of any
744 Modified Version  (*note fdl-modified::).
746 \x1f
747 File: gnash_ref.info,  Node: 5_ COMBINING DOCUMENTS,  Next: 6_ COLLECTIONS OF DOCUMENTS,  Prev: 4_ MODIFICATIONS,  Up: GNU Free Documentation License
749 A.6 5. COMBINING DOCUMENTS
750 ==========================
752 You may combine the Document (*note fdl-document::) with other
753 documents released under this License, under the terms defined in
754 section 4 (*note 4_ MODIFICATIONS::) above for modified versions,
755 provided that you include in the combination all of the Invariant
756 Sections (*note fdl-invariant::) of all of the original documents,
757 unmodified, and list them all as Invariant Sections of your combined
758 work in its license notice.
760    The combined work need only contain one copy of this License, and
761 multiple identical Invariant Sections (*note fdl-invariant::) may be
762 replaced with a single copy. If there are multiple Invariant Sections
763 with the same name but different contents, make the title of each such
764 section unique by adding at the end of it, in parentheses, the name of
765 the original author or publisher of that section if known, or else a
766 unique number. Make the same adjustment to the section titles in the
767 list of Invariant Sections in the license notice of the combined work.
769    In the combination, you must combine any sections entitled "History"
770 in the various original documents, forming one section entitled
771 "History"; likewise combine any sections entitled "Acknowledgements",
772 and any sections entitled "Dedications".  You must delete all sections
773 entitled "Endorsements."
775 \x1f
776 File: gnash_ref.info,  Node: 6_ COLLECTIONS OF DOCUMENTS,  Next: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Prev: 5_ COMBINING DOCUMENTS,  Up: GNU Free Documentation License
778 A.7 6. COLLECTIONS OF DOCUMENTS
779 ===============================
781 You may make a collection consisting of the Document (*note
782 fdl-document::) and other documents released under this License, and
783 replace the individual copies of this License in the various documents
784 with a single copy that is included in the collection, provided that
785 you follow the rules of this License for verbatim copying of each of the
786 documents in all other respects.
788    You may extract a single document from such a collection, and
789 distribute it individually under this License, provided you insert a
790 copy of this License into the extracted document, and follow this
791 License in all other respects regarding verbatim copying of that
792 document.
794 \x1f
795 File: gnash_ref.info,  Node: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Next: 8_ TRANSLATION,  Prev: 6_ COLLECTIONS OF DOCUMENTS,  Up: GNU Free Documentation License
797 A.8 7. AGGREGATION WITH INDEPENDENT WORKS
798 =========================================
800 A compilation of the Document (*note fdl-document::) or its derivatives
801 with other separate and independent documents or works, in or on a
802 volume of a storage or distribution medium, does not as a whole count
803 as a Modified Version (*note fdl-modified::) of the Document, provided
804 no compilation copyright is claimed for the compilation.  Such a
805 compilation is called an "aggregate", and this License does not apply
806 to the other self-contained works thus compiled with the Document , on
807 account of their being thus compiled, if they are not themselves
808 derivative works of the Document.  If the Cover Text (*note
809 fdl-cover-texts::) requirement of section 3 (*note 3_ COPYING IN
810 QUANTITY::) is applicable to these copies of the Document, then if the
811 Document is less than one quarter of the entire aggregate, the
812 Document's Cover Texts may be placed on covers that surround only the
813 Document within the aggregate. Otherwise they must appear on covers
814 around the whole aggregate.
816 \x1f
817 File: gnash_ref.info,  Node: 8_ TRANSLATION,  Next: 9_ TERMINATION,  Prev: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Up: GNU Free Documentation License
819 A.9 8. TRANSLATION
820 ==================
822 Translation is considered a kind of modification, so you may distribute
823 translations of the Document (*note fdl-document::) under the terms of
824 section 4 (*note 4_ MODIFICATIONS::). Replacing  Invariant Sections
825 (*note fdl-invariant::) with translations requires special permission
826 from their copyright holders, but you may include translations of some
827 or all Invariant Sections in addition to the original versions of these
828 Invariant Sections. You may include a translation of this License
829 provided that you also include the original English version of this
830 License. In case of a disagreement between the translation and the
831 original English version of this License, the original English version
832 will prevail.
834 \x1f
835 File: gnash_ref.info,  Node: 9_ TERMINATION,  Next: 10_ FUTURE REVISIONS OF THIS LICENSE,  Prev: 8_ TRANSLATION,  Up: GNU Free Documentation License
837 A.10 9. TERMINATION
838 ===================
840 You may not copy, modify, sublicense, or distribute the Document (*note
841 fdl-document::) except as expressly provided for under this License.
842 Any other attempt to copy, modify, sublicense or distribute the
843 Document is void, and will automatically terminate your rights under
844 this License. However, parties who have received copies, or rights,
845 from you under this License will not have their licenses terminated so
846 long as such parties remain in full compliance.
848 \x1f
849 File: gnash_ref.info,  Node: 10_ FUTURE REVISIONS OF THIS LICENSE,  Next: Addendum,  Prev: 9_ TERMINATION,  Up: GNU Free Documentation License
851 A.11 10. FUTURE REVISIONS OF THIS LICENSE
852 =========================================
854 The Free Software Foundation (http://www.gnu.org/fsf/fsf.html) may
855 publish new, revised versions of the GNU Free Documentation License
856 from time to time. Such new versions will be similar in spirit to the
857 present version, but may differ in detail to address new problems or
858 concerns. See http://www.gnu.org/copyleft/
859 (http://www.gnu.org/copyleft).
861    Each version of the License is given a distinguishing version
862 number. If the Document (*note fdl-document::) specifies that a
863 particular numbered version of this License "or any later version"
864 applies to it, you have the option of following the terms and
865 conditions either of that specified version or of any later version
866 that has been published (not as a draft) by the Free Software
867 Foundation. If the Document does not specify a version number of this
868 License, you may choose any version ever published (not as a draft) by
869 the Free Software Foundation.
871 \x1f
872 File: gnash_ref.info,  Node: Addendum,  Prev: 10_ FUTURE REVISIONS OF THIS LICENSE,  Up: GNU Free Documentation License
874 A.12 Addendum
875 =============
877 To use this License in a document you have written, include a copy of
878 the License in the document and put the following copyright and license
879 notices just after the title page:
881      Copyright 2008, Free Software Foundation.
883      Permission is granted to copy, distribute and/or modify this
884      document under the terms of the GNU Free Documentation License,
885      Version 1.1 or any later version published by the Free Software
886      Foundation; with noInvariant Sections (*note fdl-invariant::),
887      with no Front-Cover Texts (*note fdl-cover-texts::), and with no
888      Back-Cover Texts (*note fdl-cover-texts::). A copy of the license
889      is included in the section entitled "GNU Free Documentation
890      License".
892    If your document contains nontrivial examples of program code, we
893 recommend releasing these examples in parallel under your choice of
894 free software license, such as the GNU General Public License
895 (http://www.gnu.org/copyleft/gpl.html), to permit their use in free
896 software.
899 \x1f
900 Tag Table:
901 Node: Top\x7f175
902 Node: Introduction\x7f1113
903 Node: Audience\x7f1907
904 Node: What Is Supported ?\x7f2235
905 Node: RTMP Protocol\x7f4767
906 Node: AMF Format\x7f14538
907 Node: Authors\x7f15514
908 Node: GNU Free Documentation License\x7f16215
909 Node: 0_ PREAMBLE\x7f16978
910 Node: 1_ APPLICABILITY AND DEFINITIONS\x7f18284
911 Ref: fdl-document\x7f18509
912 Ref: fdl-modified\x7f18800
913 Ref: fdl-secondary\x7f18987
914 Ref: fdl-invariant\x7f19632
915 Ref: fdl-cover-texts\x7f19881
916 Ref: fdl-transparent\x7f20094
917 Ref: fdl-title-page\x7f21384
918 Node: 2_ VERBATIM COPYING\x7f21773
919 Node: 3_ COPYING IN QUANTITY\x7f22753
920 Node: 4_ MODIFICATIONS\x7f25110
921 Node: 5_ COMBINING DOCUMENTS\x7f31170
922 Node: 6_ COLLECTIONS OF DOCUMENTS\x7f32667
923 Node: 7_ AGGREGATION WITH INDEPENDENT WORKS\x7f33558
924 Node: 8_ TRANSLATION\x7f34786
925 Node: 9_ TERMINATION\x7f35689
926 Node: 10_ FUTURE REVISIONS OF THIS LICENSE\x7f36344
927 Node: Addendum\x7f37484
928 \x1f
929 End Tag Table