Xuggler 1.22 Release

Xuggler 1.22 – Release Notes Get It Here.


1.22.FINAL is a feature release. We updated FFMPEG to the new 0.5 Release, and we add the ability to just demux and mux packets without decoding and encoding, and make it a little easier to access raw audio and video data from Java. Enjoy.

Release Notes

Latest FFMPEG release

On March 10th the FFMPEG team, after a nearly 5 year gap, announced FFMPEG 0.5, AKA “half-way to world domination A.K.A. the belligerent blue bike shed”. This release of Xuggler also includes the latest FFMPEG (actually an even newer version) in our quest to stay on FFMPEG tip of tree. Enjoy.

Use Xuggler to mux packets without encoding

You can now explicitly set (or override) the default IStreamCoder set on an IStream in an IContainer. We also have a new IStreamCoder.make(...) method that allows you to create a new IStreamCoder by copying all the settings of another IStreamCoder.

Why is this useful? Well it means you can create an output container, and decide to set some of the output streams with the exact same settings as an input file, and then just write input packets to the output container without having to decode and re-encode (provided they are going into the same type of container).

Or put in other ways, with this change you can now demux packets from a container, and mux to another container without decoding and encoding if you like.

See com.xuggle.xuggler.MuxerTest in the JUnit tests for an example of this in action.

java.nio.ByteBuffers now outlive IBuffers

In previous versions of Xuggler, using the IBuffer.getByteBuffer() object to get raw access to the underlying bytes of a buffer was somewhat dangerous. You had to ensure that the IBuffer you got the java.nio.ByteBuffer from lived longer than your java.nio.ByteBuffer.

This is no longer true. Now you can safely call IBuffer.getByteBuffer() and the returned value can be safely passed around inside Java, even if the Java garbage collector collects the parent IBuffer. You can even “cast” it to other types, like a java.nio.ShortBuffer if you prefer for audio.

Errors on tests don’t abort test runs

In prior versions of Xuggler, any unanticipated error in a JUnit test caused the entire test-suite to stop. This is no longer the case.

Ivy upgraded to v2.0.0

From ivy 2.0.0-beta2.

Known Issues

There are no known critical issues in this release.

Issues Fixed

  • Issue #68: Xuggler Fail MemoryAllocation Test on Debian Etch AMD x64

Enhancements Added

  • Enhancement 78: Make IBuffer.getByteBuffer return java.nio.ByteBuffers that can outlive the parent IBuffer
  • Enhancement 74: Need way to write encoded packets to multiple containers


  • Java Tests: 184 (+3)
  • Native Tests: +2

Source Control Versions

Xuggle Version: 1.22.237.Final

– Hudson Good Build


Dynamic Revisions
    * svn://svn.mplayerhq.hu/ffmpeg/trunk : 17954
    * svn://svn.ffmpeg.org/mplayer/trunk/libswscale : 28934
    * http://theyard.googlecode.com/svn/theyard/code/trunk/share/gnu/cxxtest/cxxtest-3.10.1 : 170
    * http://xuggle.googlecode.com/svn/trunk/build/java : 230
    * http://xuggle.googlecode.com/svn/trunk/java/xuggle-xuggler : 237

- Static Dependencies
    * libx264: ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20090125-2245.tar.bz2
    * libmp3lame: http://downloads.sourceforge.net/lame/lame-398.tar.gz: 3.98
    * libspeex: http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz: 1.2 RC1

On Windows, here's what we built our installer with:
    * Mingw gcc/g++ 4.2.4: http://www.tdragon.net/recentgcc/
    * Msys 1.0.11
    * mingw-runtime 3.15.1
    * w32api 3.13
    * gmake 3.81
    * binutils 2.91
    * yasm
    * Msys Perl 5.6
    * Ant 1.7
    * Java JDK 1.5
    * MSFT C++ Visual Studio 2005
    * NullSoft NSIS Installer  2.42
    * SWIG 1.3.36 modified with doc gen capabilities
    * Subversion 1.5

Comments are closed.

%d bloggers like this: