Gnash: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (Reverted edits by 190.115.186.232 (Talk) to last revision by 208.65.73.114)
 
(16 intermediate revisions by 7 users not shown)
Line 11: Line 11:
* [http://www.eshikshaindia.in/ Shiksha Collaborative Learning Portal] from the Indian Industry Confederation
* [http://www.eshikshaindia.in/ Shiksha Collaborative Learning Portal] from the Indian Industry Confederation


The Gnash team faces several challenges. The primary challenge is the number of basic encoding schemes, such as MP3, that are covered by patents. While Gnash supports these proprietary codecs, the OLPC cannot or will not ship codecs to support the proprietary schemes. Another challenge is that Adobe had not provided full information about SWF files, though a recent [http://www.stanford.edu/class/ee380/Abstracts/061206.html Stanford class] and contributions to Mozilla's Tamarin project points towards some additional openness.
The Gnash team faces several challenges. The primary challenge is the number of basic encoding schemes, such as MP3, that are covered by patents. While Gnash supports these proprietary codecs, the OLPC cannot or will not ship codecs to support the proprietary schemes. As such, the version of Gnash that ships with the OLPC XO-1 has no sound playback by default. Another challenge is that Adobe had not provided full information about SWF files, though a recent [http://www.stanford.edu/class/ee380/Abstracts/061206.html Stanford class] and contributions to Mozilla's Tamarin project points towards some additional openness.


Note that SWF files continue to evolve. While Gnash provides good support for SWF version 7, support for later version is more challenging. Gnash emulates Adobe Flash's Actionscript Virtual Machine 1 (AVM1 - used by Actionscript 1.0 and 2.0), but not Actionscript Virtual Machine 2 (AVM2) and thus cannot play Flash 9 & 10 content that has been authored in Actionscript 3.0. Finally, Gnash depends on a number of rapidly evolving libraries, such as Gstreamer which hamper stability.
Note that SWF files continue to evolve. While Gnash provides good support for SWF version 7, support for later version is more challenging. Gnash emulates Adobe Flash's Actionscript Virtual Machine 1 (AVM1 - used by Actionscript 1.0 and 2.0), but not Actionscript Virtual Machine 2 (AVM2) and thus cannot play Flash 9 & 10 content that has been authored in Actionscript 3.0. Finally, Gnash depends on a number of rapidly evolving libraries, such as Gstreamer which hamper stability.
Line 17: Line 17:
The easiest way to get Flash to work with Gnash is to get developers of the Flash content to test with Gnash. See also [[Projects/Flash_Gamedev|Game Development with Flash on the XO-1]].
The easiest way to get Flash to work with Gnash is to get developers of the Flash content to test with Gnash. See also [[Projects/Flash_Gamedev|Game Development with Flash on the XO-1]].


=== Shipping Adobe Flash Controversy ===
== No sound in Gnash ==
Gnash requires additional software libraries for [[GStreamer]] to play sounds in .swf files (<trac>8504</trac>). The relevant software has patent encumbrances, see [[Restricted formats]]. The issue persists in release [[10.1.2]].

It is possible to install packages containing the needed software using [[yum]] or [[rpm]]; the [[Talk:Gnash]] page has steps that have worked for users. In release [[8.2.0]] the task is made more complicated because it uses an earlier version of GStreamer.

== Gnash bugs ==

=== Gnash 0.8.3 (ships with [[Release notes/8.2.0|release 8.2.0]]) ===

==== <nowiki>[[</nowiki>Click to play]] is invisible ====
Unlike the Adobe Flash Player, Gnash doesn't immediately play Flash content (this is a feature). You need to click its "<nowiki>[[</nowiki>Click to play]]" text. But this text is often invisible when the mouse cursor is inside the Flash movie.

==== Other issues ====
* If sound is enabled, there are some sound incompatibility bugs when playing Flash 7 or 8 content
* Looping background sound in Flash Lite 2.0 (which is based on Flash 7) content plays back incorrectly. It breaks up with a lot of noise & hissing, and the volume levels change throughout sound playback.
* The onSoundComplete event does not seem to fire properly - thus sound that is looped using onSoundComplete as a trigger to start looping again will only play once and will not loop.

=== Gnash 0.8.2 (ships with release [[8.1.2]] (build 711)) ===
* _x, _y & _rotation problems when rendering fonts
* If sound is enabled, there are some sound incompatibility bugs when compared to Flash 7 & 8.

== Shipping Adobe Flash controversy ==


Adobe provides Flash under a free, but somewhat restrictive license. Adobe's license clearly restricts any party besides Adobe from making Flash libraries available on the Internet, and may make it possible to distribute within an Intranet. Some, such as Bryan Berry, have speculated that providing Flash plug-ins as downloads in certain deployments would further the educational goals of the overall project.
Adobe provides Flash under a free, but somewhat restrictive license. Adobe's license clearly restricts any party besides Adobe from making Flash libraries available on the Internet, and may make it possible to distribute within an Intranet. Some, such as Bryan Berry, have speculated that providing Flash plug-ins as downloads in certain deployments would further the educational goals of the overall project.
Line 23: Line 44:
Other voices suggest that providing more incentives, better tools, and more complete implementations for Flash developers may help them to embrace open formats. There is some undesirability of a long term dependence on a commercial entity for core functionality or core file formats.
Other voices suggest that providing more incentives, better tools, and more complete implementations for Flash developers may help them to embrace open formats. There is some undesirability of a long term dependence on a commercial entity for core functionality or core file formats.


=== Example Videos ===
=== Example videos ===
Playable in Gnash on the XO
Playable in Gnash on the XO
*[http://www.youtube.com/ YouTube], part of the [http://www.google.com/corporate/tenthings.html Not-Evil Empire]
*[http://www.youtube.com/ YouTube], part of the [http://www.google.com/corporate/tenthings.html Not-Evil Empire]
Line 37: Line 58:
*[http://www.revver.com Revver.com]
*[http://www.revver.com Revver.com]


== Upgrading Gnash ==
== Upgrading Gnash ==

=== Enabling and disabling Gnash ===


=== Enabling and disabling Gnash ===
You can uninstall or reinstall Gnash as you would any package: from the [[Terminal Activity]],


You can uninstall or reinstall Gnash as you would any package: from the [[Terminal Activity]], [[sudo]] [[yum]] remove gnash -y or sudo yum install gnash -y After which you will want to [[reboot]].
sudo yum remove gnash -y
or
sudo yum install gnash -y


=== Development builds ===
After which you will want to [[reboot]].
There are [[rpm]]s of later Gnash versions at http://www.getgnash.org. Version 8.5 adds XVideo support, just add <tt>et XVideo true</tt> to your $HOME/.gnashrc file. Some of these builds dynamically link ffmpeg to avoid problems with the non-standard [[GStreamer]] in 8.2.x releases. See [http://www.mail-archive.com/devel@lists.laptop.org/msg19127.html mailing list message].


== Links ==
== Links ==

Latest revision as of 17:06, 22 August 2012

Gnash is a GNU Flash movie player and as a plugin to Browse is the default Flash player on the XO. It is the free software counterpart to the Adobe Flash player.

About Flash

Wikipedia has a good overview of the various Flash technologies. Flash animations and games typically have the .swf extension, while Flash videos typically use the .flv extension. Flash technologies include the ActionScript virtual machine, as well as many proprietary codecs that are covered by patents.

Differences between Gnash (XO) and Adobe Flash

Many flash applications and movies that work with Adobe Flash will not work on the XO. This can be frustrating due to the large and growing base of animations, tutors, and other content available for Flash. These include:

The Gnash team faces several challenges. The primary challenge is the number of basic encoding schemes, such as MP3, that are covered by patents. While Gnash supports these proprietary codecs, the OLPC cannot or will not ship codecs to support the proprietary schemes. As such, the version of Gnash that ships with the OLPC XO-1 has no sound playback by default. Another challenge is that Adobe had not provided full information about SWF files, though a recent Stanford class and contributions to Mozilla's Tamarin project points towards some additional openness.

Note that SWF files continue to evolve. While Gnash provides good support for SWF version 7, support for later version is more challenging. Gnash emulates Adobe Flash's Actionscript Virtual Machine 1 (AVM1 - used by Actionscript 1.0 and 2.0), but not Actionscript Virtual Machine 2 (AVM2) and thus cannot play Flash 9 & 10 content that has been authored in Actionscript 3.0. Finally, Gnash depends on a number of rapidly evolving libraries, such as Gstreamer which hamper stability.

The easiest way to get Flash to work with Gnash is to get developers of the Flash content to test with Gnash. See also Game Development with Flash on the XO-1.

No sound in Gnash

Gnash requires additional software libraries for GStreamer to play sounds in .swf files (<trac>8504</trac>). The relevant software has patent encumbrances, see Restricted formats. The issue persists in release 10.1.2.

It is possible to install packages containing the needed software using yum or rpm; the Talk:Gnash page has steps that have worked for users. In release 8.2.0 the task is made more complicated because it uses an earlier version of GStreamer.

Gnash bugs

Gnash 0.8.3 (ships with release 8.2.0)

[[Click to play]] is invisible

Unlike the Adobe Flash Player, Gnash doesn't immediately play Flash content (this is a feature). You need to click its "[[Click to play]]" text. But this text is often invisible when the mouse cursor is inside the Flash movie.

Other issues

  • If sound is enabled, there are some sound incompatibility bugs when playing Flash 7 or 8 content
  • Looping background sound in Flash Lite 2.0 (which is based on Flash 7) content plays back incorrectly. It breaks up with a lot of noise & hissing, and the volume levels change throughout sound playback.
  • The onSoundComplete event does not seem to fire properly - thus sound that is looped using onSoundComplete as a trigger to start looping again will only play once and will not loop.

Gnash 0.8.2 (ships with release 8.1.2 (build 711))

  • _x, _y & _rotation problems when rendering fonts
  • If sound is enabled, there are some sound incompatibility bugs when compared to Flash 7 & 8.

Shipping Adobe Flash controversy

Adobe provides Flash under a free, but somewhat restrictive license. Adobe's license clearly restricts any party besides Adobe from making Flash libraries available on the Internet, and may make it possible to distribute within an Intranet. Some, such as Bryan Berry, have speculated that providing Flash plug-ins as downloads in certain deployments would further the educational goals of the overall project.

Other voices suggest that providing more incentives, better tools, and more complete implementations for Flash developers may help them to embrace open formats. There is some undesirability of a long term dependence on a commercial entity for core functionality or core file formats.

Example videos

Playable in Gnash on the XO

Playable on the XO using neither Gnash nor Flash

Not playable in Gnash on the XO

Upgrading Gnash

Enabling and disabling Gnash

You can uninstall or reinstall Gnash as you would any package: from the Terminal Activity, sudo yum remove gnash -y or sudo yum install gnash -y After which you will want to reboot.

Development builds

There are rpms of later Gnash versions at http://www.getgnash.org. Version 8.5 adds XVideo support, just add et XVideo true to your $HOME/.gnashrc file. Some of these builds dynamically link ffmpeg to avoid problems with the non-standard GStreamer in 8.2.x releases. See mailing list message.

Links