Flash Player:Additional Interface Support for Linux
From Adobe Labs
Flash Player 9 shipped on June 27, 2006. Flash Player 9 Update for Windows and Mac shipped on November 14, 2006, and Flash Player 9 for Linux shipped on January 16, 2007. Most of the supporting content for these releases can be found on the Adobe.com website.
| Table of contents |
Introduction
Adobe is developing Flash Player 9 for Linux. Given that GNU/Linux, and its many components, is a platform of many choices, Adobe will formally support specific Linux distributions.
Some components change frequently-- in particular, audio, secure sockets, and Unicode. To enable Flash Player to adapt to these variations, we are providing default implementations of audio, secure sockets, and Unicode and making an API available for developers to adapt these areas to any particular Linux configuration. Adobe is delivering this support layer as an open-source dynamic library called flashsupport. This library will enable distributions not formally supported by Adobe to ensure that Flash Player functionality is fully preserved on those distributions. We are encouraging the Linux community to experiment with flashsupport to confirm that it meets their needs.
We will continue to develop flashsupport with community feedback before the official release of Flash Player 9 for Linux. Please provide any feedback using the discussion page of this wiki.
IMPORTANT: The flashsupport library is still a work in progress. The instructions describing how to build and install this dynamic library are for advanced users only.
Supported interfaces and features
In the Flash Player 9 beta for Linux, flashsupport can leverage the following components:
- OpenSSL (http://www.openssl.org)
- ICU (http://icu.sourceforge.net)
- OSS (http://www.opensound.com)
These components are not required to run Adobe Flash Player; however, without them, the following features are disabled:
- HTTPS and RTMPS URL support in the stand-alone player
- RTMPS URL support in the Adobe Flash Player plug-in (note that plug-in support for HTTPS is handled through the browser)
- Support for two specific APIs in ActionScript 3.0: DataInput.ReadMultiByte and DataOutput.WriteMultiByte
- Support for OSS (or any other alternative sound APIs you might implement)
Requirements
The flashsupport dynamic library is provided in the form of a single source code file written in C. It should compile with a recent version of the GNU C compiler.
The following will be required from your distribution to create the dynamic library:
- C compiler (gcc 4.03 is known to be working)
- OpenSSL developer package and working user libraries (OpenSSL 0.9.8 is known to be working)
- ICU developer package and working user libraries (ICU 3.4.1 is known to be working)
- OSS developer package, meaning Linux header files (Linux 2.6.15 is known to be working)
- sudo or root access to install the generated library to /usr/lib
Building and installing
We suggest the following, or similar, steps to compile and install the dynamic library:
cc -shared -O2 -Wall -Werror -licuuc -lssl flashsupport.c -o libflashsupport.so ldd libflashplayer.so sudo cp libflashplayer.so /usr/lib
Important notes:
- You should run 'ldd' to make sure that all dynamic libraries are resolved correctly on your system. Adobe Flash Player will fail silently if a dependency cannot be satisfied and will completely disable support for the additional interfaces.
- You will notice additional code in flashsupport.c for GnuTLS, VideoForLinux1, and ALSA. These are not working in Adobe Flash Player 9 beta 1 for Linux; they are provided for reference only. These might also be removed in the final release of Adobe Flash Player 9 for Linux.
- If you do not require OSS, OpenSSL, or ICU support, you can comment the related processor definitions on top of flashsupport.c to disable them.
- The sound interface implemented in flashsupport will always have precedence. This means that if you enable OSS support in flashsupport, Adobe Flash Player will first try to use it before it will revert back to its internal ALSA support.
Source code
flashsupport.c can be found at flashsupport.c
