Skip to content
Commits on Source (12)
1.3.7 (09-04-2019)
=====
Changed:
- Reimplemented `open_process_full` to get a hand on `pid` and finer-grained closing workflow (#703)
- Better log message when request download times out (#708)
- Drop `log.level` for `ffmpeg` messages to `5`
Fixed:
- Timeout when executing external processes (#691, #736, #726, #708)
- Set buffering only when frame is partial in time_wrap.ml. Makes it work with crossfade transitions (#695)
- Changed `Icy-MetaData:1` to `Icy-MetaData: 1` in HTTP source headers. Fixes some shoutcast implementations (#727)
- Fixed deadlock in `input.http` source status command (#367)
1.3.6 (23-01-2019)
=====
Fixed:
- Fixed smart_crossfade transitions skipping data after track marks. (#683, #652)
- Fixed `input.pulseaudio` parameters.
- Fixed crash when copying frame content (#684)
1.3.5 (25-12-2018)
=======
New:
- Added a bunch of base mathematics primitive, `exp`, `log`, `cos`, `sine`, ...
- Added `"extinf_duration"` to parsed `#EXTINF` metadata.
Fixed:
- Fixed inotify watch semantics (#677)
- Enhanced `#EXTINF` parsing in ambigious cases (#625)
- Fixed `output.youtube.live` (#630)
- Make sure server writes are synchronous (#643)
- Fixed crash when loading some frei0r plugins (#435)
- Fixed compilation with `osx-secure-transport`
- Fixed invalid opus stream generated when no data was ever encoded (#180)
1.3.4 (10-09-2018)
=====
......
Liquidsoap 1.3.3
Liquidsoap 1.3.7
----------------
Below is a list of dependencies, mostly OCaml libraries. Optional libraries
......@@ -10,8 +10,13 @@ liquidsoap-<version>-full.tar.bz2 tarballs for easier builds.
Libraries not developed by Savonet are:
ocaml-pcre, ocaml-magic, ocaml-sdl
camomile, yojson, camlimages, gd4o
camlimages
camomile
gd4o
ocaml-pcre
ocaml-magic
ocaml-sdl
yojson
Mandatory dependencies:
......@@ -23,52 +28,52 @@ Mandatory dependencies :
Recommended dependencies:
camomile>=1.0.0 for charset recoding in metadata
ocaml-magic>=0.6 for file type detection
festival for speech synthesis
camomile >=1.0.0 Charset recoding in metadata
ocaml-magic >=0.6 File type detection
festival Speech synthesis
Optional dependencies :
ocaml-cry>=0.6.0 for sending to Shoutcast & Icecast
ocaml-ogg>=0.5.0 for Ogg codecs
ocaml-vorbis>=0.7.0 for Ogg/Vorbis codec
ocaml-opus>=0.1.1 for Ogg/Opus codec
ocaml-theora>=0.3.1 for Ogg/Theora codec
ocaml-speex>=0.2.1 for Ogg/Speex codec
ocaml-flac>=0.1.2 for Flac and Ogg/Flac codec
ocaml-mad>=0.4.4 for MP3 decoding
ocaml-lame>=0.3.2 for MP3 encoding
ocaml-shine>=0.2.0 for fixed-point MP3 encoding
ocaml-taglib>=0.3.0 for MP3ID3 metadata access
ocaml-faad>=0.4.0 for AAC stream decoding
ocaml-fdkaac>=0.2.1 for AAC(+) encoding
camlimages>=4.0.0 for image decoding
ocaml-sdl for display, font & image support
ocaml-gavl>=0.1.4 for video conversion using the gavl library
ocaml-ffmpeg>=0.2.0 for video conversion using the ffmpeg library
ocaml-samplerate>=0.1.1 for libsamplerate audio conversion
ocaml-lastfm>=0.3.0 for lastfm protocol support
ocaml-xmlplaylist>=0.1.3 for XML-based playlist formats
ocaml-dssi>=0.1.1 for DSSI sound synthesis
ocaml-frei0r>=0.1.0 for frei0r plugins
ocaml-lo>=0.1.0 for OSC (Open Sound Control) support
ocaml-ladspa>=0.1.4 for LADSPA plugins
ocaml-soundtouch>=0.1.7 for libsoundtouch's audio effects
ocaml-ao>=0.2.0 for output via libao
ocaml-alsa>=0.2.1 for ALSA I/O
ocaml-portaudio>=0.2.0 for Portaudio I/O
ocaml-pulseaudio>=0.1.2 for PulseAudio I/O
ocaml-bjack>=0.1.3 for Jack support
ocaml-gstreamer>=0.3.0 for GStreamer input, output and encoding/decoding
ocaml-inotify>=1.0 for reloading playlists when changed
ocaml-ssl>=0.5.2 for enabling SSL/https client connections
osx-secure-transport for enabling SSL/https client connections via OSX's SecureTransport
yojson for parsing JSON data (of_json function)
gd4o for video.add_text() on servers without X
ocaml-cry >=0.6.0 Sending to Shoutcast & Icecast
ocaml-ogg >=0.5.0 Ogg codecs
ocaml-vorbis >=0.7.0 Ogg/Vorbis codec
ocaml-opus >=0.1.1 Ogg/Opus codec
ocaml-theora >=0.3.1 Ogg/Theora codec
ocaml-speex >=0.2.1 Ogg/Speex codec
ocaml-flac >=0.1.4 Flac and Ogg/Flac codec
ocaml-mad >=0.4.4 MP3 decoding
ocaml-lame >=0.3.2 MP3 encoding
ocaml-shine >=0.2.0 Fixed-point MP3 encoding
ocaml-taglib >=0.3.0 MP3ID3 metadata access
ocaml-faad >=0.4.0 AAC stream decoding
ocaml-fdkaac >=0.2.1 AAC(+) encoding
camlimages >=4.0.0 Image decoding
ocaml-sdl Display, font & image support
ocaml-gavl >=0.1.4 Video conversion using the gavl library
ocaml-ffmpeg >=0.2.0 Video conversion using the ffmpeg library
ocaml-samplerate >=0.1.1 Libsamplerate audio conversion
ocaml-lastfm >=0.3.0 Lastfm protocol support
ocaml-xmlplaylist >=0.1.3 XML-based playlist formats
ocaml-dssi >=0.1.1 DSSI sound synthesis
ocaml-frei0r >=0.1.0 Frei0r plugins
ocaml-lo >=0.1.0 OSC (Open Sound Control) support
ocaml-ladspa >=0.1.4 LADSPA plugins
ocaml-soundtouch >=0.1.7 Libsoundtouch's audio effects
ocaml-ao >=0.2.0 Output via libao
ocaml-alsa >=0.2.1 ALSA I/O
ocaml-portaudio >=0.2.0 Portaudio I/O
ocaml-pulseaudio >=0.1.2 PulseAudio I/O
ocaml-bjack >=0.1.3 Jack support
ocaml-gstreamer >=0.3.0 GStreamer input, output and encoding/decoding
ocaml-inotify >=1.0 Reloading playlists when changed
ocaml-ssl >=0.5.2 SSL/https support
osx-secure-transport SSL/https support via OSX's SecureTransport
yojson Parsing JSON data (of_json function)
gd4o Video.add_text() on servers without X
Runtime optional dependencies:
curl for http/https/ftp support
curl http/https/ftp support
How to install
--------------
......
......@@ -175,6 +175,10 @@ plugins/dllliquidsoap_%.so:
$(V)echo OCAMLMKLIB -o plugins/dllliquidsoap_$*.so
$(V)$(OCAMLMKLIB) -o plugins/liquidsoap_$* $($*_c_sources:.c=.o)
tools/win32/process_utils.mli: tools/unix/process_utils.mli
$(V)echo CP $< $@
$(V)cp -f $< $@
%.ml: %.camlp4
$(V)echo CAMLP4O $<
$(V)$(CAMLP4O) -printer Camlp4OCamlPrinter -impl $< > $@
......
......@@ -6,16 +6,17 @@ used for netradios and webtvs. It has tons of features, it's free and it's
open-source!
Liquidsoap is a powerful and flexible language for describing your streams. It
offers a rich collection of operators that you can combine at will, giving you
more power than you need for creating or transforming streams. But liquidsoap is
still very light and easy to use, in the Unix tradition of simple strong
components working together.
offers a rich collection of operators that you can combine to create and transform
streams. Liquidsoap is very light and easy to use, in the Unix tradition of simple
strong components working together.
Copyright 2003-2018 Savonet team
Copyright 2003-2019 Savonet team
* Email : savonet-users@lists.sourceforge.net
* Homepage : http://liquidsoap.info
* Bugreports: https://github.com/savonet/liquidsoap/issues
| | |
| ------------ | -------------------------------------------- |
| Mailing list | savonet-users@lists.sourceforge.net |
| Homepage | http://liquidsoap.info |
| Bug reports | https://github.com/savonet/liquidsoap/issues |
Installation
------------
......@@ -25,8 +26,7 @@ See the [INSTALL](INSTALL) file.
Documentation
-------------
Some documentation is available on [our website](http://liquidsoap.info) and HTML
documentation is included in the distribution: doc/html/index.html.
HTML documentation is in doc/html/index.html ([mirrored](https://www.liquidsoap.info/doc.html) on the [Savonet website](http://liquidsoap.info))
License
-------
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for liquidsoap 1.3.4.
# Generated by GNU Autoconf 2.69 for liquidsoap 1.3.7.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
......@@ -637,8 +637,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='liquidsoap'
PACKAGE_TARNAME='liquidsoap'
PACKAGE_VERSION='1.3.4'
PACKAGE_STRING='liquidsoap 1.3.4'
PACKAGE_VERSION='1.3.7'
PACKAGE_STRING='liquidsoap 1.3.7'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
......@@ -1517,7 +1517,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures liquidsoap 1.3.4 to adapt to many kinds of systems.
\`configure' configures liquidsoap 1.3.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1579,7 +1579,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of liquidsoap 1.3.4:";;
short | recursive ) echo "Configuration of liquidsoap 1.3.7:";;
esac
cat <<\_ACEOF
......@@ -1882,7 +1882,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
liquidsoap configure 1.3.4
liquidsoap configure 1.3.7
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -2134,7 +2134,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by liquidsoap $as_me 1.3.4, which was
It was created by liquidsoap $as_me 1.3.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -2483,7 +2483,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
scm_snapshot=false
version=1.3.4
version=1.3.7
min_ocaml_version=4.03.0
if test $scm_snapshot != "false"; then
......@@ -15039,7 +15039,7 @@ fi
if test "$w_SDL" = "yes" -o "$w_GD" = "yes" ; then
if test -z "$with_default_font" ; then
DEFAULT_FONT=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
DEFAULT_FONT=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
else
DEFAULT_FONT=$with_default_font
fi
......@@ -15678,7 +15678,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by liquidsoap $as_me 1.3.4, which was
This file was extended by liquidsoap $as_me 1.3.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -15740,7 +15740,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
liquidsoap config.status 1.3.4
liquidsoap config.status 1.3.7
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
......@@ -7,9 +7,9 @@ dnl $libdir/liquidsoap/$libs_dir_version
# Remove +scm and set scm_snapshot to false before releasing
# Do not use $version below before the next line, since we grep
# for the literal version there
AC_INIT([liquidsoap],[1.3.4])
AC_INIT([liquidsoap],[1.3.7])
scm_snapshot=false
version=1.3.4
version=1.3.7
min_ocaml_version=4.03.0
if test $scm_snapshot != "false"; then
......@@ -804,7 +804,7 @@ AC_ARG_WITH([default-font],
[sets the default TTF font for video.add_text()]))
if test "$w_SDL" = "yes" -o "$w_GD" = "yes" ; then
if test -z "$with_default_font" ; then
DEFAULT_FONT=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
DEFAULT_FONT=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
else
DEFAULT_FONT=$with_default_font
fi
......
......@@ -2,88 +2,79 @@ Source: liquidsoap
Section: sound
Priority: optional
Maintainer: Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>
Uploaders: Kyle Robbertze <krobbertze@gmail.com>,
Uploaders: Kyle Robbertze <paddatrapper@debian.org>,
Romain Beauxis <toots@rastageeks.org>,
Samuel Mimram <smimram@debian.org>
Build-Depends:
debhelper (>= 10),
ocaml-nox,
Build-Depends: debhelper (>= 11),
debhelper-compat (=12),
dh-elpa,
dh-exec,
dh-ocaml (>= 1.0.1),
ocaml-findlib,
libcry-ocaml-dev (>= 0.6.0),
libogg-ocaml-dev (>= 0.5.0),
libvorbis-ocaml-dev (>= 0.7.0),
libmad-ocaml-dev (>= 0.4.4),
libdtools-ocaml-dev (>= 0.3.4),
libtaglib-ocaml-dev (>= 0.3.0),
libcamomile-ocaml-dev (>= 1.0.0),
festival,
fonts-liberation,
libxml-dom-perl,
dh-elpa,
libalsa-ocaml-dev (>= 0.2.1) [linux-any],
libao-ocaml-dev (>= 0.2.0),
libbjack-ocaml-dev (>= 0.1.3),
libcamlimages-ocaml-dev (>= 4.0.1-6),
libcamomile-ocaml-dev (>= 1.0.0),
libcry-ocaml-dev (>= 0.6.0),
libdssi-ocaml-dev (>= 0.1.1),
libdtools-ocaml-dev (>= 0.3.4),
libduppy-ocaml-dev (>= 0.6.0),
libalsa-ocaml-dev (>= 0.2.1) [linux-any],
libpcre-ocaml-dev,
sox,
libsoundtouch-ocaml-dev (>= 0.1.7),
libfaad-ocaml-dev (>= 0.3.3),
libflac-ocaml-dev (>= 0.1.2),
libfrei0r-ocaml-dev (>= 0.1.0),
libgavl-ocaml-dev (>= 0.1.4),
libgd-ocaml-dev | libgd-gd2-noxpm-ocaml-dev,
libgstreamer-ocaml-dev (>= 0.2.0),
libinotify-ocaml-dev (>=1.0) [linux-any],
libladspa-ocaml-dev (>= 0.1.4),
liblastfm-ocaml-dev (>= 0.3.0),
libspeex-ocaml-dev (>= 0.2.1),
libgavl-ocaml-dev (>= 0.1.4),
libtheora-ocaml-dev (>= 0.3.1),
liblo-ocaml-dev (>= 0.1.0),
libmad-ocaml-dev (>= 0.4.4),
libmagic-ocaml-dev,
libmm-ocaml-dev (>= 0.3.0),
libmp3lame-ocaml-dev (>= 0.3.2),
libogg-ocaml-dev (>= 0.5.0),
libopus-ocaml-dev (>= 0.1.1),
libpcre-ocaml-dev,
libportaudio-ocaml-dev (>= 0.2.0),
libpulse-ocaml-dev (>= 0.1.2),
libladspa-ocaml-dev (>= 0.1.4),
libsamplerate-ocaml-dev (>= 0.1.1),
libxmlplaylist-ocaml-dev (>= 0.1.3),
libmagic-ocaml-dev,
libbjack-ocaml-dev (>= 0.1.3),
libsdl-ocaml-dev,
libfaad-ocaml-dev (>= 0.3.3),
libmm-ocaml-dev (>= 0.3.0),
libflac-ocaml-dev (>= 0.1.2),
libopus-ocaml-dev (>= 0.1.1),
libfrei0r-ocaml-dev (>= 0.1.0),
libshine-ocaml-dev (>=0.2.0),
libsoundtouch-ocaml-dev (>= 0.1.7),
libspeex-ocaml-dev (>= 0.2.1),
libtaglib-ocaml-dev (>= 0.3.0),
libtheora-ocaml-dev (>= 0.3.1),
libvoaacenc-ocaml-dev,
libmp3lame-ocaml-dev (>= 0.3.2),
libdssi-ocaml-dev (>= 0.1.1),
liblo-ocaml-dev (>= 0.1.0),
libcamlimages-ocaml-dev (>= 4.0.1-6),
libvorbis-ocaml-dev (>= 0.7.0),
libxml-dom-perl,
libxmlplaylist-ocaml-dev (>= 0.1.3),
libyojson-ocaml-dev,
libgstreamer-ocaml-dev (>= 0.2.0),
libgd-ocaml-dev | libgd-gd2-noxpm-ocaml-dev,
fonts-liberation
Standards-Version: 4.3.0
ocaml-findlib,
ocaml-nox,
sox
Standards-Version: 4.4.0
Vcs-Git: https://salsa.debian.org/ocaml-team/liquidsoap.git
Vcs-Browser: https://salsa.debian.org/ocaml-team/liquidsoap
Homepage: http://savonet.sourceforge.net/
Package: liquidsoap
Architecture: any
Depends:
${shlibs:Depends},
Depends: adduser,
curl,
libcamomile-ocaml-data (>= 1.0.0),
ocaml-base-nox,
sox,
${misc:Depends},
${ocaml:Depends},
${perl:Depends},
ocaml-base-nox,
libcamomile-ocaml-data (>= 1.0.0),
wget,
sox,
adduser
Recommends:
logrotate,
vorbisgain,
vorbis-tools,
Suggests:
icecast2,
festival,
mplayer,
Provides:
${ocaml:Provides}
Replaces:
liquidsoap-plugin-all,
${shlibs:Depends}
Recommends: logrotate, vorbis-tools, vorbisgain
Suggests: festival, icecast2, mplayer, youtube-dl
Provides: ${ocaml:Provides}
Replaces: liquidsoap-plugin-all,
liquidsoap-plugin-alsa [linux-any],
liquidsoap-plugin-ao,
liquidsoap-plugin-camlimages,
......@@ -118,8 +109,7 @@ Replaces:
liquidsoap-plugin-voaacenc,
liquidsoap-plugin-vorbis,
liquidsoap-plugin-xmlplaylist
Breaks:
liquidsoap-plugin-all,
Breaks: liquidsoap-plugin-all,
liquidsoap-plugin-alsa [linux-any],
liquidsoap-plugin-ao,
liquidsoap-plugin-camlimages,
......@@ -172,8 +162,10 @@ Description: audio streaming language
Package: liquidsoap-mode
Architecture: all
Depends: ${misc:Depends}, emacsen-common
Depends: ${misc:Depends}, ${elpa:Depends}
Recommends: emacs (>= 46.0)
Suggests: liquidsoap
Enhances: emacs, emacs24, emacs25
Section: editors
Description: Emacs mode for editing Liquidsoap code
Liquidsoap is a powerful tool for building complex audio streaming systems,
......
# Package does use dh-elpa
emacsen-common-without-dh-elpa
usr/bin
etc/init.d
usr/bin
var/log/liquidsoap
debian/tmp/etc/liquidsoap/radio.liq.example
debian/tmp/usr/share/doc/liquidsoap-*/examples/radio.liq
debian/tmp/usr/share/doc/liquidsoap-*/examples/geek.liq
debian/tmp/usr/share/doc/liquidsoap-*/examples/fallible.liq
debian/tmp/usr/share/doc/liquidsoap-*/examples/transitions.liq
debian/tmp/usr/share/doc/liquidsoap-*/examples/README
usr/bin/liquidsoap
etc/logrotate.d/liquidsoap
usr/lib/*/liquidsoap/*/*
usr/bin/liquidsoap
usr/lib/*/liquidsoap/*/*.liq
......@@ -6,8 +6,9 @@ the docs include embedded YouTube and vimeo videos, so change these
to links instead
---
doc/content/on2.txt | 4 +---
doc/content/publications.txt | 4 +---
doc/content/video.txt | 12 ++++--------
2 files changed, 5 insertions(+), 11 deletions(-)
3 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/doc/content/on2.txt b/doc/content/on2.txt
index 0b17670..921b181 100644
......@@ -24,6 +25,21 @@ index 0b17670..921b181 100644
h3. Liquidsoap Workshop
diff --git a/doc/content/publications.txt b/doc/content/publications.txt
index a65c702..6e3ec53 100644
--- a/doc/content/publications.txt
+++ b/doc/content/publications.txt
@@ -8,9 +8,7 @@ h4. ON2 presentation
Savonet was at the "ON2: Test Signals":http://testsignals.org/ conference in
Berlin, on October 22-23 2010. We presented Liquidsoap, but also held the first
-Liquidsoap workshop.
-
-`antiquotation`<center><iframe src="http://player.vimeo.com/video/16528307" width="400" height="300" frameborder="0"></iframe></center>`antiquotation`
+Liquidsoap workshop. A recording can be found "here":https://vimeo.com/16528307
h3. Publications
diff --git a/doc/content/video.txt b/doc/content/video.txt
index d9a053d..e593204 100644
--- a/doc/content/video.txt
......
From: Kyle Robbertze <paddatrapper@debian.org>
Date: Tue, 23 Jul 2019 17:43:39 -0300
Subject: Fix ogg_flac_duration build failure
decoder/ogg_flac_duration.ml fails to compile due to a syntax typo. This
fixes it by removing the extra argument passed to the function.
---
src/decoder/ogg_flac_duration.ml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/decoder/ogg_flac_duration.ml b/src/decoder/ogg_flac_duration.ml
index ceb8307..a70af03 100644
--- a/src/decoder/ogg_flac_duration.ml
+++ b/src/decoder/ogg_flac_duration.ml
@@ -45,7 +45,7 @@ let duration file =
Ogg.Stream.put_page os page
in
let callbacks = Ogg_flac.Decoder.get_callbacks (fun _ -> ()) in
- let dec = Ogg_flac.Decoder.create packet os callbacks in
+ let dec = Ogg_flac.Decoder.create packet os in
let rec info () =
try
Flac.Decoder.init dec callbacks
0001-remove-embedded-videos-from-docs.patch
0002-fix-ogg_flac_duration-build-failure.patch
title: Download and install liquidsoap
h2. Installing Savonet/Liquidsoap
You can install liquidsoap with OPAM (recommended) or from source, or using a
package available for your distribution (not covered by this documentation).
* "Using OPAM":#opam
* "Windows":#windows
* "From source":#source
* "Latest development version":#latest
h3@opam. Install using OPAM
The recommended method to install liquidsoap is by using the "OCaml Package
Manager":http://opam.ocaml.org/. OPAM is available in all major distributions
and on windows. We actively support the liquidsoap packages there and its
dependencies.
You can read "here":https://opam.ocaml.org/doc/Usage.html about how to use OPAM.
A typical installation with MP3 and Vorbis encoding/decoding and icecast support is done by executing:
%%
opam depext taglib mad lame vorbis cry samplerate liquidsoap
opam install taglib mad lame vorbis cry samplerate liquidsoap
%%
* @opam depext ...@ takes care of installing the required external dependencies. In some cases external dependencies might be missing for your system. If that is the case, please report it to us!
* Finally @opam install ...@ installs the packages themselves.
Most of liquidsoap's dependencies are only optionally installed by OPAM. For instance,
if you want to enable opus encoding and decoding after you've already installed liquidsoap, you should execute the following:
%%
opam depext opus
opam install opus
%%
@opam info liquidsoap@ should give you the list of all optional dependencies that you may
enable in liquidsoap.
If you need to run liquidsoap as daemon, we provide a package named @liquidsoap-daemon@.
See "savonet/liquidsoap-daemon":https://github.com/savonet/liquidsoap-daemon for more information.
You can also install liquidsoap or any of its dependencies from source using OPAM. For instance:
%%
git clone --recursive https://github.com/savonet/liquidsoap.git
cd liquidsoap
opam pin add liquidsoap .
%%
Most dependencies should be compatible with OPAM pinning. Let us know if you find one that isn't!
h3@windows. Windows build
You can download a liquidsoap for windows from our "release page":https://github.com/savonet/liquidsoap/releases, starting with version @1.3.4@.
The build process is described "here":windows.html.
h3@source. Installing from source
You can download source code published by Savonet from the "github releases
page":https://github.com/savonet/liquidsoap/releases.
The recommended way for newcomers is to use the liquidsoap-full-xxx.tar.gz
tarball. This tarball includes all required OCaml bindings and allows you to
compile and install liquidsoap in a single @configure@, @make@ and @make
install@ procedure. You will still need the corresponding C libraries and their
development files, though.
You will then have to "build the source":doc-dev/build.html.
h3@latest. Latest development version
If you want a cutting-edge version, you can use the git repository.
To get a copy of it, you have to run:
<pre>
git clone https://github.com/savonet/liquidsoap-full.git liquidsoap
cd liquidsoap
make init
</pre>
After, that you have to create a list of modules that you want to compile. A
good starting point is to do
<pre>
cp PACKAGES.minimal PACKAGES
</pre>
and edit the @PACKAGES@ file to uncomment the libraries you are interested in.
You should then run the configuration scripts by
<pre>
./bootstrap
./configure
</pre>
and finally build Liquidsoap:
<pre>
make
</pre>
After that, you should synchronize the repository from time to time using
<pre>
make update
</pre>
Some more explanations can be found in the "build instructions":doc-dev/build.html.
title: Articles about Liquidsoap
h2. The theory behind Liquidsoap
h3. Presentations
h4. ON2 presentation
Savonet was at the "ON2: Test Signals":http://testsignals.org/ conference in
Berlin, on October 22-23 2010. We presented Liquidsoap, but also held the first
Liquidsoap workshop.
`antiquotation`<center><iframe src="http://player.vimeo.com/video/16528307" width="400" height="300" frameborder="0"></iframe></center>`antiquotation`
h3. Publications
h4. Liquidsoap: a High-Level Programming Language for Multimedia Streaming
Many of the advanced features of the Liquidsoap language are described in
"Liquidsoap: a High-Level Programming Language for Multimedia Streaming":/assets/docs/bbm10.pdf.
The article details in particular Liquidsoap's handling of heterogeneous stream
contents (e.g. audio and video), as well as the model for clocks in the
language.
h4. De la webradio lambda à la &lambda;-webradio
The first published presentation of Liquidsoap was made in
"De la webradio lambda à la &lambda;-webradio":/assets/docs/bm08.pdf
(_Baelde D. and Mimram S. in proceedings of Journées Francophnes des Langages Applicatifs (JFLA), pages 47-61, 2008_)
-- yes, it's in French, sorry. It gives a broad description of the Liquidsoap
tool and explains the theory behind the language, which is formalized as a
variant of the typed &lambda;-calculus with labels and optional arguments. The
article describes the typing inference algorithm as well as some properties of
the language (confluence) and of typing (subject reduction, admissible rules,
termination of typed terms).
title: Liquidsoap on Windows
h3. Liquidsoap on Windows.
Liquidsoap for windows is built using "opam-cross":https://github.com/ocaml-cross/opam-cross-windows. The build process is documented in
our "docker files":https://github.com/savonet/liquidsoap-full/tree/master/docker. @Dockerfile.win32-deps@ installs all
the "mxe":https://mxe.cc/ dependencies and @Dockerfile.win32@ produces the actual liquidsoap binary.
You might want to refer to each project, "mxe":https://mxe.cc/ and "opam-cross":https://github.com/ocaml-cross/opam-cross-windows for more
details about cross-compiling for windows.
(*****************************************************************************
Liqi, a simple wiki-like langage
Copyright 2008-2018 Savonet team
Copyright 2008-2019 Savonet team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -206,20 +206,14 @@ let print_doc ?snippet_template ~subst ~basedir f =
| None -> extract_suffix title
| Some x -> x
in
fprintf f "<pre class=\"syntax %s\">%s</pre>\n" klass !!body;
fprintf f "<div align=\"right\">\n\
<a href=\"scripts/%s\">\n\
<img class=\"grab\" src=\"%simages/grab.png\" \
alt=\"Grab the code!\">\n\
</a>\n\
</div></p>\n" title basedir
fprintf f "<figure class=\"highlight\"><pre><code class=\"language-%s\">%s</code></pre></figure>\n" klass !!body;
| Snippet (None, body, language) ->
let klass =
match language with
| None -> ""
| Some x -> x
in
fprintf f "<pre class=\"syntax %s\">%s</pre>\n" klass !!body)
fprintf f "<figure class=\"highlight\"><pre><code class=\"language-%s\">%s</code></pre></figure>\n" klass !!body)
doc ;
regenerate_snippet_index ()
......