Skip to content

[EPIC] Upgrade to Liquidsoap 2.2 or later

Parent: [EPIC] Smooth play-out latency and buffering fo... (#50 - closed)

Before updating, carefully review the Liquidsoap changelog for breaking changes or any features and issues which are related to our use. It is also helpful to check the Liquidsoap bug-tracker for known issues.

Breaking changes

2.2

  • BREAKING: all timeout settings and parameters are now float values and in seconds (#2809)
  • BREAKING: in output.{shoutcast,icecast}:
    • Old icy_metadata renamed to send_icy_metadata and changed to a nullable bool. null means guess.
    • New icy_metadata now returns a list of metadata to send with ICY updates.
    • Added icy_song argument to generate default "song" metadata for ICY updates. Defaults to - when available, otherwise artist or title if available, otherwise null, meaning don't add the metadata.
    • Cleanup, removed parameters that were irrelevant to each operator, i.e. icy_id in output.icecast and etc.
    • Make mount mandatory and name nullable. Use mount as name when name is null.
  • Removed support for %define variables, superseded by support for actual variables in encoders.
  • Removed confusing let json.stringify in favor of json.stringify()
  • Renamed {get,set}env into environment.{get,set}
  • Deprecated string_of in favor of string (#2700).
  • Deprecated string_of_float in favor of string.float (#2700).
  • Added id argument to replaygain operator (#2537). Compare ID fix for the new replaygain operator

Fixed & Improvements

2.2

  • The randomization function list.shuffle used in playlist was incorrect and could lead to incorrectly randomized playlists (#2507, #2500).

2.1.4

  • Added buffer_length method to buffer operator.
  • Always display error backtrace when a fatal exception is raised in the streaming loop.
  • Fixed memory leak in http requests (#2935)
  • Space trim in interactive variables set on telnet (#2785)
  • Fixed internal streaming logic in max_duration and crossfade.
  • Make sure that there's at most one metadata at any given frame position (#2786)
  • Fixed input polling stop (#2769)
  • Fixed parsed error report in %include directives (#2775)

2.1.3

  • Add support for song metadata (mapped to title) and url (mapped to metadata_url) in input.harbor (#2676)
  • Fixed request metadata escaping (#2732)
  • Fixed http response body on redirect (#2758)

2.1.2

  • Fixed order of playlist.next returned requests.
  • Fixed infinite loop when reloading a failed playlist (#2576)
  • Prevent initial start for autostart and fallible sources.

Features

2.2 and before

  • YAML support, required for Config consolidation: Use YAML instead of INI file (#41 - closed)
  • Added log colors! :-)
  • Reimplemented harbor http handler API to be more flexible. Added a new node/express-like registration and middleware API (#2599).
  • Added device_id and latency options to input.portaudio and output.portaudio to be able to choose the requested device. Use liquidsoap --list-portaudio-devices to see the list of devices (#2733)
  • Added disconnect method to input.harbor, making it possible to disconnect a source client programmatically, including when a new client is trying to connect.

To check if it is relevant

2.2 and before

  • Added support for less memory hungry audio formats, namely pcm_s16 and pcm_f32 (#3008)
  • Added "metadata_url" to the default list of exported metadata (#2946)
  • Changed default character encoding in output.harbor, output.icecast output.shoutcast to UTF-8 (#2704)
  • Cancel pending append when skipping current track on append source.
  • 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).
  • 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 buffer_length method to input.external.rawaudio and input.external.wav (#2612).
  • Fixed metadata parsing in server.insert_metadata (#2619)
  • Fixed extract_replaygain path (#2624, @parnikkapore)
Edited by David Trattnig