This release provides liquidsoap assets before they are published as a new versioned release.
You can use it to install the latest stable code before it is published and test/prepare your production environment for it.
Rolling releases can also be useful for us to quickly detect and report bugs before the final published release!
⚠️ Warning ⚠️
Assets in this release will be deleted. If you are looking for permanent links to release assets, please head over to https://github.com/savonet/liquidsoap-release-assets/releases
For more details about our release process, please checkout https://github.com/savonet/liquidsoap#release-details
2.2.0 (unreleased)
New:
- Added support for native osc library (#2426, #2480).
- SRT: added support for passphrase, pbkeylen, streamid,
added native type for srt sockets with methods, moved stats
to socket methods, addedsocket()
method on srt input/outputs
(#2556) - Added support for YAML parsing and rendering (#2855)
- Added
video.align
. - Added
string.index
. - Added support for unit interactive variables: those call a handler when their
value is set. - Added support for id3v2
v2.2.0
frames and pictures. - Added
source.drop
to animate a source as fast as possible.. - Added in house replaygain computation:
source.replaygain.compute
to compute replaygain of a sourcefile.replaygain
to compute the replaygain of a file
- Added support for ImageLib to decode images.
- Added support for completion in emacs based on company (#2652).
- Added syntactic sugar for record spread:
let {foo, gni, ..y} = x
andy = { foo = 123, gni = "aabb", ...x}
(#2737) - Added
file.{copy, move}
(#2771) - Detect functions defining multiple arguments with the same label (#2823).
- Added
null.map
. - References of type
'a
are now objects of type(()->'a).{set : ('a) -> unit}
. This means that you should usex()
instead of!x
in order to get
the value of a reference. Setting a reference can be done both byx.set(v)
andx := v
, which is still supported as a notation (#2881). - Added
ref.make
andref.map
. - Added
video.board
,video.graph
,video.info
(#2886).
Changed:
- Switched to
dune
for building the binary and libraries. - Changed
cry
to be a required dependency. - Changed default character encoding in
output.harbor
,output.icecast
output.shoutcast
toUTF-8
(#2704) - BREAKING: all
timeout
settings and parameters are nowfloat
values
and in seconds (#2809) - Added support for a Javascript build an interpreter.
- Removed support for
%define
variables, superseded by support for actual
variables in encoders. - Errors now report proper stack trace via their
trace
method, making it
possible to programmatically point to file, line and character offsets
of each step in the error call trace (#2712) - Reimplemented
harbor
http handler API to be more flexible. Added a new
node/express-like registration and middleware API (#2599). - Switched default persistence for cross and fade-related overrides
to follow documented behavior. By default,"liq_fade_out"
,"liq_fade_skip"
,
"liq_fade_in"
,"liq_cross_duration"
and"liq_fade_type"
now all reset on
new tracks. Usepersist_overrides
to revert to previous behavior
(persist_override
forcross
/crossfade
) (#2488). - Moved HLS outputs stream info as optional methods on their respective encoder.
- Changed
self_sync
ininput.ffmpeg
to be a boolean getter, changedself_sync
ininput.http
to be a nullable boolean getter. Setself_sync
totrue
in
input.http
when an icecast or shoutcast server can be detected. - Add
sorted
option tofile.ls
. - Add
buffer_length
method toinput.external.rawaudio
and
input.external.wav
(#2612). - Removed confusing
let json.stringify
in favor ofjson.stringify()
. - Font, font size and colors are now getters for text operators (
video.text
,
video.add_text
, etc.) (#2623). - Add
on_cycle
option tovideo.add_text
to register a handler when cycling
(#2621). - Renamed
{get,set}env
intoenvironment.{get,set}
- Renamed
add_decoder
,add_oblivious_decoder
andadd_metadata_resolver
into, respectively,decoder.add
,decoder.oblivious.add
,decoder.metadata.add
- Deprecated
get_mime
, addedfile.mime.libmagic
andfile.mime.cli
, made
file.mime
tryfile.mime.libmagic
if present andfile.mime.cli
otherwise,
changed eturned value when no mime was found tonull()
. - Return a nullable float in
request.duration
. - Removed
--list-plugins-json
and--list-plugins-xml
options. - Added
--list-functions-json
option. - Removed built-in use of
strftime
conversions in output filenames, replaced
by an explicit call totime.string
(#2593) - Added nullable default to
{int,float,bool}_of_string
conversion functions, raise
an exception if conversion fails and no default is given. - The camomile library for charset conversion is now optional (#2696).
- Deprecated
string_of
in favor ofstring
(#2700). - Deprecated
string_of_float
in favor ofstring.float
(#2700). - Added
settings.protocol.youtube_dl.timeout
to specify timeout when using
youtube-dl
protocol (#2827). Useyt-dlp
as default binary for the
protocol. - The
sleeper
operator is now scripted (#2899).
Fixed: