Liquidsoap 0.9.0 is out !

Dear all,

It is with great pleasure that I announce the release of liquidsoap 0.9.0!

This release, as the version suggests, is a big step toward liquidsoap 1.0.0.
Notably, we now have an experimental video support in liquidsoap. This
feature allows to create and stream audio and video data using liquidsoap!

On the road to 1.0.0, we should complete this support by extending the
liquidsoap language to ensure a proper interaction of various types of stream
in the same setup.

But this release also contains many important improvements for the audio
part! In particular, liquidsoap can now use external programs to input and
output audio data. This means that many audio formats are now supported for
audio files, streams and output.

In particular, AAC(+), FLAC, and much more are supported using, respectively,
the faad, flac and mplayer binaries. Native SPEEX support using the libspeex
library is also available in this release. Also, the lame binary can be used
to stream MP3 data without the need of built-in lame support.

Of course, this list is not complete. You can find the changelog at the end of
this message, which also includes many bugfixes.

As usual, the documentation for this release is available online:
You can download the sources on
Bug reports and feature request are done on our trac system:
And you can join us on #savonet at freenode.

Packages for Debian and derived distributions should be available quite soon,
and probably also for Arch linux, thanks to mefistofeles and luuuciano, as
well as for Gentoo, thanks to gim.

We hope that this release will be of great interest for your projects!

For the Savonet Team,


0.9.0 (01-03-2009)
Bugs fixed:
 - Fixed byte swapping function.
 - Fixed unix server socket failure (#160).
 - Fixed mp3 audio glitches when decoding
   files with picture id3v2 tags using ocaml-mad (#162).
 - Fixed liquidsoap crash on weird telnet and harbor input (#164).
 - Fixed request.queue() not considering initial queue on wake-up (#196).
 - Fixed source leak in append().
 - Fixed after_output propagation in the transitions of switches (#208).
 - Fixed compilation for ocaml 3.11 (#216).
 - Fixed (again) Vorbis mono output (#211).
 - Avoid crashing on broken symlinks when parsing directories (#154).
 - Use random temporary file in liGuidsoap.
 - Fixed liGuidsoap to use the (not so) new metadata field initial_uri.
 - Fix bugs in the life cycle (sleep/wake_up) of queued request sources,
   which made say_metadata unfunctional.
 - Remove buggy unbuffered {input,output}.jack. (#231)
 - Fixed audio information sent to icecast. (#226)
 - Fixed global reset starting inactive sources. (#227)
 - Fixed shoutcast source initial answer in harbor. (#254)
 - Fixed frame and metadata duplication in cross operators. (#257)
 - Fixed several sources (outputs, external streams) that were not going
   to sleep correctly.
 - Warning: interactive_float() is now interactive.float().
 - Compatible with OCaml 3.09.
 - Faster shutdown.
 - Rewrote ogg decoding, for files and streams.
 - Support for ogg skeletons, currently only used for theora.
 - Cleanup icecast class hierarchy and restart mechanism, especially
   with respect to the encoder.
 - Support for breaks and metadata in generators.
   As a result, input.http() and input.harbor() now fully support them.
   See new_track_on_metadata parameters there.
 - Switch operators (fallback,random and switch) can now replay the metadata
   of a source that has been left in the middle of a track.
 - New force_mime parameter for input.http().
 - New insert_missing parameter for append().
 - Multi-line strings in liq scripts, with a caml-like syntax.
 - Slight modification of the scripting syntax, handling unary minus.
 - Added user_agent parameter for input.http and input.lastfm
 - Added speex support for files and HTTP streams.
 - Added EXPERIMENTAL support for AU, AIFF and NSV mp3 audio files
   using ocaml-natty.
 - Added "prefix" parameter to the playlist operators. Allows to prefix
   each uri in order to force resolution through a specific protocol,
   like replaygain: for instance. (#166)
 - Support for external processes as audio encoder:
   * Added output.icecast.lame to output to icecast using the lame binary.
   * Added output.icecast.flac to output to icecast using the flac binary.
   * Full generic support awaits some changes in libshout.
 - Support for external processes as audio stream decoder:
   * Added input.mplayer to stream data coming from mplayer.
 - Support for external processes as audio file decoder:
   * Added support for flac audio files using the flac binary.
   * Added support for m4a files using the faad binary.
   * Added optional support for mplayer, enabled with enable_mplayer().
 - Support for external metadata decoders.
 - Support for generic authentication function in harbor,
   also available for ICY (shoutcast) clients.
 - Added optional support for the samplerate library,
   and dynamic configuration of resampling routine.
 - Added lag() operator, which delays a stream by a constant time.
 - Initial support for PulseAudio.
 - Added experimental support for {input,output}.marshal, allowing
   raw communication between various liquidsoap instances.
 - Added optional alternatives to store buffered audio data:
    * raw: in memory, s16le format
    * disk: on disk, several big files
    * disk_manyfiles: on disk, a lot of small files
   See documentation for more details.
 - Added EXPERIMENTAL video support:
    * Support for ogg/theora file input.
    * Support for ogg/theora file and icecast output
    * Support for SDL output.
    * Optional support for ocaml-gavl as video converter.
    * Support for video in _some_ existing operators, including switches,
      add(), metadata/track manipulations.
    * Added operators: video.fade.*, video.fill, video.greyscale, video.image,
      video.invert, video.lomo, video.noise, video.opacity,
      video.opacity.blur, video.rotate, video.scale, video.sepia, video.text,
      video.tile, video.transparent, video.volume.

Posted by Toots 2009-03-04

Log in to post a comment.