Linden Lab Official:Media Rendering Plugin System FAQ
What is a media rendering plugin?
A media rendering plugin is an external library that provides the ability to display content like audio, video, and documents in the Second Life Viewer through the use of the Second Life Viewer media API.
Media rendering plugins can display content:
- Via parcel media.
- In the Viewer's media browser (the built-in web browser window).
- In the Plugin Test App provided with Viewer source code (for use during development only).
What is the media API?
The media API is an interface used when writing media rendering plugins for the Second Life Viewer.
Instead of writing code as part of the entire Second Life Viewer, plugin developers can now write rendering engines for media as separate libraries that use the media API and are loaded at runtime into the Second Life Viewer.
For example, if a developer wants to provide the ability to render a proprietary video format on their parcel, the developer can offer an library that extends the Second Life Viewer to render that content inworld. The Resident would then download the library (a .dll, .dylib, or .so file, depending on the operationg system being used), install it per the developer's instructions, and then could view media inworld (that is, on the face of inworld on which it has been placed).
If the Resident wants others to see the same videos, they would instruct the other Residents to follow the same steps.
For more information, please see the Technical Overview.
The Second Life viewer is open source, so why is an API needed?
There are several reasons why Linden Lab has chosen to release an API for calling separate, external media rendering plugin libraries:
- To make it easier for developers to create and test their media rendering plugin without having to build the Second Life Viewer every time
- To provide a separate path and quick time-to-market for developers to release their media rendering plugins, independently of a larger Second Life Viewer release
- Ultimately, to make it easier for users of the Second Life Viewer to upgrade their experience to include new media rendering capabilities without having to download an entirely new Second Life Viewer.
What type of media rendering engines does the Second Life Viewer already support?
There is a wide variety of file and media formats available today, and Linden Lab cannot hope to keep up with them all. Some are de facto standards for rendering network-based content, and others are niche, industry-specific applications.
Linden Lab has already developed media rendering plugins based on WebKit (for HTML and JavaScript), Apple QuickTimetm (Audio and Video) and GStreamer (Audio and Video for Linux). The WebKit and GStreamer libraries are provided as media rendering plugin reference implementations. Rendering QuickTime audio and video content relies on the QuickTime player that you can download for free from Apple, Inc.
What types of media rendering plugins would Linden Lab like to see developed?
Linden Lab is hoping to engage with developers interested in creating media rendering plugins for other media formats, such as:
- Office Documents
- Java
- Microsoft(R) Windows Media(R) Audio and Video
- Ogg Vorbis
- DivX
These are just some examples. Linden Lab hopes to see a variety of media rendering plugins developed for a wide range of media formats and applications.
What will Linden Lab do to encourage and support plugin developers?
Linden Lab is distributing source code and binary installs for a special developer release of the Second Life Viewer that includes the media API, as well as providing documentation and sample media rendering plugins. Over time, Linden Lab and active community members will add more developer resources.
In addition, Linden Lab will respond to support questions, feature requests, and comments through the sldev@lindenlab.com email list.
Will media rendering plugins be incorporated into the Second Life Viewer in the future?
There are no plans to build media rendering plugins back into the main codebase for the Second Life Viewer at this time. In fact, just the opposite is happening. Linden Lab is migrating the current media rendering engines out of the Second Life Viewer code, and making them into separate media rendering plugin libraries.
Linden Lab will continue to ship the existing media rendering plugins with the installer for the Second Life desktop application, making it easy for users to get the basic complement of media rendering engines on first installation of the Viewer. However, there are exceptions, like the Apple QuickTime player, which the end-user download and install prior to installing the Second Life Viewer.
For new media rendering plugins, Linden Lab is considering bundling them into the installer for first-time installations of the Second Life Viewer AND providing independent downloads for easy update of previously downloaded Viewers.
If you are developing a media rendering plugin, and would like it to ship with the Second Life installer, please contact Linden Lab at sldev@lindenlab.com.
Will Linden Lab create an "app store" for these plugins?
At this time, Linden Lab is not providing an app store for media rendering plugins.
This release is simply a way to get developers engaged in using the media API and creating interesting media rendering plugins for the Second Life Viewer.
Linden Lab will be monitoring demand for a unified catalog of media rendering plugins, and may choose to provide such a service in the future.