github savonet/liquidsoap rolling-release-2.2.x

latest releases: rolling-release-v2.3.x, v0.3.8, v0.3.7...
pre-release18 months ago

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, added socket() 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 source
    • file.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
    and y = { 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 use x() instead of !x in order to get
    the value of a reference. Setting a reference can be done both by x.set(v)
    and x := v, which is still supported as a notation (#2881).
  • Added ref.make and ref.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 to UTF-8 (#2704)
  • BREAKING: all timeout settings and parameters are now float 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. Use persist_overrides to revert to previous behavior
    (persist_override for cross/crossfade) (#2488).
  • Moved HLS outputs stream info as optional methods on their respective encoder.
  • Changed self_sync in input.ffmpeg to be a boolean getter, changed self_sync
    in input.http to be a nullable boolean getter. Set self_sync to true in
    input.http when an icecast or shoutcast server can be detected.
  • Add sorted option to file.ls.
  • Add buffer_length method to input.external.rawaudio and
    input.external.wav (#2612).
  • Removed confusing let json.stringify in favor of json.stringify().
  • Font, font size and colors are now getters for text operators (video.text,
    video.add_text, etc.) (#2623).
  • Add on_cycle option to video.add_text to register a handler when cycling
    (#2621).
  • Renamed {get,set}env into environment.{get,set}
  • Renamed add_decoder, add_oblivious_decoder and add_metadata_resolver
    into, respectively, decoder.add, decoder.oblivious.add, decoder.metadata.add
  • Deprecated get_mime, added file.mime.libmagic and file.mime.cli, made
    file.mime try file.mime.libmagic if present and file.mime.cli otherwise,
    changed eturned value when no mime was found to null().
  • 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 to time.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 of string (#2700).
  • Deprecated string_of_float in favor of string.float (#2700).
  • Added settings.protocol.youtube_dl.timeout to specify timeout when using
    youtube-dl protocol (#2827). Use yt-dlp as default binary for the
    protocol.
  • The sleeper operator is now scripted (#2899).

Fixed:

  • The randomization function list.shuffle used in playlist was incorrect and
    could lead to incorrectly randomized playlists (#2507, #2500).
  • Fixed srt output in listener mode to allow more than one listener at a time and
    prevent listening socket from being re-created on listener disconnection (#2556)

Don't miss a new liquidsoap release

NewReleases is sending notifications on new releases.