On non-redistributable components

The viewer’s source is released under the GPL2, however, some components use other licenses.

Most parts of the viewer can be redistributed by people making their own viewers. One exception is Kakadu, the JPEG 2000 library. This is the component that decodes textures. Its license prevents distribution by anybody but Linden Lab. Fortunately, there’s an alternative, called OpenJPEG.

The reason SL doesn’t use it by default is that it’s still not as good as Kakadu. Initially, OpenJPEG was very, very slow. It worked as a proof of concept, but it was unusable in practice. Every texture decoding made the viewer freeze, and it could take half an hour until things loaded. Fortunately, some of the other people working on the viewer contributed patches, and now performance is more than acceptable.

A few problems remain, however: OpenJPEG still has bugs Kakadu doesn’t, for example the problem with the world map is an OpenJPEG bug. It also crashes when uploading small images and has other uploading problems.

These bugs may manifest themselves in my viewer if you didn’t have the right original version of SL installed when you installed mine. This is because since Kakadu is not redistributable, my installer takes it from an existing install, if it can be found. If not, the viewer falls back to OpenJPEG. You’ll get a message about this during installation if the installer can’t find the file. To fix that is easy: Install the original SL version my viewer is based on ( for example), then reinstall my viewer. FirstLook, beta, etc versions most likely won’t work, as the installer looks for a specific version of the file.

Currently I can’t fix those problems. Besides not being a problem with the viewer itself, I don’t know enough about image compression to figure out the problem. I could try to learn, but I think my time is better spent on my current work, especially since there are people who know about OpenJPEG a lot more than I do. If you want to help, vote for those bugs. Login with your SL username and password into Jira, then click “vote for it” on the left sidebar. This will help bring it to the LL’s attention.


3 Responses to On non-redistributable components

  1. Tex Rhode says:

    Hey Dale,

    I continue to have problems downloading during the install process, but, if I retry the installation several times it ultimately installs. However, there is another issue I have related to your comments about OpenJPEG. I do have Second Life’s main viewer installed, the one with voice now. During the installation, your installation program complains that it cannot find SLVoice.exe. However, I do have SLVoice.exe in the SecondLife directory. It has been so long since I first installed SL that I do not remember if I am using the default SL directory, but neither am I using your default directory. So, I copied SLVoice.exe over to the directory I have your viewer installed in. I still get the complaint from your installation program that it cannot find SLVoice.exe. Since I have moved a copy of SLVoice.exe to the installation directory I use for your viewer, can’t you check that directory for the existence of SLVoice.exe? And, for that matter, why can’t you see the regular SL directory, which would mean you could see both SLVoice.exe and whatever file is the Kakadu file.


  2. Dale Glass says:

    The installer doesn’t just try to find SLVoice.exe, it tries to find an exact version of it (which is what seems to be going wrong).

    I’m going to investigate what exactly is the problem and release a new version.

  3. Tex Rhode says:

    Copying SLVoice.exe from the SecondLife directory is not a big deal. So, can the Kakadu file(s) be copied to the SL DG directory to make rezzing stuff faster? If so, what are the file(s) necessary to be copied?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: