J-Ogg

J-Ogg is a collection of Java libraries for reading Ogg files and decoding
different contained formats. At the moment the support for Vorbis and FLAC
is almost complete (the library decodes all files created by the current versions
of libvorbis and libflac correctly) and I've started working on Theora support.

Requirements

The libraries are likely to run on any JRE version 1.2 or newer.
For audio playback, a JRE 1.3 or newer is necessary, and the libraries
have only been tested on Sun's JRE 1.3.1, 1.4.0, 1.4.1 and 1.4.2beta for
Windows and Linux. It is recommended not to use version 1.4.0, as the
Hotspot-compiler in this version seems to have a bug causing a CPU
intensive part of the Vorbis decoder to be interpreted, instead of
compiled by the Hotspot compiler.

Background

In August 2002, Sun Microsystems released a new version of the Java
Media Framework. It was just a minor change from 2.1.1a to 2.1.1b, but
with the change of a letter and because of the new licencing policy,
they also removed the MPEG codecs from the library.
With that, JMF only had support
for audio formats used for speech encoding, like GSM, ADPCM, µ-Law
and a-Law and had no codec for hi-fi quality sound, except plain
uncompressed PCM.

At that time, I was working on a JMF-based music distribution
system in my spare time and the lack of a usable hi-fi codec
meant, that the work already done was completely worthless.
Today, the software is not much further developed than it was
back then, but I've at least managed to implement some decoders
able to take the place left open by removing the MPEG-support
in JMF. For just simple audio playback, the Java Media Framework
is an enormous overkill, so I've implemented the JMF-plugins
as wrappers for the core libraries, which may be used also without
installing JMF.